How DevOps works in the enterprise

Source: information-age.com.

How DevOps works in the enterprise — it’s all about rapidity of release, but without sacrificing and compromising on quality in the digital world.

How DevOps works in the enterprise is one of key questions business leaders have been asking.

This relatively new discipline, which Atlassian describes as agile applied beyond the software team, is helping businesses release products fast, but without cutting corners — which is “the name of the game at the moment in the digital world”, according to Gordon Cullum, CTO at Mastek.

Increasingly, DevOps is the style in which businesses want to interact with each other in the digital age; it’s about rapidity of release without sacrificing and compromising on quality.

Patrick Callaghan, enterprise architect, strategic business advisor at DataStax, goes one step further.

He suggests that businesses “can’t truly function as an enterprise without applying DevOps software development principles….DevOps in practice is ideal for organisations looking to streamline production, automate processes and build a culture of collaboration within their software teams. DevOps innovators are confident in their code because they both test it and make it fail in order to produce reliable apps.”

What is DevOps

How DevOps works? Before getting into this, it’s important to understand what is DevOps.

Quoting AWS, ‘DevOps is the combination of cultural philosophies, practices, and tools that increases an organisation’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organisations using traditional software development and infrastructure management processes. This speed enables organisations to better serve their customers and compete more effectively in the market.’

This is a very practical explanation, but there are multiple definitions of the term.

It’s often described as a set of evolutionary practices inherited from the ways of agile working, which are more tuned to bringing the delivery and operational support communities closer together. This surrounds using processes and tooling that has been developed over the years for things like test automation, continuous integration, continuous deployment, to enable the faster flow of code. These new releases of code could be new functionality, architectural change or bug fixes.

“It’s a combination of keeping the lights on and changing delivery,” says Cullum.

Reinvigorating an old way of working

Bringing delivery and support together is a throwback to the 1980s and 1990s, “where IT just did IT and you didn’t care whether you asked them to fix a bug or deliver functionality,” continues Cullum.

This ethos is being reinvigorated in DevOps. But the reason it works and is more powerful today is because of the emergence of enabling technologies and new ways of working.

“While, 20 to 30 years ago we may have had JFDI approaches for getting stuff into live environments, what we now have are very controlled, measured processes, brought around by tools such as Puppet and Jenkins — these all create the robust, quality, managed pipeline that allows fast delivery,” explains Cullum.

Why DevOps now?

The reason DevOps has emerged now is because companies are involved in a highly competitive arms race.

Everything is accelerating so fast from a delivery point of view; if businesses can’t release code quickly, then they are probably already being disrupted. This brings challenges biy it also provides advantages if you are already on that curve. Agile work patterns, for example, only really work if the organisation already has a relatively modern architecture.

The other area in the acceleration of DevOps is the emergence of cloud services. Over the last five to 10 years, the cloud has enabled very quick, easy and at times cost effective processes and techniques. These can be spun out in environments, infrastructures, platforms or whole services, and can be wired together very easily.

What this means is that architects are more able to build componentised architectures that are independently able to be released, modified and scaled from each other.

“So modern techniques, such as micro-services and even serverless architectures, really accelerate the uptake of DevOps capabilities from a delivery and support point of view within an organisation,” says Cullum.

Bringing all these things together; the rise of cloud, the need to get things out faster but at a high quality, the rise of all the tooling that enables fast pipeline deliveries, changing culture and IT, what you’ve got is DevOps.

How DevOps works in the enterprise

What is the best approach organisations can take to DevOps? “It’s horses for courses type conversation,” answers Cullum. By this, he means there are a lot of “complications under the hood”.

The first thing for organisations would be to identify why they want to adopt DevOps, so “they can keep their eyes on the prize”.

“It’s not about a marketing term, it’s not about somebody at c-level saying we want to implement DevOps, go away and do it,” suggests Cullum. “You have to know why you’re trying to do it. What is it you want? Do you want repeatable quality? Do you want cheaper or faster deliveries? Do you recognise a need to modify the architecture,” he asks?

The leaders at legacy organisations, such as an older bank with monolithic environments, can’t just send their IT department on a DevOps training programme and expect them to be able to change the way they release software on mainframes. “It isn’t going to work like that,” suggests Cullum. In this scenario, there needs to be an architecture enablement programme that takes place, “which is how these legacy organisations can make sure that the services they deliver through the IT estate can be componentised in a way that delivery teams can run at their own pace.”

So, how DevOps works depends on the journey. There is no simple answer. But, the key takeaways for business leaders would be; don’t underestimate the cultural change required (people have to buy into the idea, similar to digital transformation), don’t rely too much on heavy documentation (you’re not going to know everything up front) and approach risk proactively (don’t be afraid of change).

If business then decide to implement DevOps within teams, from a process and method point of view, then these questions must be addressed; is your architecture able to support it? Is a leadership roadmap in place that creates the environment necessary to start delivering fast, high quality, automated deliveries?

“It’s a good question and requires a very consultative answer,” says Cullum.

The DevOps workforce

As with any new disciple, even traditional ones in technology, the skills gap proves irksome. So, when implementing DevOps, should organisations retrain or bring in new talent?

It’s probably a bit of both, but the biggest thing people need is the right attitude. Mastek has found this, according to Cullum. The programmers, designers and product managers who have been in the industry for 15 to 20 years are sometimes resistant to the change DevOps brings. They need to embrace a rapid change mindset, and accept that delivery and operations need to get closer together.

Generally, however, if “you aren’t already stuck in the mud at a senior level”, individuals in the industry are already well versed in the pace of change and in learning new techniques — they have to be “cross-skilled,” as Cullum describes.

Justifying this, he explains that what Mastek is finding is that it’s easier to train trainee engineers in new techniques, because they haven’t yet been conditioned to think in the older, waterfall-style ways of thinking.

“It’s harder to change attitude than it is to change a technology skill set,” he says. “So, we are cross-training and it’s working quite successfully, but we are seeing an accelerating effect by focusing on DevOps and agile techniques for our trainees.”

According to CBR, businesses should look at these seven skills when hiring a DevOps engineer:

1. Flexibility
2. Security skills
3. Collaboration
4. Scripting skills
5. Decision-making
6. Infrastructure knowledge
7. Soft skills

DevOps: an essential part of digital transformation?

Digital transformation is a wholesale reinvention of business — embracing digital, culturally and technologically.

“If you’re not reinventing your business processes, then you are not doing a transformation,” points out Cullum.

But, if businesses are reinventing business processes, then by definition they’re probably going to be overhauling large chunks of their IT estate, including the aforementioned legacy.

By embarking on this journey, sooner or later, these transformative businesses will be moving into a modern-style architecture with different components and different paces of different deliveries.

“In our case, we often talk about pace-layered deliveries,” says Cullum. “You’re going to put a lot more focus in your systems of differentiation and innovation, and they have to have rapid relatively robust change going in,” he says.

DevOps is the enabler of that.

If businesses aren’t doing DevOps — they might call it something else — or repeatable, automated deployment testing processes then they are not embracing change and able to make releases at the speed of change.

Why DevOps is important

DevOp, like digital, is an assumed norm now. It’s probably a little late to start thinking about it.

“If you aren’t already thinking about it or aren’t already doing it, you’re probably way behind the curve,” warns Cullum.

In digitally-resistant organisations it is likely that there are “guerrilla factions” that are trying DevOps. “In this case, you should probably go and look at what’s going on there and work out how you can industrialise that and scale it out,” he advises. “If you aren’t doing any of that, then you’re probably holding yourself back as a business.”

Some argue, however, it’s never too late to join the DevOps integration race.

Business case study

Callaghan suggests that Netflix is a great example of making DevOps work for the business.

He says: “Netflix uses Apache Cassandra™ for its high availability, and to test for this they wrote a series of testing libraries called “Chaos Monkey.” For example, both “Chaos Kong” and “Chaos Gorilla” tests are used to decimate Netflix infrastructure to evaluate the impact on availability and function. As a result of the practice, Netflix is confident in their system and its reliability. DevOps software development practice enables Netflix to effectively speed up development and produce an always-on experience for their users.”