Abstract

Ensuring a production-ready state of the application under development is the immanent feature of the continuous delivery approach. In a blockchain network, nodes communicate, storing data in a decentralized manner. Each node executes the same business application but operates in a distinct execution environment. The literature lacks research, focusing on continuous practices for blockchain and distributed ledger technology. In particular, such works with support for both software development disciplines of design and deployment. Artifacts from considered disciplines have been placed in the 1 + 5 architectural views model. The approach aims to ensure the continuous deployment of containerized blockchain distributed applications. The solution has been divided into two independent components: Delivery and deployment. They interact through Git distributed version control. Dedicated GitHub repositories should store the business application and deployment configurations for nodes. The delivery component has to ensure the deployment package in the actual version of the business application with the node-specific up-to-date version of deployment configuration files. The deployment component is responsible for providing running distributed applications in containers for all blockchain nodes. The approach uses Jenkins and Kubernetes frameworks. For the sake of verification, preliminary tests have been conducted for the Electricity Consumption and Supply Management blockchain-based system for prosumers of renewable energy.

Highlights

  • The primary principle of the Agile Manifesto underlines the importance of early and continuous delivery of software that meets the customer needs [1]

  • Abbreviations have been provided for the following notions: Continuous integration (CI), continuous delivery (CD), and continuous deployment (CDT)

  • Various architectural principles have been applied to the design of the continuous delivery component

Read more

Summary

Introduction

The primary principle of the Agile Manifesto underlines the importance of early and continuous delivery of software that meets the customer needs [1]. Have found the following important topics: Reducing build and test time, automation of tests, raising the scalability of deployment pipelines, and elevating the deployment process reliability They have enumerated essential elements in implementing continuous approaches. The standard provides requirements and guidance on the implementation of DevOps to define, control, and improve software life cycle processes It applies within an organization or a project for building and deploying software reliably. Jenkins offers better support for continuous integration These environments do not provide ready-made functions for blockchain. Results revealed that the source code of smart contracts is compromised as far as security is concerned They claim that the development support of blockchain applications in existing tools is still incomplete. The continuous deployment component, still under design, uses the Kubernetes platform for automating the deployment of blockchain distributed applications in containers.

The Design of the Delivery Component
UML Profile for DLT Deployment
The Model-to-Code Transformation
Delivery Pipelines
The Design of the Deployment Component
Validation
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call