Serverless is Where Savings are in the Cloud
Many of us to expect, or at least hope, to save on infrastructure spending by moving to the cloud. Sticker shock from monthly cloud bills has dispelled that myth for many. Or is the problem not that cloud savings are a myth, but that we haven’t figured out how to realize those savings?
Consider the cost of managing servers, responding to incidents, and keeping server software up to date. The bulk of the cost is in the form of salaries and related employee expenses. Salaries for Linux engineers run about $76,000 per year, while system engineers earn about $80,000 per year. If you have adopted agile methods, a DevOps engineer will run about $115,000 per year, according to Glassdoor.
These employees can be hard to recruit and retain. Simply moving your applications to virtual machines (VMs) you manage in the cloud won’t guarantee savings if highly-paid employees are not relieved of some of the tasks they’d perform if running systems in-house.
Lift-and-shift migrations to the cloud won’t cut costs in any dramatic way; in fact, they can easily cost more initially. If you’re using ad hoc procedures to manage infrastructure and application deployments, switching from on-premises infrastructure to cloud infrastructure will require adapting your scripts and procedural checklists to a new environment.
The DevOps Advantage
If you’ve implemented DevOps practices—using configuration management tools like Puppet or infrastructure management tools like Terraform—you’ll likely have an easier transition to the cloud than your colleagues using ad hoc management practices.
Regardless of how you’ll manage your infrastructure, you’ll be responsible for ensuring adequate resources are available to meet demand while not overspending on unnecessary extra resources. Autoscalers and load balancers can address scaling issues if your application scales horizontally. Relational databases are difficult to scale horizontally, so vertical scaling—e.g., switching to a larger server with more memory—is a more commonly used scaling option, but a more disruptive process.
For substantial cost savings, you should stop spending budget and tying up system administrators and DevOps engineers managing infrastructure; cloud vendors can do it more efficiently. Google, Amazon, and Microsoft all offer services that provide core IT functionality without requiring server management.
Consider a data warehouse. These are data stores that collect, integrate, and store data from multiple lines of business applications. You could set up VMs on a public cloud provider, license some extraction, transformation, and load software along with a database, then install and maintain those complex services for the life of the data warehouse.
You Have Options
Another option is to use a database service such as Google’s BigQuery or AWS Redshift. In the case of BigQuery, you start with creating table and loading data. There’s no need to pick a VM and try to find an optimal configuration. Even though you have to specify some configuration with AWS Redshift, you still have the benefit of AWS patching the server, failing over to another server in the event of a failure, and securing network operations.
If you’re considering using NoSQL, you may find a faster route to deployment using a managed NoSQL database, such as Google Datastore, AWS DynamoDB, and Microsoft Azure Cosmos DB. In addition to databases, cloud providers offer services for data analytics, API management, data catalogs, stream processing, and data preparation.
Serverless cloud offerings shift the burden of server and some platform software management to the cloud vendor. Of course, this doesn’t radically change what you need to do to develop and support your application support; but it does allow you to allocate expensive engineering resources to those functions, rather than administering servers and patching operating systems.