Serverless Computing: The Next Cloud Evolution
Cloud Genetics Are Mutating
Throughout evolution, there is usually a period where certain traits of an organism make little sense and become vestiges of the past, while certain genetic mutations make the organism stronger and more competitive. There is a modern example in the form of web applications. Most cloud-hosted web applications reside on dedicated virtual servers racking up charges, using electricity, and hardware resources whether they are in use or not. These applications typically are installed on virtual machines which must be installed, configured, maintained, and patched by developers and operations staff. These solutions do not seamlessly scale based on usage without some human intervention. In a world of software-defined everything, developing applications and deploying them to fixed virtual servers no longer makes sense for many low to moderate intensity application workloads. However, a new genetic evolution has emerged making web applications more scalable and efficient than ever before. Web application genetics have started to mutate with event-driven development and serverless computing as new capabilities. Serverless computing takes Platform as a Service (PaaS) to a new level by completely abstracting the server configurations from the developer, allowing them to focus on the solution rather than the underlying infrastructure. Event-driven development allows code to stay completely dormant until an application service is requested by a user.
Serverless computing manages all creation, scaling, updating, and security patching of underlying server resources. It also abstracts nearly all server details from the developer to eliminate the need for creation of virtual machines, software installation, security patching, advanced configuration, and maintenance. With serverless computing, developers simply create a serverless service and, instead of receiving a new virtual server, they receive a service endpoint and credentials. The service manages provisioning, autoscaling, maintenance, and updates to keep services running continuously. Developers use these endpoints with the same tools and development environments they use today to build clean, elegant serverless solutions.
To capitalize on this efficiency, web applications are increasingly evolving towards serverless computing using advanced serverless components such as Amazon Web Services (AWS) Lambda, Azure Functions, and Google Cloud Functions. Each of these serverless computing environments combines event-driven architecture with serverless computing. It creates incredibly efficient service environments capable of rapidly provisioning on demand to meet user requirements and then scale back down to reduce costs. Serverless database services (AWS Aurora, SQL Azure, Google Cloud Database) are evolving.
Aspects of the cloud’s genetics started to mutate into serverless computing, an architecture model where code execution is completely managed by the cloud provider. Developers now don’t have to manage, provision, and maintain servers when deploying code. They don’t have to define how much storage and database capacity is required pre-deployment, hence reducing the time to production.
How Will Cloud Computing Genes Diversify for Better Efficiency
AWS Lambda, introduced in 2014, provided an event-driven compute service that lets code run without provisioning or managing servers, essentially executing code on demand. It has since been joined by Azure Functions and Google Cloud Functions. These servers are known as Function as a Service (FaaS), where you pay as you go for execution only and not for underlying resource usage. With AWS Lambda, your service activates when triggered by a request from the client to execute code and when the execution is complete, the resources will be scaled back. Serverless functions are most effective with code that executes for relatively short periods – typically less than 5 minutes. They can be configured to scale automatically, enabling large workloads to make quick work of larger workloads. With serverless design, dormant services are scaled down and don’t run up the bill.
Is the Serverless Computing Genetic Evolution Compatible With Any Tech Ecosystem?
Continuing with our genetic evolution metaphor, any genetic evolution will only survive if it benefits an organism and, in some way, strengthens its survival chances. Similarly, serverless computing must strengthen applications without making serverless applications incompatible with its ecosystem. While all signs are promising, developers and architects are still trying to understand all the opportunities and challenges associated with their initial findings. Serverless computing offers increased productivity while reducing costs, however, it has practical and real-world challenges. A few of those issues include:
The technology behind serverless computing is still nascent, so there is limited documentation on ideal usage and best practices. In some cases, it is trial and error for teams utilizing the technology.
Serverless technology may require rework of some code. Code that is stateful and that does not follow common web application best practices would have to be rewritten.
The programs supporting serverless computing are not yet approved by FedRAMP, however, the approval will happen soon.
Is Serverless Computing Working in the Federal Government?
EGlobalTech is implementing serverless architecture with its Federal engagements. Recently, we collaborated with the Federal Emergency Management Agency (FEMA) to migrate a mission-critical system to an AWS cloud platform. We are now modernizing portions of the system which were identified as good candidates to go event-driven and serverless which will provide massive scalability improvements over the existing solution.
Contact us today at firstname.lastname@example.org, if you need help strategizing and implementing your Big Data project.
Copyright 2018 | EGlobalTech | All rights reserved.