DevOps in a Serverless Environment: Accelerating Possibility
In our previous discussions on serverless and why we love it so much, we also mentioned that adopting the technology can lead to changes within the organization and to certain roles.
DevOps is one of the areas of focus where there are significant changes when moving to serverless. Given the overall movement toward this technology, it’s worth taking the time to look at how a move to serverless changes the role of DevOps.
Identifying the changes starts with understanding what DevOps is and what it isn’t.
DevOps is typically linked with concepts like CI/CD and Agile, and that’s appropriate. Each of those represents a different level of operation, from framework to process to tactic.
Agile is the overarching framework that encompasses everything from business needs and stakeholder engagement to delivery.
DevOps is part of Agile and is closer to a set of principles and processes for streamlining the building of software, testing, and release.
CI/CD is a process used within DevOps. It leverages tools as part of the implementation of a DevOps process and can facilitate and simplify DevOps through automating parts of service delivery.
So if DevOps is more of a mindset, does the mindset need to change to work in a serverless cloud environment? Read on to answer this question.
What is DevOps for Serverless?
In a legacy or monolithic environment, DevOps is inherently myopic. You focus on the processes around a single application. That could be a monolithic application or a single app being deployed to a server. Once established, the process is consistent each time, with little change. As a repeatable and predictable process, it’s relatively easy to set up good DevOps processes, measure success, and improve.
Serverless, however, adds layers of complexity. You are creating processes that span many services (sometimes thousands), microservices, APIs, and other bits of connective tissue for your application, like queues. The chunks are smaller, and there are a lot more of them.
You have to shift your focus from a single application to an ecosystem of serverless microservices that mesh and interact with one another. The only thing consistent is the need to adapt and grow with the ever changing serverless ecosystem.
As your serverless footprint continues to grow, your DevOps processes need to scale and evolve along with the environment.
Don’t Skip the DevOps in Serverless
There may be a temptation to ignore DevOps once you’ve moved to serverless. If you find yourself thinking this way, you’re not alone. But organizations that succeed with initial serverless deployments and ignore DevOps from the get-go later struggle with managing the rapidly growing serverless footprint, governance, and maintaining hygiene in their serverless environment.These are all things that DevOps are meant to help with.
DevOps does get more complex in a serverless environment. That just means that DevOps should be more of a focus. Manual management becomes untenable very quickly, and automation becomes critical. As you ramp up on serverless, you need to ramp up your DevOps practice in parallel. When thinking about implementing a serverless implementation, you should also think about your DevOps processes where the two should go hand in hand. This will set you up for long term success with a serverless implementation.
Being Successful with DevOps in a Serverless Environment
In the new serverless world, your DevOps practice is gauged on several factors:
● Rapid feature development
● Frequent releases
● Accelerated time to delivery
● The number of “connectors.”
Successfully meeting these criteria in a serverless environment requires defining your DevOps processes upfront. Driving towards a goal of implementing connectivity with 100 different systems, often know today as “connectors,” is an impressive feat. Can you imagine trying to manage development, features, releases, major and minor versions, and rollbacks of 100 different connectors manually? Your manual processes would start to take longer than feature development itself. This is precisely why you should not fall into the common trap of implementing serverless but not taking the time to implement or adequately define your DevOps.
Doing this requires overcoming some hurdles, including avoiding common pitfalls, understanding the benefits of DevOps with serverless, and leveraging best practices. DevOps in serverless is also more than automating the deployment pipeline with CI/CD, although that’s a great place to start. We’ll be discussing all of this in the next few posts in this series.
Don’t be discouraged. The world of serverless is fast-paced and includes many different components. DevOps is essential to keep up with the entire ecosystem effectively. If you’re moving to serverless but aren’t sure how to adapt your DevOps to make the most out of the move, contact Big Compass.