Continuous delivery practices around blockchain development

By | Tuesday, April 6, 2021

Navigation

  • DevOps on Blockchain – Implementing transparent continuous delivery
  • Platforms Rendered
  • DevOps, Agile, and continuous delivery: What IT leaders need to know
  • Customer profile
  • DevOps on Blockchain – Implementing transparent continuous delivery

    The application of continuous delivery and DevOps to data analytics has been termed DataOps. Retrieved 23 August DPReview Digital Photography. Namespaces Article Talk. June The goals of DevOps span the entire delivery pipeline.

    Continuous delivery practices around blockchain development

    Like for example, instead of using tools within the pipeline to identify issues, like for e. 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. Similarly, software functionality can be granted using smart contracts. Currently, DevOps use service level agreements, i. 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. Instead, DevOps. 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. Bitcoin and Blockchain Technology: How do they Work? How Indian Banks are using Blockchain to expedite trade loan approvals. We are a Blockchain Development Company, who is more concerned about this technology as it is capable of integrating multiple functions at the same time.

    Our highly skilled team of Blockchain developers and consultants helps us build best Blockchain applications. We use most up-to-date collection of technologies and platforms to offer best promising results. With an extensive experience in serving IT sectors we are now having the ability to help financial arena with blockchain development and from this we target to fill the void between capability of the technology and the requirements of our corporate clients. Platforms Rendered Build more value into your business and solutions by embedding the Blockchain Platforms.

    We believe in automation to accomplish tasks that should not be done manually, with almost constant, two-way information flow about the delivery process. For us, there is no other way to develop and deliver software. Time is money, and every minute that your employees are doing things that computers can do with higher quality, faster, is money that you are wasting.

    Our Emblem Vault platform provides plug-and-play integration and our team has second-to-none expertise. Our team has deep experience with modern app architecture and blockchain platform architecture and development. Drive quality into your process from the very beginning. Quality is not just about testing, and we can show you how to have a whole team approach.

    Delivering high quality software involves creating an efficient and intelligent delivery pipeline, combining tight feedback loops from solid code architecture, strong test strategies, and effective continuous integration and delivery systems.

    We empower you to deliver applications that are stable, robust, maintainable, and scalable. We know that every software company has a complex tech stack, often involving systems like GitHub for source code, Selenium for functional test automation, junit for unit tests, Jenkins for continuous integration, Jira for project management, and slack for communication.

    See some of our thoughts here: Developer Driven DevOps. We have been in blockchain since before blockchain was cool. Over many years, we have seen blockchain mature and have ingrained the lessons learned along the way. This gives us the rare power to prevent your team from repeating mistakes already learned elsewhere in the industry. Our Emblem platform enables your team to integrate blockchain features without needing deep blockchain knowledge, with a simple set of APIs.

    By creating tools for creators, Emblem makes it easy to use digital assets, blockchain, and cryptocurrencies. Emblem Platform. Emblem provides consumer and enterprise solutions to problems inherent to blockchain inter-operation, privacy, and scaling in an elegant and simple way.

    Emblem is a "bring your own" platform, allowing any cryptocurrency or blockchain to work seamlessly with other blockchain and non blockchain infrastructure.

    By allowing for swapping of digital assets which can be of completely different types and reside on separate blockchains in a nearly trustless way, and a drag and drop interface for connecting disconnected systems, the Emblem platform provides applications in the sharing and trust economies across industries.

    With CircuitBuilder, you can create "circuits", workflows that connect different endpoints allowing for unlimited creations. An Emblem Vault is the digital analog of a hardware wallet - a container that can hold any combination of different types of crypto assets - even an entire portfolio of digital assets.

    The Emblem platform is designed to be easy to use, taking the complexity out of obtaining, managing, and using cryptocurrencies and digital assets. Our team combines experience with passion, creativity, and dedication. We believe in modern software development practices and collaborative and supportive environments.

    Platforms Rendered

    This creates several small releases. While this delivers great advantages in terms of helping developers deliver work quicker, the creation of so many releases creates major issues for the operational aspects of IT.

    Downstream quality assurance and operations management teams, for instance, have to do a lot of work to make this a success. Also, there are many that just understand DevOps in context of practices such as continuous development, continuous integration, testing automation, and infrastructure automation. Agile is about breaking down walls, not creating new ones.

    DevOps extends the scope of Agile beyond code check-ins and includes systems and operations. DevOps suggests that operational stakeholders also need to be a part of the cross-functional team that includes designers, developers, and testers. DevOps is about breaking down the walls separating software development and delivery operations, enabling a way for companies to deliver wholesome software-powered service, instead of just working codes.

    A misconception that mars the implementation of successful continuous delivery practices is that the model vouches for very frequent releases. Organizations even go to the extent of actually releasing multiple software code increments every day.

    Whereas traditional Agile talks about shorter development cycles to make sure that the software undergoes a seamless release, continuous development is about developing the software in a manner that makes is ready for release at very short notice. In continuous delivery, the team makes sure that its code is ready to be released to production even when the work is in progress. This is achieved via use of innovative coding practices using methods such as feature toggles.

    In contrast, traditional Agile is about reaching the end of development iteration and then preparing the code for the release. While both approaches make sure that the code base doesn't have incomplete stores at the end of an iteration, the approach is different.

    Over all these years, Agile has helped software development practices look beyond fast development. He has written content for blogs, websites, forums and magazines. His work is published on some popular websites like Android Authority, Tweakyourbiz and Tech. Your email address will not be published. Learn about the latest security threats, system optimization tricks, and the hottest new technologies in the industry.

    Over 1,, fellow IT Pros are already on-board, don't be left out! TechGenix reaches millions of IT Professionals every month, and has set the standard for providing free technical content through its growing family of websites, empowering them with the answers and tools that are needed to set up, configure, maintain and enhance their networks.

    Rahul Sharma November 10, Post Views: 2, Redback Technologies is an Australian company located in Brisbane, Queensland. It focuses on the development of advanced, low-cost solar solutions for residential and commercial users. They have been featured in the media as an innovative energy solutions company. Blockchain-based developments are complicated.

    To further exacerbate this, the current state of the tools and frameworks are in the very early stages of development. This means there is not much in the way of guidance or best practices available, and that requires us to come up with unique solutions to all traditional development practices. Redback was engaged with Microsoft around integrating blockchain technology into its products and services.

    Early on, it was discovered that having multiple developers working on the same smart contract code could result in the typical range of issues prone to modern software development:. It was quite a journey to get from a manual single-developer experience to a workflow and toolchain that scaled up to allow a DevOps flow for a team of developers.

    We looked at a number of tools and frameworks out in the community and tried to see which had enough mindshare to allow for easier support. We worked as a team to look through what the challenges were and how best to overcome the inefficiencies. Our value stream mapping VSM exercise looked at what the impact would be if Redback were to adopt this development style. It exposed that using the tools as-is would be very wasteful. There were a lot of manual steps throughout the process, with many chances for defects to arise from misconfigured tools, incorrect blockchain network connection settings, and manual copy and pasting.

    The toolchain was optimized for a single developer and did not scale well with a team of developers. It also did not have a way to automate processes such as having a continuous integration build to check all committed code. The VSM exercise identified potential improvements around automating builds and automating the testing. These would remove the time-intensive manual steps, as well as ensure that there is a repeatable process for building smart contracts.

    Automating this would also give direct benefits by giving an indication of the health of the current checked-in code. In order to improve the development experience for the team, we automated and improved the core check-in process. After evaluating a few different blockchain tool offerings, an open source framework— Truffle —was selected to assist with improving the workflow.

    Truffle allows a developer on their local machine to compile, run unit tests, and deploy the artifacts to a blockchain network.

    I then focused on finding a way to get Truffle running on a build agent that would allow Visual Studio Team Services to orchestrate a DevOps process around it. To support the Visual Studio Team Services build process, a Windows virtual machine was provisioned in Microsoft Azure and configured with the required build tools and a Visual Studio Team Services build agent.

    Because all the blockchain development tools require Node and npm to function, the first step was to install and configure the Windows versions of these tools.

    The work we did to find a repeatable way to install the prerequisites on a Windows desktop machine and Windows-based build server resulted in a set of tutorials that were put onto the official Truffle documentation site.

    See Published walkthroughs. Truffle uses the Mocha test framework to run the smart contract unit tests. Mocha can be configured to output the results in a variety of file formats, but none of the defaults worked well with Team Services. When Truffle executes the tests on the Visual Studio Team Services build agent, it needs a blockchain network to deploy the smart contracts to, so that the tests can be executed in the environment.

    Doing it on a real blockchain network would take an extraordinarily long time, because each operation would need to wait for the block to be mined before the next operation could take place.

    With each block taking 12 seconds, and each test requiring multiple operations, it could take tens of minutes to execute a test suite. TestRPC is an in-memory blockchain environment that allows for instant mining, perfect for development and test execution. In order to take advantage of it on the build server, we needed to find a way to start a fresh environment, allow test execution to happen, and then tear down the instance after test completion. A series of PowerShell scripts were created to automate this process, allowing Visual Studio Team Services to orchestrate the test run.

    These scripts are now available on the official Truffle documentation site for reuse by others. The final DevOps solution that was deployed involved using a mixture of Visual Studio Team Services combined with a number of open source blockchain tools and frameworks. A followup value stream mapping exercise found that the introduction of better tooling, combined with the automation by Visual Studio Team Services, drastically reduced the process time.

    The removal of manual steps helped to speed things up and eliminated the defects that arose from manually moving from one tool to another. Deploying to the blockchain is still a manual step; however, now that the tooling has been improved, it is easier to take the artifacts and run Truffle to run the same migration script to deploy to a UAT or production blockchain on Azure Blockchain as a Service.

    Redback is doing some great work with blockchain development to explore ways to improve its product offerings. The learnings from this engagement were turned into new training materials that were published in blog posts, added to official documentation pages, and reused internally by other teams at Microsoft. We introduced new DevOps practices around blockchain development by removing manual steps and using Visual Studio Team Services to implement the practices of continuous integration and automated testing.

    DevOps, Agile, and continuous delivery: What IT leaders need to know

    Continuous delivery practices around blockchain development

    The application of continuous delivery and DevOps to data analytics has been termed DataOps. DataOps seeks to integrate data engineering, data integration, data quality, data security, and data privacy with operations. In , Google developed site reliability engineering SRE , an approach for releasing new features continuously into large-scale high-availability systems while maintaining high-quality end-user experience.

    DevOps is often viewed as an approach to applying systems administration work to cloud technology. WinOps is the term used for DevOps practices for a Microsoft-centric view. Toyota production system, also known under the acronym TPS, was the inspiration for lean thinking with its focus on continuous improvement , kaizen , flow and small batches. The Andon cord principle to create fast feedback, swarm and solve problems stems from TPS.

    The traditional centralised security team model must adopt a federated model allowing each delivery team the ability to factor in the correct security controls into their DevOps practices. IT performance can be measured in terms of throughput and stability. The State of DevOps Reports found that investing in practices that increase these throughput and stability measures increase IT performance. The goals of DevOps span the entire delivery pipeline.

    They include: [ citation needed ]. Simple processes become increasingly programmable and dynamic, using a DevOps approach. DevOps integration targets product delivery , continuous testing , quality testing , feature development, and maintenance releases in order to improve reliability and security and provide faster development and deployment cycles. Practices that correlate with deployment frequency are: [14]. Practices that correlate with a lead time for change are: [14].

    Practices that correlate with a mean time to recovery for change are: [14]. Companies that practice DevOps [ failed verification ] have reported significant benefits, including: significantly shorter time to market , improved customer satisfaction, better product quality, more reliable releases, improved productivity and efficiency, and the increased ability to build the right product by fast experimentation.

    The State of DevOps Report found that "IT performance strongly correlates with well-known DevOps practices such as the use of version control and continuous delivery. DevOps initiatives can create cultural changes in companies [41] by transforming the way operations , developers , and testers collaborate during the development and delivery processes. While DevOps describes an approach to work rather than a distinct role like system administrator , job advertisements are increasingly using terms like " DevOps Engineer ".

    While DevOps reflects complex topics, the DevOps community uses analogies to communicate important concepts, [ relevant? Organizational culture is a strong predictor of IT and organizational performance. Cultural practices such as information flow, collaboration, shared responsibilities, learning from failures and new ideas are central to DevOps.

    Team-building and other employee engagement activities are often used to create an environment that fosters this communication and cultural change within an organization. The State of DevOps Report discovered that the top seven measures with the strongest correlation to organizational culture are: 1. Organizational investment in DevOps: [15] 2. Team leaders' experience and effectiveness. Continuous delivery. The ability of different disciplines development, operations, and infosec to achieve win-win outcomes.

    Organizational performance. Deployment pain. Lean management practices. Companies with very frequent releases may require knowledge on DevOps. To practice DevOps effectively, software applications have to meet a set of architecturally significant requirements ASRs , such as: deployability, modifiability, testability, and monitorability.

    Although in principle it is possible to practice DevOps with any architectural style, the microservices architectural style is becoming the standard for building continuously deployed systems. DevOps automation can be achieved by repackaging platforms, systems, and applications into reusable building blocks [59] through the use of technologies such as virtual machines and containerization. Implementation of DevOps automation in the IT-organization is heavily dependent on tools, [14] [62] [ unreliable source?

    Jabbari et al. They developed a benefits dependency network which connects potential benefits to an ordered chain of practices. Using this network organizations can choose a path that enables fulfillment of their goals. Some articles in the DevOps literature assume or recommend significant participation in DevOps initiatives from outside an organization's IT department, e.

    In a survey published in January by the SaaS cloud-computing company RightScale , DevOps adoption increased from 66 percent in to 74 percent in Adoption of DevOps is being driven by many factors — including: [ citation needed ]. From Wikipedia, the free encyclopedia. This is the latest accepted revision , reviewed on 9 February Set of software development practices.

    Some of this article's listed sources may not be reliable. Please help this article by looking for better, more reliable sources. Unreliable citations may be challenged or deleted.

    December Learn how and when to remove this template message. This section may lend undue weight to certain ideas, incidents, or controversies.

    Please help improve it by rewriting it in a balanced fashion that contextualizes different points of view. Some of this section's listed sources may not be reliable. Main article: DevOps toolchain. Main article: Agile software development. Main article: Continuous delivery. March Learn how and when to remove this template message. Main article: DataOps. Main article: Site reliability engineering. This section needs expansion.

    You can help by adding to it. June Main article: WinOps. Main article: Toyota Production System. As a consequence, many people use their own definitions or rely on others, which results in confusion about those terms. IGI Global. Retrieved 4 April O'Reilly Media. IEEE : 3. Proceedings of the Scientific Workshop. Association for Computing Machinery. Journal of Software: Evolution and Process. Broad Agreement on the Definition of DevOps". Retrieved 29 November Retrieved 6 May A DevOps culture breaks down siloed disciplines and unifies people, process, and technology to improve collaboration and coordination.

    As a result, code changes reach production—and new value reaches the customer—as soon as possible. Though development, IT operations, quality engineering, and security teams all work closely together under DevOps, the software delivery process remains just as complex.

    DevOps organizes software delivery into four phases: plan, develop, deliver, deploy, and operate. Without automation, development teams must manually build, test, and deploy software, which includes:. Continuous integration, continuous delivery, and continuous deployment are all practices that automate aspects of the develop and deliver phases.

    And each practice takes the automation one step further, starting with continuous integration. Under continuous integration, the develop phase—building and testing code—is fully automated.

    Each time you commit code, changes are validated and merged to the master branch, and the code is packaged in a build artifact. Continuous delivery automates the next phase: deliver. Under continuous delivery, anytime a new build artifact is available, the artifact is automatically placed in the desired environment and deployed.

    Code remains ready for production at any time. All teams must do is manually trigger the transition from develop to deploy—making the automated build artifact available for automatic deployment—which can be as simple as pressing a button. With continuous deployment, you automate the entire process from code commit to production.

    The trigger between the develop and deliver phases is automatic, so code changes are pushed live once they receive validation and pass all tests. Before you consider which of these practices to implement, determine if your organization has a DevOps culture that can support them. If you answered yes to all, you may want to consider practicing continuous deployment and automate software delivery completely—from code commit to production.

    Over time, you can work toward continuous deployment and full automation of your software delivery process. DevOps teams rely on toolchains—series of connected software development programs—to automate software delivery. Here are some examples. For an example of how to integrate automatic or manual triggers in DevOps tools, read about approvals and gates in Azure Pipelines. Discover continuous delivery and continuous development tools—as well tools to facilitate other DevOps practices in the cloud.

    Continuous delivery vs. Speed high-quality code to customers with these two automation practices. What are continuous delivery and continuous deployment? Software delivery in DevOps Without automation, development teams must manually build, test, and deploy software, which includes: Checking in, testing, and validating code. Merging code changes into the main branch.

    Customer profile

    With each block taking 12 seconds, around each continuous requiring practices operations, it could take tens of minutes to execute a test suite. We worked blockchain a team to look through what development challenges continuous and how best development overcome the practices. Since changes are small and frequent, failures are rare and create minimal instability. This delivery may lend undue weight to certain ideas, incidents, or controversies. We looked at blockchain number of around and frameworks delivery in the community and tried to see which had enough mindshare to allow for easier support. Forrester Research.

    Continuous Delivery of GCP Google App Engine

    Some of this section's listed sources may not be reliable. Main article: DevOps toolchain. Main article: Agile software development. Main article: Continuous delivery.

    March Learn how and when to remove this template message. Main article: DataOps. Main article: Site reliability engineering. This section needs expansion. You can help by adding to it. June Main article: WinOps. Main article: Toyota Production System.

    As a consequence, many people use their own definitions or rely on others, which results in confusion about those terms. IGI Global. Retrieved 4 April O'Reilly Media.

    IEEE : 3. Proceedings of the Scientific Workshop. Association for Computing Machinery. Journal of Software: Evolution and Process. Broad Agreement on the Definition of DevOps". Retrieved 29 November Retrieved 6 May Just Enough Documented Information. Retrieved 12 March DevOps Days. Retrieved 31 March Puppet Labs. Retrieved 27 April October More Agile Testing. Archived from the original on 27 May Retrieved 23 February Archived from the original on 29 January Retrieved 22 October Retrieved 6 December Retrieved 1 March Lecture Notes in Computer Science.

    Retrieved 11 September TestOps — DevOps for design and test — promises similar benefits. Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc. Forrester Research. Dobb's the World of Software Development. IEEE Software. Tamr Inc. Retrieved 23 August Site Reliability Engineering. DevOps — a False Distinction?

    Retrieved 21 October Redback is doing some great work with blockchain development to explore ways to improve its product offerings. The learnings from this engagement were turned into new training materials that were published in blog posts, added to official documentation pages, and reused internally by other teams at Microsoft.

    We introduced new DevOps practices around blockchain development by removing manual steps and using Visual Studio Team Services to implement the practices of continuous integration and automated testing. The introduction of DevOps via Team Services and having a visible dashboard showing the health of the build and unit tests are giving the team at Redback the confidence to develop their code quickly with a faster feedback loop, over the previous manual way of doing blockchain development.

    There was only limited time to implement the basics of a working Visual Studio Team Services system. In the future, there is additional functionality that could be integrated in:. Currently, the build artifacts need to be taken and then published to a blockchain via the truffle migrate command. Automating this via Team Services release management to push to an Azure Blockchain as a Service testnet or production network is the next logical step.

    The blockchain development tools are npm-based and will work on both platforms. Offering a build solution for teams that prefer Linux over Windows would be useful. Smart contract logic is non-mutable once published.

    However, through the use of address variables within a smart contract, it is possible to point internal functions at other contracts, which can then be swapped out to perform an upgrade. Integrating this with the future release management work above is a natural tie-in. Here are links to additional documentation walkthroughs and tools that were used throughout this project.

    To make it easy for others to reproduce our work, the Visual Studio Team Services steps were implemented as a small number of discreet PowerShell scripts. This helped keep each section small and easily debuggable. Technical Case Studies. Problem statement Blockchain-based developments are complicated.

    Early on, it was discovered that having multiple developers working on the same smart contract code could result in the typical range of issues prone to modern software development: Merge conflicts.

    Not all solution files being checked in. New commits breaking changes in previously working code. Solution, steps, and delivery It was quite a journey to get from a manual single-developer experience to a workflow and toolchain that scaled up to allow a DevOps flow for a team of developers.

    Improving blockchain development with DevOps In order to improve the development experience for the team, we automated and improved the core check-in process. The problems we encountered during the engagement were: Finding a blockchain toolchain that could be used on developer machines and on the Visual Studio Team Services build agent. Having a reliable way to get global npm packages to be executable from the Visual Studio Team Services build agent.

    Outputting the test results into a format that Visual Studio Team Services would accept. Using open source blockchain tools After evaluating a few different blockchain tool offerings, an open source framework— Truffle —was selected to assist with improving the workflow.

    Configuring a build agent To support the Visual Studio Team Services build process, a Windows virtual machine was provisioned in Microsoft Azure and configured with the required build tools and a Visual Studio Team Services build agent. Configuring Truffle to output JUnit format Truffle uses the Mocha test framework to run the smart contract unit tests. This is because it is an asynchronous system. The ideal end-user interface would have a request pipeline where the user can see the status of all its requests.

    Once a request is successful, then only the user will expect the impact. It is a good practice to keep the operation as small as possible and design the end interface accordingly. It may have an implication on business exceptions.

    Most enterprise platforms have multiple layers of applications, such as end-user client layer web, mobile, etc. It is wise to think of multi-tenancy across the layers from the start of the project and design the product accordingly, instead of introducing it at the later stage. So, defining the security process and practices are even more important and complex for blockchain-based solutions than that of the classic web application.

    Make sure these practices are followed by all the participant's node. Depending on the case, we either need to wait for the problem to be fixed and halt all the further events or just log the error and proceed. So, design contract methods accordingly. Each request should be traceable. Device out a mechanism to replicate this data across the nodes.

    Any inconsistency may result in the failure of transactions. We need to write a wrapper contract on the older contract and delegate a call to the old one. Managing event listeners for different versions are also complex; we may need to keep multiple versions in event listeners in the code base to support multiple versions of the contracts. We also need to make sure all the participants are on the same version of contracts. It would be better if we bound business features with this version.

    Leave a Reply

    Your email address will not be published. Required fields are marked *