Week 5 - Geographic Concerns

 

By the end of this module, you’ll gain experience with geographic concerns.

Module videos:

Geographic Concerns

Module video: Overview of geographic concerns [10:18]

Let us assume you are working for a company that has offices worldwide. Typically, you would need infrastructure spread throughout each geographic region to support company activities, including application servers, file servers, database servers, etc. Basically, each location would need to be closely located to their servers and workstations to provide an acceptable quality of service to their users.

Naturally, this can become a massive orchestration nightmare if you’re working in infrastructure! How do you manage a worldwide network of servers, applications, and all the other technologies needed to keep a company moving forward? Up to this point, you most likely would have local teams (and still will, going to the cloud doesn’t reduce that need!) that each provide the local infrastructure necessary for each office.

A worldwide map, according to those not geo-concerned (i.e., Pangea) (c/o TheVerge)

Figure 1: A worldwide map, according to those not geo-concerned (i.e., Pangea)

Locations

The whole point of this diversion into world geography is to ensure that your clients/customers receive a satistfactory quality of service. This quality can be noticed from application response times to geographically-relevant data. For example, if an employee is trying to put together a project team (perhaps it is an Agile environment) and is searching the personnel directory for people with 10 years of full stack experience as well as 20 years of React experience (clearly, this was a bad joke), then you most likely would prefer to filter for employees/contracters that are nearby and can attend project meetings, meet in the break room for a coffee, etc.

With times being what they are, this example probably doesn’t hold much water anymore, does it?

Regardless, when developing cloud applications you will need to consider geographic concerns. These concerns will mainly boil down to where you are serving your cloud services from. For instance, when creating a new virtual machine you are given the option to select a region! Or when creating an App Engine project you are given the option … to select a region!

What could this mean? Well, the thing you have created needs to be stored/hosted somewhere. That somewhere is a cloud server in the region you specified. Now, this concept applies to all cloud providers. Again, you need servers to host all these nifty applications you’re creating. And, those servers need to be physically located somewhere, no matter how many layers of virtualization there are. That machine that you are using to create will have actual, real-world concerns such as network latency.

To take the VM example from before, when you create a VM in a particular region you are hosting that VM on a server within that region. Meaning, the users who will be interacting with that machine will experience a quality of service based on how far away they are from that machine.

Dig into your memory to your old networking classes. The length of time it takes for a network packet to reach its destination is directly tied to how far away it is, right? Same concept applies here! There’s no escaping the real world, unfortunately.

Now this is not to say that you can’t do some neat tricks cloud-wise. You can mirror servers, load balance across regions, etc., to provide all users with a similar experience. The point stands though that, for lightning-fast response times, you still need to be near a server that is hosting your application!

Let’s take a look at the big three in terms of regional availability. Note that companies spin up new data centers faster than I can keep a blog updated, so these maps will most likely change!

Google Cloud Regions (c/o Google)

Figure 2: Google Cloud Regions

Google Cloud Regions

AWS Regions (c/o Amazon)

Figure 3: AWS Regions

AWS Regions

Microsoft Azure Regions

Figure 4: Microsoft Azure Regions

Microsoft Azure Regions

Now, you may be wondering why I’m making such a big deal out of regional information. Sure, you say. We’ll pick a region by our users. Silly question, move on to the next thing.

Well, to that I would say that there is more to it than just location! There are two other concerns to worry about! First there is pricing. Different regions may have different pricing structures and that is one aspect to be absolutely sure of before selecting a region.

For instance, Figure 5 shows a snippet from the Google Cloud free tier page specifying how to get a free VM microinstance. Note that you must select from a list of specific regions; not necessarily every region is available!

Google Cloud Free Tier Pricing

Figure 5: Google Cloud Free Tier Pricing

You may also find pricing and availability are tied into other products as well. For instance, Figure 6 shows a comparison for Cloud Storage attributes – note that regions can be tied to data availability!

Google Cloud - Regions and Storage

Figure 6: Google Cloud - Regions and Storage

Another major concern lies in exporting your data to other countries. We’ll talk about that in the next section.

Here’s a demo on load balancing! Try it out for some experience with the gcloud compute shell command (plus load balancing). This demo is based on this link: https://codelabs.developers.google.com/codelabs/cloud-webapp-hosting-gce

Export Controls

Now that you’re moving to the cloud, a major consideration (that doesn’t seem to be often discussed) are export controls. This topic is one that I’m going to tread lightly on, as I am not a lawyer or intimately familiar with government procedures. However, you must be cognizant of who can access your data and where it can be accessed from.

US Export Controls and Economic Sanctions

Figure 7: US Export Controls and Economic Sanctions

Read the following two links!

Export Controls and Cloud Computing

Microsoft Azure - Managing export controls in Azure and Azure Government

Additional Resources


Where noted, the original content was provided by Google LLC and modified for the purpose of the course, without input or endorsement from Google LLC.