In the year 2016, software is a global phenomenon. We may not always think about it when starting a project, but it has been a very revolutionary change over the past decade. Mobile phones and tablets have penetrated every market from Latin and South America to the Middle East to the juggernaut of user-bases: China. Putting our software in the hands of a worldwide audience is a critical component for success.
Not only can our users be found all over the world, but the development teams for our apps can be located anywhere too. Production now is potentially distributed, with developers, reviewers, testers, and other stakeholders not necessarily sharing an office or geo-location. We can no longer operate as if the entire production team will be located in the same office or general area.
These realities raise questions about how to ensure that we can deliver our software or code all over the world quickly, efficiently, and in a localized fashion. We want quick, responsive APIs and web pages, regardless of whether the user is down the street or across an ocean. We need storage and source control mechanisms that enable different teams in different time zones to work seamlessly together. These are the sorts of challenges that used to be exclusive to large enterprises with vast resources to solve.
Today, we've got Platform-as-a-Service to help. PaaS systems offer an inherently easy mechanism for global distribution of our APIs, apps, and web pages. Public PaaS services in particular are ideal for scenarios like this, enabling business large and small to scale up to global distribution with minimal investment. When you work with a PaaS system, you are able to focus on development and features while offloading the work of distribution to the service provider.
Microsoft Azure App Service, a PaaS that offers web apps, mobile, and API all in a single framework, makes deployment to data centers all over the world a breeze. Azure has data centers in the US, Europe, Asia, Japan, and even Australia. When you deploy App Services on Microsoft Azure you can choose to upload to multiple data centers and implement their Traffic Manager service for load balancing. Traffic Manager uses a policy engine based on DNS requests to ensure that users are balanced onto the data center that's closest to them, geographically speaking. This improves performance for users all over the world, and also provides an inherent failover mechanism in the event a center becomes unresponsive. Those users are not locked out of your app, but rather redirected to the next closest center that is up and running.
Google's App Engine (GAE) PaaS offers an interesting service as well: Built-in Content Delivery Network (CDN). A CDN allows you to distribute files to various data centers around the world. These are not necessarily Google-owned data centers but rather include many points-of-presence from 3rd party partners such as ISPs. When you configure your GAE app you can define static content in a simple configuration file, and Google automatically caches that content on their CDN all over the globe. Users then are automatically redirected to download those files from the closest CDN endpoint without any further work from us. It's all handled in the backend, and the best part is not only is it free, but it reduces the work our GAE app has to perform -- so it can actually save us money.
Sign up for CIO Asia eNewsletters.