docs: update POP map and relay ips for azure (#10293)

Updates our list of potential Relay IPs and the regional map diagram for
customer reference.
This commit is contained in:
Jamil
2025-10-16 11:31:09 -07:00
committed by GitHub
parent 79a4aeb3a8
commit bf91021e2e
5 changed files with 12979 additions and 450 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 386 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
# Used to generate the Firezone regional availability map
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
# Azure regions with coordinates
coordinates = [
{"city": "Virginia (East US)", "lon": -79.8164, "lat": 37.3719},
{"city": "Washington (West US 2)", "lon": -119.852, "lat": 47.233},
{"city": "Netherlands (West Europe)", "lon": 4.8945, "lat": 52.3667},
{"city": "Singapore (Southeast Asia)", "lon": 103.833, "lat": 1.283},
{"city": "Tokyo (Japan East)", "lon": 139.77, "lat": 35.68},
{"city": "London (UK South)", "lon": -0.799, "lat": 50.941},
{"city": "São Paulo (Brazil South)", "lon": -46.633, "lat": -23.55},
{"city": "Sydney (Australia East)", "lon": 151.2094, "lat": -33.86},
{"city": "Pune (Central India)", "lon": 73.9197, "lat": 18.5822},
{"city": "Toronto (Canada Central)", "lon": -79.383, "lat": 43.653},
{"city": "Dubai (UAE North)", "lon": 55.316, "lat": 25.266},
{"city": "Frankfurt (Germany West Central)", "lon": 8.682127, "lat": 50.110924},
{"city": "Seoul (Korea Central)", "lon": 126.9780, "lat": 37.5665},
{"city": "Paris (France Central)", "lon": 2.3522, "lat": 48.8566},
{"city": "Johannesburg (South Africa North)", "lon": 28.030, "lat": -26.198},
{"city": "Ireland (North Europe)", "lon": -6.2603, "lat": 53.3498},
{"city": "Virginia (East US 2)", "lon": -78.3889, "lat": 36.6681},
{"city": "Phoenix (West US 3)", "lon": -112.074, "lat": 33.448},
{"city": "Zurich (Switzerland North)", "lon": 8.564572, "lat": 47.451542},
{"city": "Oslo (Norway East)", "lon": 10.752, "lat": 59.913},
{"city": "Warsaw (Poland Central)", "lon": 21.017, "lat": 52.237},
{"city": "Doha (Qatar Central)", "lon": 51.183, "lat": 25.317},
{"city": "Iowa (Central US)", "lon": -93.6208, "lat": 41.5908},
{"city": "Querétaro (Mexico Central)", "lon": -100.389, "lat": 20.589},
{"city": "Hong Kong (East Asia)", "lon": 114.188, "lat": 22.267},
{"city": "Milan (Italy North)", "lon": 9.1824, "lat": 45.4685},
{"city": "Kuala Lumpur (Malaysia West)", "lon": 101.687, "lat": 3.139},
{"city": "Santiago (Chile Central)", "lon": -70.673, "lat": -33.447},
{"city": "Tel Aviv (Israel Central)", "lon": 34.851, "lat": 31.045},
{"city": "Madrid (Spain Central)", "lon": -3.7026, "lat": 40.4165},
{"city": "Jakarta (Indonesia Central)", "lon": 106.8456, "lat": -6.2088},
{"city": "Gävle (Sweden Central)", "lon": 17.1413, "lat": 60.6749},
{"city": "Auckland (New Zealand North)", "lon": 174.763, "lat": -36.848},
{"city": "Illinois (North Central US)", "lon": -87.6278, "lat": 41.8819},
]
# Create a map with equirectangular projection
fig = plt.figure(figsize=(14, 7))
ax = plt.axes(projection=ccrs.PlateCarree()) # Equirectangular projection
ax.set_global()
ax.coastlines()
# Plot the cities
for city in coordinates:
ax.plot(
city["lon"],
city["lat"],
marker="o",
color="#ff7300",
markersize=10,
transform=ccrs.PlateCarree(),
)
# Add features and titles
ax.add_feature(cfeature.BORDERS, linestyle=":")
ax.add_feature(cfeature.LAND, edgecolor="#1b140e", facecolor="#f8f7f7")
plt.subplots_adjust(left=0, right=1, top=1, bottom=0) # Extend map to borders
ax.axis("off")
# Save the figure
output_path = "./regional-availability.png"
plt.savefig(output_path, dpi=150, bbox_inches="tight", pad_inches=0)
print(
f"Map saved to {output_path}. Move this file to the public/images directory appropriately."
)
plt.show()

View File

@@ -1,68 +0,0 @@
# Used to generate the Firezone regional availability map
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
# Complete list of cities with coordinates
coordinates = [
{"city": "Changhua County, Taiwan", "lon": 120.5169, "lat": 24.0518},
{"city": "Hong Kong", "lon": 114.1694, "lat": 22.3193},
{"city": "Tokyo, Japan", "lon": 139.7595, "lat": 35.6828},
{"city": "Osaka, Japan", "lon": 135.5023, "lat": 34.6937},
{"city": "Seoul, South Korea", "lon": 126.9780, "lat": 37.5665},
{"city": "Mumbai, India", "lon": 72.8777, "lat": 19.0760},
{"city": "Delhi, India", "lon": 77.1025, "lat": 28.7041},
{"city": "Jurong West, Singapore", "lon": 103.8198, "lat": 1.3521},
{"city": "Jakarta, Indonesia", "lon": 106.8456, "lat": -6.2088},
{"city": "Sydney, Australia", "lon": 151.2093, "lat": -33.8688},
{"city": "Melbourne, Australia", "lon": 144.9631, "lat": -37.8136},
{"city": "Warsaw, Poland", "lon": 21.0122, "lat": 52.2297},
{"city": "Hamina, Finland", "lon": 27.1979, "lat": 60.5690},
{"city": "St. Ghislain, Belgium", "lon": 3.8186, "lat": 50.4541},
{"city": "London, UK", "lon": -0.1278, "lat": 51.5074},
{"city": "Frankfurt, Germany", "lon": 8.6821, "lat": 50.1109},
{"city": "Eemshaven, Netherlands", "lon": 6.8647, "lat": 53.4386},
{"city": "Zurich, Switzerland", "lon": 8.5417, "lat": 47.3769},
{"city": "Milan, Italy", "lon": 9.1900, "lat": 45.4642},
{"city": "Paris, France", "lon": 2.3522, "lat": 48.8566},
{"city": "Berlin, Germany", "lon": 13.4050, "lat": 52.5200},
{"city": "Turin, Italy", "lon": 7.6869, "lat": 45.0703},
{"city": "Madrid, Spain", "lon": -3.7038, "lat": 40.4168},
{"city": "Doha, Qatar", "lon": 51.2285, "lat": 25.2760},
{"city": "Tel Aviv, Israel", "lon": 34.7818, "lat": 32.0853},
{"city": "Montréal, Canada", "lon": -73.5673, "lat": 45.5017},
{"city": "Toronto, Canada", "lon": -79.3837, "lat": 43.6511},
{"city": "Querétaro, Mexico", "lon": -100.3899, "lat": 20.5888},
{"city": "Santiago, Chile", "lon": -70.6693, "lat": -33.4489},
{"city": "Osasco, São Paulo, Brazil", "lon": -46.7910, "lat": -23.5329},
{"city": "Council Bluffs, Iowa, USA", "lon": -95.8608, "lat": 41.2619},
{"city": "Moncks Corner, South Carolina, USA", "lon": -79.9989, "lat": 33.1960},
{"city": "Ashburn, Northern Virginia, USA", "lon": -77.4874, "lat": 39.0438},
{"city": "Columbus, Ohio, USA", "lon": -82.9988, "lat": 39.9612},
{"city": "Dallas, Texas, USA", "lon": -96.7970, "lat": 32.7767},
{"city": "The Dalles, Oregon, USA", "lon": -121.1787, "lat": 45.5946},
{"city": "Los Angeles, California, USA", "lon": -118.2437, "lat": 34.0522},
{"city": "Salt Lake City, Utah, USA", "lon": -111.8910, "lat": 40.7608},
{"city": "Las Vegas, Nevada, USA", "lon": -115.1398, "lat": 36.1699},
{"city": "Johannesburg, South Africa", "lon": 28.0473, "lat": -26.2041},
]
# Create a map with equirectangular projection
fig = plt.figure(figsize=(14, 7))
ax = plt.axes(projection=ccrs.PlateCarree()) # Equirectangular projection
ax.set_global()
ax.coastlines()
# Plot the cities
for city in coordinates:
ax.plot(city["lon"], city["lat"], marker="o", color="#ff7300", markersize=10, transform=ccrs.PlateCarree())
# Add features and titles
ax.add_feature(cfeature.BORDERS, linestyle=":")
ax.add_feature(cfeature.LAND, edgecolor="#1b140e", facecolor="#f8f7f7")
plt.subplots_adjust(left=0, right=1, top=1, bottom=0) # Extend map to borders
ax.axis("off")
plt.show()

View File

@@ -91,66 +91,62 @@ The separation between control plane and data plane state serves two functions:
Firezone uses the following tools for ops and infrastructure:
| Category | Tool/Service |
| ----------------------- | ----------------------------- |
| Cloud provider | Google Cloud Platform |
| Source code management | GitHub |
| CI/CD | GitHub Actions |
| Monitoring and alerting | Google Cloud Monitoring |
| Logging | Google Cloud Logging |
| Persistence store | Google Cloud SQL (PostgreSQL) |
| Infrastructure as code | Terraform |
| Category | Tool/Service |
| ----------------------------- | ----------------------------- |
| Cloud provider: Control plane | Google Cloud Platform |
| Cloud provider: Relays | Microsoft Azure |
| Source code management | GitHub |
| CI/CD | GitHub Actions |
| Monitoring and alerting | Sentry |
| Logging | Sentry |
| Persistence store | Google Cloud SQL (PostgreSQL) |
| Infrastructure as code | Terraform |
### Regional availability
The Firezone-managed components are deployed globally across the following GCP
zones for load balancing and latency optimization:
Firezone Relays are deployed globally to ensure low-latency fallback paths for
cases where direct peer-to-peer connections aren't possible. Relays are deployed
in the following Azure regions:
| City | Region | Zone |
| ---------------------------------- | ------------------------- | --------------------------- |
| Changhua County, Taiwan | `asia-east1` | `asia-east1-a` |
| Hong Kong | `asia-east2` | `asia-east2-a` |
| Tokyo, Japan | `asia-northeast1` | `asia-northeast1-a` |
| Osaka, Japan | `asia-northeast2` | `asia-northeast2-a` |
| Seoul, South Korea | `asia-northeast3` | `asia-northeast3-a` |
| Mumbai, India | `asia-south1` | `asia-south1-a` |
| Delhi, India | `asia-south2` | `asia-south2-a` |
| Jurong West, Singapore | `asia-southeast1` | `asia-southeast1-a` |
| Jakarta, Indonesia | `asia-southeast2` | `asia-southeast2-a` |
| Sydney, Australia | `australia-southeast1` | `australia-southeast1-a` |
| Melbourne, Australia | `australia-southeast2` | `australia-southeast2-a` |
| Warsaw, Poland | `europe-central2` | `europe-central2-a` |
| Hamina, Finland | `europe-north1` | `europe-north1-a` |
| St. Ghislain, Belgium | `europe-west1` | `europe-west1-a` |
| London, UK | `europe-west2` | `europe-west2-a` |
| Frankfurt, Germany | `europe-west3` | `europe-west3-a` |
| Eemshaven, Netherlands | `europe-west4` | `europe-west4-a` |
| Zurich, Switzerland | `europe-west6` | `europe-west6-a` |
| Milan, Italy | `europe-west8` | `europe-west8-a` |
| Paris, France | `europe-west9` | `europe-west9-a` |
| Berlin, Germany | `europe-west10` | `europe-west10-a` |
| Turin, Italy | `europe-west12` | `europe-west12-a` |
| Madrid, Spain | `europe-southwest1` | `europe-southwest1-a` |
| Doha, Qatar | `me-central1` | `me-central1-a` |
| Tel Aviv, Israel | `me-west1` | `me-west1-a` |
| Montréal, Canada | `northamerica-northeast1` | `northamerica-northeast1-a` |
| Toronto, Canada | `northamerica-northeast2` | `northamerica-northeast2-a` |
| Querétaro, Mexico | `northamerica-south1` | `northamerica-south1-a` |
| Santiago, Chile | `southamerica-west1` | `southamerica-west1-a` |
| Osasco, São Paulo, Brazil | `southamerica-east1` | `southamerica-east1-a` |
| Council Bluffs, Iowa, USA | `us-central1` | `us-central1-a` |
| Moncks Corner, South Carolina, USA | `us-east1` | `us-east1-a` |
| Ashburn, Northern Virginia, USA | `us-east4` | `us-east4-a` |
| Columbus, Ohio, USA | `us-east5` | `us-east5-a` |
| Dallas, Texas, USA | `us-south1` | `us-south1-a` |
| The Dalles, Oregon, USA | `us-west1` | `us-west1-a` |
| Los Angeles, California, USA | `us-west2` | `us-west2-a` |
| Salt Lake City, Utah, USA | `us-west3` | `us-west3-a` |
| Las Vegas, Nevada, USA | `us-west4` | `us-west4-a` |
| City | Region |
| ------------ | -------------------- |
| Auckland | New Zealand North |
| Dubai | UAE North |
| Doha | Qatar Central |
| Frankfurt | Germany West Central |
| Gävle | Sweden Central |
| Hong Kong | East Asia |
| Illinois | North Central US |
| Iowa | Central US |
| Ireland | North Europe |
| Jakarta | Indonesia Central |
| Johannesburg | South Africa North |
| Kuala Lumpur | Malaysia West |
| London | UK South |
| Madrid | Spain Central |
| Milan | Italy North |
| Oslo | Norway East |
| Paris | France Central |
| Phoenix | West US 3 |
| Pune | Central India |
| Querétaro | Mexico Central |
| Santiago | Chile Central |
| São Paulo | Brazil South |
| Seoul | Korea Central |
| Singapore | Southeast Asia |
| Sydney | Australia East |
| Tel Aviv | Israel Central |
| Tokyo | Japan East |
| Toronto | Canada Central |
| Virginia | East US |
| Virginia | East US 2 |
| Warsaw | Poland Central |
| Washington | West US 2 |
| Zurich | Switzerland North |
#### Regional availability map
{/* Regenerate this using map.py in the current directory */}
{/* Regenerate this using generate_map.py in the current directory */}
<Link
target="_blank"
@@ -159,7 +155,6 @@ zones for load balancing and latency optimization:
<Image
src="/images/kb/architecture/tech-stack/regional-availability.png"
alt="Firezone regional availability diagram"
className=""
width={1200}
height={1200}
/>