New Relic sponsored this post.
With the rising adoption of AWS Lambda and Fargate, serverless technologies are increasingly becoming a viable and desirable IT infrastructure to meet the unique needs of DevOps organizations. Serverless technology can help companies scale their cloud and container-based architecture. According to the 2019 Forrester Global Business Technographics Developer Survey highlighted in Forrester’s report, Serverless Development Best Practices, 49% of companies are using or plan to use serverless architecture in the next 12 months.
At New Relic, we’ve taken an in-depth analysis of our data to learn key trends on how our customer base is leveraging serverless. Here are some of the challenges that teams face today and five best practices for addressing them in 2020 and beyond:
1. Serverless Is Not Just for Cloud Native Startups
Initially, serverless started as a great tool for startups, since there is a pay-for-what-you-use model. These technologies can integrate well into cloud infrastructures. However, after deep analysis from our own customer base, we found the number of enterprises using serverless in production are expanding their serverless footprint, with a 178% increase of functions per account. These organizations spread beyond just technology — encompassing manufacturing, financial services, realty, and more. It’s evident that serverless has evolved from a small passion project, to being implemented into the real world. Serverless computing has also helped diversify and scale IT organizations’ efforts in building and offering different apps and services to users across multiple architectures, not just container-based ones. In addition, the rise of Functions-as-a-Service (FaaS) offerings like AWS Lambda, Azure Functions, and Google Cloud Functions, has further shifted responsibility for maintaining infrastructure and scaling compute toward cloud vendors — leading to increased agility and scalability for enterprise teams.
2. Prep Teams Now on Both Technical Skills and Culture Shifts
Serverless is changing the fundamentals of how applications are being designed within enterprises and, as an expected result, it is bringing cultural changes to organizations along with it. This shift in IT architecture will change how developers and operations teams work together, evolving the role of DevOps as more operations and management tasks are handled by the serverless provider. AWS becomes an extension of the team, taking on the task of running code in its cloud-based containers so that teams can focus on building applications and not spend excessive time worrying about infrastructure management. Additionally, technical teams will benefit from creating functions to perform a single, well-defined task with low overall code sizes to meet deployment package size limits from AWS, in order to support the organization’s serverless computing success.
3. Be Ready to Quickly Adapt at Any Time
Serverless aims to help simplify DevOps processes architecture, by leaving operations tasks to the cloud provider. This enables teams to scale their applications and utilize different programming languages, since they’re not tied down to a monolithic architecture. While serverless helps integrate Dev and Ops, DevOps teams need real-time visibility into serverless computing to ensure that the architecture is supporting apps and services effectively. For example, large spikes in invocations during the holiday season reinforce the serverless use case of auto-scaling, to support peak holiday workloads across industries like retail, media and logistics. Similarly, sudden economic shifts or demand changes can make entire workloads irrelevant overnight, or suddenly popular. Building with serverless architectures makes many of these events much less concerning.
4. Reducing Complexity Doesn’t Happen Overnight
One of the benefits of Serverless computing is that it allows teams to hand off architecture monitoring and changes to the cloud provider, so that DevOps can focus on application development and deployment. However, just as with adding any other modern software capability, serverless computing adds a layer of complexity into the technology stack. In order to truly manage and understand what is going on in their architectures, teams will need robust visibility into how each layer of their serverless architecture is operating. Just implementing serverless will not mean that operations will get easier, even if many tasks are outsourced to the cloud provider. Oftentimes, teams will need to see trace data, custom attributes, and metrics to see how they are performing.
5. Vendor Lock-in Is Inevitable
Selecting serverless technologies like AWS Lambda, which is connected to AWS, makes it difficult to move to Microsoft Azure functions or Google Cloud Platform functions because there is no single interface standard for serverless. The fact is, though, that vendor lock-in has always existed. Previously, you might have been locked into your own data centers, .NET and Windows Server, or other architectural choices. This continues to be true if you start using one specific serverless technology (say, AWS Lambda) and start tying your application to one vendor; it quickly becomes very difficult to move off of that platform. Organizations that strive to be vendor “agnostic” will find it much harder to stay agnostic as teams increase their serverless functions. And that is probably okay.
In terms of function volume, developers mostly rely on Node.js and Python for building serverless applications on Lambda and Java. With the AWS launch of Provisioned Concurrency, mitigating cold start impacts and VPC improvements, Lambda is now more attractive for enterprises that require isolated environments or have specific language requirements. It’s expected that the adoption trends for Java will increase in 2020. Serverless adoption among enterprises continues to rise with a 209% increase in average weekly invocations over the last 12 months. As serverless computing becomes a more attractive option for DevOps teams to build applications on Lambda and Java, we’ll see companies look to third party cloud vendors like AWS to help take on the responsibility of managing code environments and infrastructures.
With serverless technologies increasing, it’s important to understand the best practices for addressing them in 2020 in order to achieve a true platform-as-a-service environment.
Amazon Web Services is a sponsor of The New Stack.
Feature image via Pixabay.
At this time, The New Stack does not allow comments directly on this website. We invite all readers who wish to discuss a story to visit us on Twitter or Facebook. We also welcome your news tips and feedback via email: firstname.lastname@example.org.