While we’ve all been talking about cloud for several years, it’s clear that there’s still a long way to go before we see widespread cloud-first strategies up and running across all enterprises. Nonetheless, more and more organizations are operating at least some of their applications in the cloud. In this series of blogs, I will discuss how best to accelerate enterprise cloud adoption and maximize the benefits of the cloud.
Enterprises are adopting the cloud for various reasons. These extend from emptying the local datacenter in order to cut costs, to staying ahead of the market with flexible cloud resources. The route taken to cloud adoption tends to depend on whether the driving force is to achieve change cost effectively or to deliver business benefit.
At a cost level, adopting cloud by moving workloads in a lift and shift way is the cost-effective option to empty the data center, but it typically comes with the least cloud benefits. On the other hand, building a completely new cloud system based on the latest cloud architecture will take more effort and cost significantly more to build, but will bring more of the benefits needed by the modern business.
Which path will you take?
At Sogeti, we divide cloud adoption in the two paths, migrate and modernize business functionality is the first. New and innovate business functionality is the other path of cloud adoption. When looking at the commonly used five R’s, rehost, refactor and revise are the modernization options. Rebuild and new build fit the second path:
Migrate and modernize:
- Re-host: Lift and Shift workloads as is to the cloud.
- Refactor: Redeploy workloads on the cloud by using the automation capabilities of the cloud. Without code change for the application.
- Revise: Optimize the run and lifecycle of a system by decoupling components and choose the best cloud resource for it. Applying required code changes at the application level.
Innovate and new build:
- Rebuild: Redraw the systems architecture for cloud, rebuild and reuse application components.
- Replace and new: Start from scratch with a shiny new system (application) conforms with the current architecture practices.
Most often cloud adoption starts either with re-hosting workloads and then working towards more cloud and business benefits via modernization. On the other hand, cloud adoption also starts often by experimenting with new workloads and innovate on business functionality. One way or the other each adoption path comes with challenges, the first of which I will cover here – how to get the best benefits of your cloud adoption.
Taking an Agile and DevOps approach
What benefits are you looking for? It’s likely to be a combination of flexibility, agility and reduced costs. Simply adopting the cloud and following a traditional waterfall-based delivery model doesn’t give these benefits. In most cases, the costs are even higher and flexibility less. Instead, what’s needed is a cloud adoption approach that targets applications and infrastructure in an Agile and DevOps way, no matter if it is on migrate and modernize or innovate on new business functionality.
But adopting DevOps is, in itself, a challenge. Often DevOps is introduced at the same time as cloud to make teams faster and more flexible, with everybody taking responsibility for quality outcomes. But the challenge with this is that we often see that when more teams are working on the systems in an enterprise it can become chaotic. DevOps teams should be self-organizing, but the mantra of “you build it you run it” is hard to accomplish in enterprises with hundreds of applications. When DevOps teams don’t follow a common way of working cloud systems can become chaotic, slow and hard to maintain Enterprises require consistency between implementations for both maintenance and regulatory purposes. Many teams implementing and running systems in their own (different) ways will slow down the implementation of future changes, which defeats the object of speed and agility.
Thus, adopting a DevOps approach demands new ways of working. DevOps teams will become responsible for building and running their own cloud infrastructure. This new responsibility makes them more flexible, following an Agile and DevOps approach in their work. DevOps teams will all have to be aligned with a way of working and coordinated ownership of the production landscape.
The focus of DevOps teams should be on realizing and maintaining business functionality. Everything else is a distraction and should be undertaken by others or executed in an automated way. To keep this focus, it is good practice to follow a set of working principles. For example, general automation and work principles, practices, guidelines and opinions for the way of working will help to ensure that the benefits and goals the enterprise expects from cloud will be realized and kept.
Within the Sogeti Enterprise portfolio modernization strategy the internal opensource (inner source) developed and maintained CloudBoost library is an important artifact for enterprise cloud adoption. A standard repository template for cloud resources and automation supports DevOps teams all over the world in delivering consistent enterprise-ready cloud systems.
Having a consistent cloud implementation for optimal efficiency is one of the Enterprise DevOps challenges when adopting the cloud for hundreds of applications. Having a central shared knowledge base on implementation strategy with templates for all artifacts is mandatory.
Adopting DevOps is just one aspect of the enterprise cloud story. In the next two blogs, I’ll be looking at the role of continuous testing – and continuous ‘everything’ – as well as the different cloud platforms that will shape the future of the enterprise cloud.