The current state of software development results in a lot of redundant efforts. The same functionality is built repeatedly, which is a waste of time and resources for a company. Open source has been a partial solution, but doesn’t fully solve the problem of reliable code upgrades, which are critical for sustaining a high speed of innovation. This especially acute in decentralized networks, where new releases must be pushed to potentially thousands of independent nodes. While blockchain has become one of the biggest buzzwords of 2018, it’s important to explore how this technology will apply to developers’ workflow in the coming years.
The DevOps culture has been making inroads to fixing this central issue by streamlining and automating the delivery processes. By taking ownership of all levels of the development cycle—increased release frequency, construction, testing, integration—software developers have been better able to keep up with business objectives.
From a business perspective, the principles inherent in DevOps are great, but they are only the first step. While automation and continuous integration has helped speed up the development process, utilizing blockchain technology can become one way to help make the process both instantaneous and transparent.
A major distinction between a DevOps team in its current iteration and blockchain-era continuous integration is smart contract upgradability. A traditional software-as-a-service (SaaS) company has full control over versions of software it publishes to its servers. In distributed blockchain-based networks, upgrading smart contract code is not that trivial and often is not even supported natively (e.g. in Ethereum).
Distributed governance is still in the early days, and since every upgrade to smart contracts has to go through the governing procedures it is difficult to come up with a single solution addressing most models. This leads to manual error-prone implementations of smart contract migrations that can cause bugs, financial losses and even inability to make further upgrades. Standards and tools are yet to emerge in this arena.
That said, it is easy to see how blockchain-based code migrations adds transparency and accountability comparing to centralized systems, where a single entity has full control over the application logic and can alter it at any time without regard for consumer interests. Use of the blockchain in this case is not meant to take over a DevOps team, but rather to integrate with the work of the team and make the process more transparent to all parties involved.
Not all developers currently have the skill set to create on the blockchain. But this is an issue of interest in protocol-level details, and time. Instead of expecting developers to learn every line of code and configuration used in blockchain applications, we need tools for common use cases in enterprise software so that developers aren’t reinventing the wheel every time. Again, this speaks to the complementary nature of blockchain technologies to DevOps. We want to create a suite of tools to make the DevOps experience even more effortless.
In the emerging age of blockchain, DevOps still contributes the best practices needed in getting software released. By adding blockchain applications and tools to the development cycle of DevOps teams, DevOps will reach new heights of productivity.