Serverless: Helping the Enterprise Scale DevOps

Source:-devops.com

Serverless is the paradigm shift that allows engineers to innovate and move faster

DevOps has been around for more than 10 years and it’s still misunderstood by many companies. You can’t buy “a DevOps,” but DevOps is critical to your business. In some ways, serverless is similar: a name that markets well but creates confusion and misunderstanding in the industry.

Like DevOps, serverless is a game-changer. Some say that DevOps is no longer required, this is not true. Serverless has enabled Fortune 100 global insurance company Liberty Mutual to scale the advanced DevOps practices required for a modern enterprise with a global reach. Serverless has been the paradigm shift that enables acceleration.

Liberty Mutual started its cloud journey around 10 years ago, the same time the DevOps discussion started within the engineering teams. Two very important concepts came around over the next few years: For cloud, we should build a foundation on cloud-native, not just “someone else’s data center.” And for DevOps, we should think about CALMS (Culture, Automation, Lean, Measurement, Sharing) as opposed to writing scripts. Both of these concepts started a collision course that would eventually result in launching in a serverless-first strategy for our organization.

One of the key concepts of the cloud strategy is infrastructure as code. Back in 2015, it was a pretty tall order to teach 1,000-plus software engineers how to provision secure and resilient infrastructure using YAML. Of course, some teams will excel, but it was a very steep learning curve for many. Then adding on more advanced requirements such as secure by design, chaos testing, resiliency, observability, performance optimization … phew! However, once teams evolved to creating serverless systems, something really interesting happened: Teams started to create self-healing workloads, blue-green deploys, hit high DORA metrics (throughput and stability) and deliver exceptional business value at low compute costs.

Serverless Considerations

For any business starting its serverless journey, the following principles should be considered. These key building blocks will help teams anchor by focusing on business outcomes and addressing customer needs. Enable teams to explore cloud technologies but help them avoid being lost in it—inertia can kill an organization.

Team Outcomes Are Measured in Business Outcomes

Product thinking, North Star metrics and impact mapping are extremely useful to help teams focus on clear outcomes. What is the most important feature we can deliver next? Yes, it is that simple.

Code Is a Liability

For 40 years, we have known that you cannot measure engineering success by lines of code written. Yet, we sometimes have a sense of pride at the high LOC (Lines of Code) counts. Encourage engineers to create systems with as little code as possible. Managed infrastructure that is event-driven and correctly decomposed will not need as much code. This is a fact. You can’t code your way out of complexity—be pragmatic.

Serverless Is a Spectrum

Start with serverless first [Fig. 1] and then work your way back to IaaS (infrastructure as a service). Insist on high engineering standards. Measurement is difficult in modern software development—it should be based around trends, not absolutes. The “four key metrics” from DORA (deployment frequency, lead time, MTTR and change fail rate) are fantastic indicators. A serverless team with minimal hand-offs can perform very well.

Fig. 1 Serverless is an Operational Construct – from AWS re:Invent 2018 presentation
Clearly, such a strategy requires lots of building blocks in place. You have committed to DevOps; serverless can help scale the advanced practices, but let’s make it real! Here are some key building blocks that you may find useful:

Public Cloud Strategy: Absolute clarity is required on the move to public cloud. This is a transformation and many traditional functions must (effectively) reinvent themselves—security, infrastructure, procurement, engineering, etc. Alignment at the initial stages is critical. What is your collective opinion on cloud-native? If you are a startup, then only serverless-first will give you the velocity you need.

Pipelines: The “pipeline to production” becomes a business-critical capability. Many critical controls must be reimagined in this new world and a low-friction environment is required for teams to move fast safely and securely. Investment in this area is important; otherwise, you will frustrate your engineers.

Patterns: You are now moving toward a commodity platform that welcomes standardized. You will start to notice that many teams are creating the same boilerplate components. Do you have an effective reuse strategy? If it’s too heavy, you will slow everyone down, but if it’s too light, you will create mass duplication. Approaches such as AWS CDK (Cloud Development Kit) and some of the scaffolding approaches available today to enable the creation of “building block patterns” to create components quickly. This is well demonstrated in cdkpatterns.com, which is an open source library of cloud patterns. Liberty Mutual has deployed hundreds of applications using such patterns [Fig 2].

Fig. 2 CDK pattern from cdkpatterns.com

Well-Architected: Finally, in this environment, architecture must happen within the teams. But you still need architects. The AWS Well-Architected Framework provides a very clean approach with five pillars of non-functional requirements that prompt teams around concerns that must be addressed. It’s not a checklist; more like a set of challenges. You’ll find that teams can self-assess, but require an architect to coach through some of the more advanced areas.

Finally, imagine well-architected constructs that are available in your code building blocks and comply with your pipeline controls. This is how DevOps can scale in a serverless environment: You bake the quality controls into the engineering environment.

Fig. 3 – Lambda Power Tuner from Alex Casalboni

After engineers go on this journey, they have power tools at their disposal. They can create world-class systems quickly that run at a low cost. But, be warned, once you set your teams off on this journey, there is no turning back. It is a relentless journey of optimization and improvement; that may be an overhead for companies that do not regard engineering as a differentiating capability.

For the serverless journey, the most important piece of the puzzle is to ensure your engineering teams understand your core business. Create cross-functional teams that are chasing a business KPI. Engineers are engaged when they have a powerful environment that allows them to solve business problems quickly. There is no business-IT divide; you end up with technology teams innovating to meet the company vision. Liberty Mutual has not only observed many of the benefits mentioned here, but also improved engagement from our engineering community. Serverless is the paradigm shift that allows engineers to innovate and move at a pace that has never been possible before.

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x