Cloud computing has come a long way since Amazon first offered up virtual machines in its Elastic Compute Cloud (EC2) back in 2006. The early infrastructure as a service offerings have been joined by a wealth of other different platforms and services such as on-demand computing, database-as-a-service, and real-time analytics. While Amazon was first on the scene, they have been joined by other major providers like Google and Microsoft. All of the cloud providers offer the basics, but there are differences. How do you decide which cloud platform is right for you? How do you make sure that as your needs grow you don’t outgrow your provider?
We at Seamgen have been using cloud platforms since our inception in 2008, and we have created hundreds of solutions for our clients on many of the major cloud platforms, so we know it is no easy task when it comes to picking the right one. With all the cloud services out there, we want to help guide you through the decision process.
Let’s start by taking a survey of the types of services that are available, and then see how the top three providers stack up in terms of features and cost.
Computing services range from virtual machines that can be launched and configured on demand, typically with hourly billing rates. The virtual machines come with various configuration options including available memory and attached storage. You can also choose which data center to locate your virtual machine. By choosing your own location, you can minimize network lag or co-locate services. Virtual machines offer the most flexibility, but also require the most configuration and maintenance.
Many applications are now deployed to containers like Docker, and the major cloud providers offer services to deploy and orchestrate these containers. Containers provide a consistent environment for your code to run in, and can simplify deployment and other DevOps tasks. Many cloud providers allow you to take this further with services like Amazon’s Elastic Beanstalk which can handle virtually all of the environment tasks for you allowing you to deploy just code and not worry about the computer it runs on at all. You can even deploy code that only runs when you need it to, whether it is in response to a certain event or on a set timer. This can save you money as you only pay for the computing services for when they are running.
Storage services generally take the form of generic object storage, the ability to store arbitrary binary data. All of the major cloud providers offer some type of object storage, but they each differ with their own way of organizing the data as well as their own configuration and access controls. You can even use this type of storage to host static websites without a server, and it is often very inexpensive. These services provide you with a file system in the cloud with robust access controls.
With today’s emphasis on security, the ability to encrypt your data is a standard feature. When it comes to storage, most providers allow you to turn on version tracking so you can see who changed what and when, or even retrieve some data that may have been overwritten.
With many different types of databases available, database-as-a-service becomes a key element to any cloud platform provider. These include traditional relational databases like SQL Server and MySql, NoSql options like MongoDb, and big data platforms like Hadoop. Each provider has their own proprietary database offerings in both relational and NoSql flavors.
Amazon and Microsoft also offer a range of standard databases like MySql and PostGres. When selecting a database not only the type of database must be considered, but also how the database is hosted, as database performance, scalability, and redundancy are all highly dependent on implementation details. Having your database on an SSD directly attached to the server can be orders of magnitude faster than an array of traditional hard drives that your application shares with others.
Analytics refers to any of a large variety of tools for helping you discover and interpret patterns in your own data. With analytics covering such a wide range of activities, the tools offered under this category are diverse. These services can range from standard BI tools like Tableau to highly sophisticated machine-learning platforms.
They can include services as diverse as querying big data sources to analyzing real-time data streams. Some providers offer tools for applying SQL-like queries to data from sources that do not natively support queries, like the storage systems mentioned above. You can also query across multiple different sources at the same time, allowing you to derive a single result from very different data sets. There are even ways to analyze streams of real time data like stock prices.
With the most advanced tools you can apply machine learning and artificial intelligence to train your application to better recognize the patterns you care about. Analytics is a broad term that covers some of the most rapidly developing areas in computer science, and the ability to harness the computing power of an organization like Google opens up possibilities far beyond what we have ever seen.
In addition to the above service categories, the cloud providers offer an array of network and messaging services to allow companies to move their entire IT infrastructure to the cloud. These include network utilities like load balancers, routers, and firewalls; services for scalability like content delivery networks, queues, and caches; as well as messaging services for email, SMS, push notifications and more.
In addition, you can find developer tools like online development environments, source control, server buildout, and deployment management. There are also logging and system management tools, real time monitoring, and alert systems. They even include platforms for developing and hosting everything from business process tool to games.
The list is long, and services are being added every day. Whatever you want to build, make sure to explore the offerings of the various cloud providers, because there is sure to be a tool to help you.
Finally, one of the most critical factors to consider when moving data or computing infrastructure to the cloud is security. The three major cloud providers we are considering all have tremendous expertise when it comes to security, as they are all obvious targets for attack.
From physical security of their data centers to OS-level security through configuration and patching to network and data security through encryption and more, cloud security has never been better. All of the providers are constantly scanning for intruders. All offer robust identity management and authentication infrastructure, as well as highly granular access controls.
Security is far too complex and difficult a problem for any developer or development shop to manage on their own, and the cloud providers have teams of experts who have spent years developing securable infrastructure that will almost certainly be more robust than anything you could host on your own.
This has been a brief survey into the type of products and services available from the major cloud providers. If you have any questions regarding which cloud platform is right for you, feel free to contact us at firstname.lastname@example.org. We have experts to make sure you get the answers to your questions. Next time we will dive deeper into the specific offerings in each category, comparing the services in terms of features and cost.