Cloud à la carte
New IaC technologies let you leverage the best of cloud computing services providers
Jan. 29, 2020 | By Ian Salazar
Moving to the cloud is a sea change for your business—it impacts every facet of your enterprise, including infrastructure, critical applications and sensitive data. Selecting a cloud computing services provider is probably one of the most significant decisions you can make. Considerations include cost, your existing enterprise configuration and security, to name just a few. And each of the major public cloud computing providers bring unique strengths to the table with their offerings.
New Infrastructure as Code (IaC) technologies can make the process a little easier. It used to be that computer data centers were managed and provisioned either by people configuring hardware or by configuration tools. IaC technologies do the same thing, but with human and machine-readable definition files. IaC technologies let you effectively manage more than one cloud provider at the same time, and to leverage each cloud platform for its own unique strengths.
Choosing a cloud provider
You’re probably wrestling with cost and compatibility issues and looking for a cloud solution that is easy to implement. When comparing the major cloud providers—Amazon Web Services (AWS), Microsoft Azure and Google Cloud—you need to carefully evaluate the unique strengths and weaknesses of each before you decide. There are big differences, from costing to compatibility to tools expertise.
AWS is known for its vast and ever-growing collection of tools and services, as well as providing more geographic regions than any other cloud provider. Azure has a stellar service level agreement, with downtime of only four hours per year, and strong hybrid cloud support. Google Cloud has industry-leading machine learning / AI capabilities and the highest level of security out of the box. Plus, Google created the Kubernetes standard that AWS and Azure now offer. On the flip side, native cloud functionality locks you into specific tools—and one might not meet all your needs.
IaC: A new way to cloud compute
If you’re looking for more flexibility in your cloud infrastructure, an alternative approach is now available. New IaC technologies (e.g., Terraform) and automation tools (e.g., Python) will help organizations simultaneously support more than one cloud infrastructure provider.
Terraform from HashiCorp is an open-source IaC tool that lets you create and change infrastructure across all three clouds (AWS, Microsoft Azure, Google Cloud) at the same time. Using either the HashiCorp Configuration Language (HCL) or JSON, you create and then execute Terraform configuration files. The configuration files describe the components needed to run a single application—or even an entire data center—using a given cloud service provider. Terraform descriptors apply to any cloud provider, and Terraform templates work across multiple clouds.
Python is a popular scripting language for automation, and all three major public cloud providers support it with their own application programming interface. Python can empower developers and data scientists to easily work with aggregated data across the cloud in order to fuel streaming analytics and IoT apps.
You don’t have to choose one cloud
In essence, what tools like Terraform and Python do is allow you to adopt more than one cloud. There are advantages to this approach. Multiple clouds provide redundancy and a risk management technique. For example, if one crashes, you can lower risk by spreading infrastructure in such a way that you can recover if a provider has issues. Geographically, certain providers have closer presence in particular zones, which reduces latency. Also, certain service types, whether they’re networking, VPN or storage, may be more economical from cloud provider to cloud provider, depending on the customer and timing.
Adopting more than one cloud means that you don’t have to put all of your technology eggs in one basket. You can cherry-pick the best technology from each cloud provider and take advantage of their great strengths, whether it’s enterprise interoperability, profound technical expertise or superior data analytics tools.
Ian Salazar is a senior practice architect with TEKsystems Global Services. Over the last 23 years, he has worked in a number of technical and senior leadership roles in software engineering organizations and has expertise in software development, DevOps, automation and cloud platform architecture.