DevOps in the cloud: everything you need to know
Source – itpro.co.uk
What does DevOps in the cloud entail and how do organisations to get the most out of it?
Both DevOps and cloud computing have been hyped as essential to maintaining competitiveness and undertaking digital transformation in today’s organisation. While DevOps is about improving business processes and applications, cloud is all about the underlying services and technology. So how can businesses make the most of these?
How cloud DevOps differs from other DevOps
When we talk about DevOps in terms of ideals, it doesn’t take long to mention “everything as code” or “immutable infrastructure”; cloud-based DevOps by its nature drives these ideas forward, according to Mark Debney, head of DevOps at tech consultancy 6point6.
“It also allows us to expand our view wider than just the servers or load balancers. In a cloud based environment we can view our complete stack from top level network elements down to a single package installed on a server as a discrete entity, all of which we can create, destroy, copy and modify with a simple click,” he says.
“In non-cloud based environments, the edges of the environment a team is working in is more easily felt, be that limited compute capacity, shared infrastructure or limited technology choice.”
Debney adds that cloud gives DevOps greater flexibility. This can take the form of being able to rapidly scale existing components and bring on new projects, which opens the door to more imaginative ways of testing and releasing new components.
“It also allows us to leverage tools and ideas within the wider cloud community. We can get the most out of the platform from a shared group with similar restrictions. We are no longer tied to our own internal set of infrastructure technology with its own unique quirks,” he says.
Reaping the benefits
As we move to cloud, we add more and more layers of complexity. The beauty of public cloud, however, is it presents everything via consumable APIs. Tim Hynes, DevOps engineer at Rubrik, says that makes it a naturally programmable environment and a better fit for developing DevOps processes than traditional environments, where APIs are not universally available. “This enables us to take a modern, scalable approach to building applications and provides levels of flexibility and opportunity that are not available in traditional environments.”
Richard Slater, principal consultant at Amido, says the value of DevOps comes from higher engineering productivity – but there’s the catch.
“You need to invest in DevOps upfront to see a medium-to-long-term result, and you can think of this as an initial lump sum investment in DevOps tools, processes and training for a percentage increase in velocity for the future,” he says. “By adopting DevOps in the cloud, you can reduce the capital expenditure on DevOps Tools by simply renting SaaS tools from the market – for example DataDog, Splunk, AppDynamics, New Relic, JIRA, Bamboo and CircleCI.”
Making it a success
One of the primary reasons agile and DevOps transformations fail is the lack of trust placed in the product development teams, says Slater.
“Organisations wanting to adopt Agile, Cloud and DevOps must start to give trust to the individuals making decisions and writing code on the ground. To a certain extent this trust must be earned, but in many of today’s enterprises there is so much governance around technical delivery that it has the effect of slamming the brakes on any transformation.”
Slater says that when it comes to expanding DevOps and cloud adoption to other parts of the organisation, only increase your goal for adoption by a maximum factor of three.
“If you started with one project, next try another three projects, then nine and so on. Aim for the projects that deliver the most business value in the shortest time, once you have ten projects under your belt start looking at tackling some of the harder problems -–these will be a lot easier now you have a critical mass of products, vendor agreements, suppliers, processes and people behind you,” he adds.
Iskandar Najmuddin¸ specialist architect at Rackspace, says there are two DevOps best practices businesses should employ: End-to-end traceability and Shift Left. End-to-end traceability means a business is able to trace where any changes in the cloud came from, helping them manage their cloud better. If someone reports a bug, the business needs to be able to understand which versions of code are working in the environment that caused that change.
“No one tool can solve this – as you build a pipeline of changes, the key is to ensure that the business injects metadata into it to help trace the steps,” he says.
Shift Left is an idea that came out of the IBM testing centre and stems from the belief that resolving issues in production is expensive, says Najmuddin.
“These issues could include bugs, down time and vulnerabilities, and are expensive to fix once code is in production. Shift Left is the idea that development is done on the left hand, and production is on the right. Businesses must identify and fix the problems on the left before they transition toward the right. This affects how businesses plan, design, write and apply code, as well as [how they] introduce any changes into the environment.”
Sasan Padidar, director of engineering and container security at Tenable, says one of the best practices for DevOps in the cloud is to keep applications small by decoupling pieces that can function independently. “This is important because independent components of the application can be scaled separately. It also means that pieces of an application can be deployed faster because of the reduced complexity of the overall application,” says Padidar.
“It’s also best practice to ensure all dependencies of each application are packaged with the application during the build process. This means that applications are immutable units that can be deployed anywhere.”
More containers and orchestration
Najmuddin says that in the next 12 to 18 months, there will be more adoption of containers, as well as a consolidation of the container orchestration landscape. There are three main systems used at the moment, but they will become easier to use or standardised.
“The idea that DevOps is a distinct job or role in an organisation will also start to tail off. DevOps specialists will do the same job, but may not have the same title, as the concept of DevOps will be integrated into other roles. DevOps will become the default way to manage these cloud environments, and the job titles will evolve to reflect this,” he says.