serverless computing: the right architecture for agile ... · serverless applications features aws...

4
Serverless Computing: The Right Architecture for Agile Innovation allocation of machine resources. As such, the serverless model eliminates the need for provisioning, managing, scaling, and maintaining infrastructure. The cloud provider handles all of these aspects, including fault tolerance, availability, and scaling. By design, true serverless platforms provide a cost-effective way to leverage event-driven microservices to accomplish a wide array of tasks that have become commonplace in today’s digital economy. Why microservices? Employing microservices is the nimblest way to compose a system, and the ability to develop using this function-centric approach is a key differentiator for serverless computing. Microservices let organizations break down an appli- THE DIGITAL ECONOMY IS HERE, and with it comes significantly higher business and technology expectations. On-demand has become the new norm, and consumers expect a highly customized experience. As organizations jockey to meet the demands of the new digital reality, IT is tasked with cost-effectively shortening the time to market while also improving agility. The serverless computing model presents IT with an avenue to achieve this goal by creating a new way to leverage cloud computing. With its event-based approach to computing, a serverless approach lets organizations be more responsive in faster ways. This paper will explore the topic of serverless computing, how it can benefit today’s organizations, and what resources are available to help optimize this emerging tech- nology. Defining serverless computing In its most basic form, serverless computing is a cloud execu- tion model in which a cloud provider dynamically manages the Market Pulse WHITE PAPER Sponsored content IDG Communications, Inc.

Upload: others

Post on 06-Jul-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Serverless Computing: The Right Architecture for Agile ... · serverless applications features AWS Lambda at its core. As one of the most complete and production-ready serverless

Serverless Computing: The Right Architecture for Agile Innovation

allocation of machine resources. As such, the serverless model eliminates the need for provisioning, managing, scaling, and maintaining infrastructure. The cloud provider handles all of these aspects, including fault tolerance, availability, and scaling. By design, true serverless platforms provide a cost-effective way to leverage event-driven microservices to accomplish a wide array of tasks that have become commonplace in today’s digital economy.

Why microservices? Employing microservices is the nimblest way to compose a system, and the ability to develop using this function-centric approach is a key differentiator for serverless computing. Microservices let organizations break down an appli-

THE DIGITAL ECONOMY IS HERE, and with it comes significantly higher business and technology expectations. On-demand has become the new norm, and consumers expect a highly customized experience. As organizations jockey to meet the demands of the new digital reality, IT is tasked with cost-effectively shortening the time to market while also improving agility.

The serverless computing model presents IT with an avenue to achieve this goal by creating a new way to leverage cloud computing. With its event-based approach to computing, a serverless approach lets organizations be more responsive in faster ways. This paper will explore the topic of serverless computing, how it can benefit today’s organizations, and what resources are available to help optimize this emerging tech-nology.

Defining serverless computingIn its most basic form, serverless computing is a cloud execu-tion model in which a cloud provider dynamically manages the

Market Pulse

WHITE PAPER

»

Sponsored content

IDG Communications, Inc.

Page 2: Serverless Computing: The Right Architecture for Agile ... · serverless applications features AWS Lambda at its core. As one of the most complete and production-ready serverless

2 SERVERLESS COMPUTING

cation into discrete components that can be developed, scaled, run, and maintained independently, allowing for faster agility — for example, one to process an input, one to bring in data, and another to create an output (i.e., a social media user who posts a status update). This action triggers a microservice to run code that scans the user’s friends list before invoking other services based on its business rules, such as sending push notifica-tions to appropriate friends. What makes this different? Rather than having one monolithic application, the organization now has swappable components that serve as rapid pivot points to respond to market changes or demands.

Amazon Web Services’ (AWS) platform of services for building serverless applications features AWS Lambda at its core. As one of the most complete and production-ready serverless implementations available today, Lambda empowers organiza-tions to run code for virtually any type of application or backend service — all with zero administration. After uploading code, Lambda takes care of everything required to run and scale code with high availability and fault tolerance. This is true whether the code automatically triggers from other AWS services or directly from any web or mobile app. The code then runs in parallel, processing each trigger individually, while scaling precisely with the size of the workload.

Specific categories that benefit from serverless computing’s dynamic use of resources include massive data crunching, click-stream analysis, and any other high-volume data integration

— for example, funneling information from the Internet of Things (IoT). Here, sensors feed data into organization apps to trigger a corresponding event, such as automatically ordering a part to avoid catastrophic equipment failure.

Understanding the business benefitsServerless computing presents organizations with a variety of potential business benefits.

n Agility to innovate. It’s becoming imperative for businesses across all industries to adapt and innovate quickly, capitalizing on valuable opportunities to reduce time to market.

“Serverless computing allows development teams to devote more time to core products and allows them to build scalable, reliable systems more quickly and easily than when using server-based architectures,” says Mike Deck, principal solutions architect at AWS.

n Reduced operating costs. The serverless computing model can create significant cost savings by eliminating the need to pay for idle servers. Unlike traditional cloud deployments, the event-based nature of the serverless platform means organizations pay only when the cloud service provider executes its code.

Examples of instrumental business tasks that require processing capabilities include transaction order processing, clickstream analysis, data cleansing, metrics generation, social media analysis, and IoT device data telemetry. The cost of having servers dedicated to handle these events, however, can add up quickly. A serverless environment eliminates this need.

n Maximized resource usage. A lot of undifferentiated heavy lifting is associated with provisioning, scaling, and managing servers. Serverless computing removes all of these procedures from the equation. With built-in fault tolerance and availability, developers no longer need to worry about the boilerplate components of a traditional app, such as web servers or software that handles reliability and scaling. This also eliminates the need for a systems expert to handle traditional server teams.

“Serverless is the right way to be cloud-native,” says Tom Myers, senior cloud architect at Accenture. “If I have a function and application that I am willing to redesign to optimally work in the cloud, I would design for server-less because it would be agile and a better cost pattern without the same restrictions of getting embedded technology to work in the cloud.”

Shortening the learning curve Consulting partners can play a critical role in helping organi-zations realize the full potential of serverless computing. For example, an experienced partner such as Accenture can help

text continued on page 4

“Serverless computing allows development teams to devote more time to core products and allows them to build scalable, reliable systems more quickly and easily than when using server-based architectures”

— Mike Deck, principal solutions architect at AWS

Page 3: Serverless Computing: The Right Architecture for Agile ... · serverless applications features AWS Lambda at its core. As one of the most complete and production-ready serverless

3 SERVERLESS COMPUTING

The process of decomposing monolithic apps into microser-vices is understandably an architectural shift. Fortunately, an experienced consulting partner can help shorten the learning curve. What follows are a few of the key areas where atten-tion to detail is crucial.

1. Leverage the entire platform appropriately.

The best results occur when organizations start by identi-fying the use cases that optimize the dynamic serverless platform.

To help organizations achieve this goal, AWS offers a rich set of tools that integrate tightly with the serverless plat-form. These include Amazon CloudWatch, AWS X-Ray, AWS CloudFormation, AWS CodeStar, AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy, and AWS Cloud9.

A large and growing community of independent software vendors also provide deployment and monitoring solu-tions with great support for serverless applications on AWS. These include continuous integration and continuous delivery (CI/CD) partners such as CodeShip and Cloudbees for managing automated deployment pipelines, and moni-toring partners such as Dynatrace, SignalFx, and IO Pipe with deep integrations available for Lambda and other AWS services.

An array of open source projects also focus on serverless applications such as Apex, ClaudiaJS and Chalice. Opera-tional controls and deployment options such as per func-tion concurrency limits, traffic shifting for Lambda, phased deployments, and Lambda aliases/API GW stages further enrich this environment.

2. Address the deployment automation process.

Getting this step right is crucial for mature organizations with existing pipelines built specifically for traditional server-based environments. Fortunately, many of the same tooling and practices apply when moving from server-based to server-less — for example, using a build service such as Jenkins. Within the AWS tool set, developers can use the same CI/CD tooling for server-based or serverless applications.

Once organizations have a comfort level with function-based microservices, the serverless approach ultimately simplifies architectures. Although organizations may end up replacing

a single server process with multiple Lambda functions, each function has a single, well-defined responsibility. Tools such as AWS Serverless Application Model (SAM) and the server-less framework simplify the definition and management of all serverless application components.

3. Embrace the notion of statelessness.

When processing events in a traditional server-based appli-cation, code can store activities locally in memory with the ability to refer repeatedly back across instances of the code. Depending on the type of application, however, the largely stateless nature of Lambda may require a complementary mechanism for enabling long-running workflows.

Orchestration solutions such as AWS Step Functions enable developers to coordinate the multiple, related application components that are typical in a serverless application, while still allowing those applications to comprise small and short-lived functions. Orchestration services also simplify error handling and provide integration with legacy systems and workflows, including those that run for longer than serverless functions themselves generally permit.

4. Conduct performance optimization and address security considerations.

Performance optimization is different on the serverless platform. Success relies on minimizing the size of the deploy-ment package, and bounding the scope of each function becomes important. As such, building operational consid-erations into a design from a code perspective is crucial. Organizations need to test for scale and have the necessary insight to do so. This is where embracing a cost-based build is a pivotal part of the design process. A serverless approach accomplishes this by guiding developers toward appropriate solutions.

Additionally, within a serverless environment, the security model includes fine-grained access controls at the function level. As such, fewer attack surfaces exist, and the possibility of accidentally leaking an SSH key or forgetting to apply a critical operating system patch are no longer issues. Also, for AWS Lambda in particular, the short-lived nature of the execution environments where code runs means that, even if an attacker compromises an instance, very little time exists for exploits to occur before the isolated environment is destroyed.

Key Considerations When Leveraging Serverless Computing

Page 4: Serverless Computing: The Right Architecture for Agile ... · serverless applications features AWS Lambda at its core. As one of the most complete and production-ready serverless

4 SERVERLESS COMPUTING

companies identify and capitalize on opportunities to improve agility and innovation using serverless computing.

“It’s crucial to evaluate both the technical and organizational aspects of building and operating systems. Accenture has the ability and experience to objectively review use cases and help determine if serverless is the right fit,” says Myers. “We have teams in place who understand the challenges and know how to get you over the hurdles.”

When properly leveraged, the serverless computing model enables organizations to move faster and decrease time to market. And, consulting partners play a huge role in helping with any organizational changes necessary to take full advan-tage of the serverless model.

A partner such as Accenture has deep expertise in the technical best practices when architecting serverless compute environ-ments, including foundational development practices such as building a standardized approach for continuous integration and

continued from page 2

For more information, please contact:

Tom Myers senior cloud architect at Accenture

[email protected]

Miha Kraljmanaging director, cloud architecture at Accenture

[email protected]

Accenture AWS Business Group

[email protected]

Serverless computing gives organizations the ability to rapidly prototype and trial-balloon new products or services, then pivot easily based on market response. This is the very definition of an IT architecture that can drive agile innovation.

continuous delivery (CI/CD) and application monitoring. Simply put, leveraging Accenture’s knowledge base can significantly accelerate a development team’s adoption of these prac-tices and prevent the initial mistakes that often come when adopting a new technology, says Myers.

The bottom line Serverless computing has very real business benefits — reduced operating costs and enhanced innovation among them. It also allows development teams to focus on building scalable, reliable systems more quickly and easily than they could using server-based architectures.

The ability to improve agility and reduce time to market delivers true business value. Serverless computing gives organizations the ability to rapidly prototype and trial-balloon new products or services, then pivot easily based on market response. This is the very definition of an IT architecture that can drive agile innovation.

Click here to learn more.