- +41 41 201 88 44
- [email protected]
- Mon-Fri 8am - 6pm
There is still something intriguing about the many technologies that make up the so-called “Web3,” even though they are not expected to replace the significant infrastructure and software investments we’ve made over the previous three decades. What issues can they resolve, is the first thing we must ask.
The core of Web3, according to its proponents, is a vast collection of consumer technologies that can take the place of the transactional basis of the web. We view it as a more constrained tool that can leverage blockchain technology to enable a certain group of corporate applications with an emphasis on electronic data exchange (EDI). That’s because the blockchain, when down to its most basic components, is an immutable data structure that can be transferred securely between untrusted parties.
Since one end of the supply chain only has an indirect link with the other, it becomes beneficial in supply chains where electronic documents have a contractual and legal foundation that is codified in international treaties.
It’s fascinating to consider Microsoft’s work on proof-of-membership consensus blockchains, which are managed by coalitions of unreliable organisations and provide a quick and low-impact alternative to proof-of-work and proof-of-stake systems. In addition, more recent versions of SQL Server also offer an immutable ledger for programmes that don’t require distribution among other organisations.
Donovan Brown of Microsoft was given the responsibility of examining how programmers ought to interact with these distributed application platforms. Brown, who is currently a member of Mark Russinovich’s CTO incubator team on Azure and is most recognised for his DevOps work, started integrating well-known Web3 platforms into a DevOps framework very fast. He has achieved some success.
These tools must be integrated into the process of writing code, working with both our development platforms and our build and test tools, if we are to make them suitable for usage in the enterprise. The technologies we employ must prevent the numerous Web3-related public disasters, especially when handling commerce and other crucial information and value flows. We don’t want a smart contract for a bill of lading that may be used to alter the goods being delivered to our warehouses or even reroute them to a different location.
What is the best way to integrate them into a DevOps pipeline? To begin with, we must stop considering Web3 technologies to be separate from the rest of the corporate application stack. Once we’ve done that, we can look for integration points, including employing test-first development methods and adding smart contracts to a test harness.
Using Azure Pipelines with Dev, QA, and Production outputs and Azure Static Web Apps to host the application front end, Brown has now been able to create an Ethereum-based distributed application environment. On Azure Containers, developer deployments operate in a personal Ethereum instance. Deploying a smart contract to many contexts is the largest challenge for a developer using this method.
It appears that addresses are hard-coded into smart contracts and are automatically added to the contract JSON when it is constructed. On each deployment, the entire contract must be rebuilt, necessitating several rebuilds for each environment. This is a DevOps antipattern, as Brown points out. Compiling should only be required once, with runtime environment-specific data added. Rewriting the front-end code of the programme was necessary to support an external source for the network address. When a contract address cannot be located, this method makes it simpler to utilise the service by utilising an Azure Function to supply the address when a query is made.
Because of this, Brown’s solution can handle building the front end just once and using it throughout the deployment workflow. Then, he could utilise his application using common JavaScript testing frameworks. A single Azure Pipeline might contain all the processes required to create and deploy each environment from a GitHub source, erasing environments as each step is approved. Here, tools like Azure Container Apps can be useful since they enable rapid deployment of build artefacts.
Steinentorstrasse 35 , 4051 Basel, Switzerland