Deloitte identified Digital ledger technologies (DLT) or ‘Blockchain’ as it is commonly referred as, to be one of the top six trends this year (2018), predicting that the technology will hit mainstream storing around 10% of the global GDP by the year 2025.
Looking at the current adoption rate worldwide, this possibility seems entirely probable. The manner in which blockchain technology has evolved from cryptocurrencies and has established itself as an enabler of trust for critical business and social applications such as contracts, legal documentation, identities, trading and banking etc., clearly prove that it is not just a passing fad but a revolution.
And, it here to stay.
The future, according to many experts, that will enable us in our journey to Blockchain technologies- is DevOps- How do they relate to each other? Let’s find out –
How Blockchain uses DevOps
On the surface, they seem to not have anything in common or offer each other. DevOps is defined as “a combination of software development (dev) and operations (ops), with a focus on cross-departmental integration and automation. The goal is to create a culture and environment that will increase delivery speed through process automation and reduce costs while continuing to meet regulatory requirements”.
Basically, it is a set of principles and practices fashioned to improve software delivery.
Meanwhile, Blockchain is a way of storing data in a decentralized fashion. Although initially designed as a technology to enable cryptocurrencies- the technology is being applied to various use cases now than just recording and verifying transactions.
So, looking beyond using DevOps principles to create Blockchain based applications, how can these two concepts be used together?
DevOps on Blockchain – Implementing transparent continuous delivery
DevOps software development model adoption was greatly prompted by the need to increase an organization’s agility and fast-track the business transformation to respond faster to the frequent disruptions in their industries.
Companies need to accelerate overall software development lifecycles (SDLC), continuous change management, integrate agile development and rapid development which is the reason they adopt the DevOps approach. These delivery cycles need to be implemented in a short period of time.
The traditional division of duties (i.e. separate environments and teams are established at every stage of the delivery process, each separated from the other by physical and logical controls, as defined by EY) ultimately slows down the delivery of the final product.
Therefore, a solution is needed that will efficiently speed up implementation of DevOps across an enterprise as well as seamlessly implement separation of duties control in an agile environment.
The answer rests on making the software delivery chains more transparent and reliable through Blockchain technology. Like for instance in the application, rather than depending on tools such as continuous integration servers and automated test suites to determine that the code is moving down the pipeline successfully, you, a record that data on the blockchain.
The Blockchain effect on DevOps
This would make the software delivery more transparent leading to improved quality of software development and reliability. The data in regards to software issues and the application delivery status can be accessed (viewed) instantly by all participants on the blockchain- providing greater visibility into the continuous delivery process.
Another example of DevOps application in Blockchain could be using smart contracts to regulate how the code moves down the pipeline. They could also make sure that the software deliveries meet the user expectations.
Like for example, instead of using tools within the pipeline to identify issues, like for e.g. problems regarding continuous integration, information could be independently and automatically verified through smart contracts on the blockchain. If there is an issue, the smart contract could require that it be amended before it moves further down the pipeline and becomes a bigger issue.
SLAs and Smart Contracts
Similarly, software functionality can be granted using smart contracts. Currently, DevOps use service level agreements, i.e. SLAs as contracts guaranteeing a certain level of functionality and reliability of the application.
SLAs, on the other hand, are inefficient to negotiate and are expensive to dispute. If an application fails to meet the terms set by the SLAs then it’s on the user to report the problem and demand a solution.
Instead, DevOps.com gives us a second use case for blockchain in DevOps where -the service agreements are instead verified on the blockchain and enforced through smart contracts, in which case, users would have to guarantee that an application’s failure to provide the specified functionality would be detected automatically. It could also result in an instant solution, such as a refund by the smart contract of a contractually determined amount of cash.
Blockchain may not be a part of DevOps discourse today, but it is well positioned to implement DevOps delivery that meets the control requirements in business and technology environments be it large or small.
A well understood automated delivery service will definitely be achievable when implemented on a blockchain technology, offering immutable traceability of approved delivery activities, eventually leading to an increased business efficiency and agility.