Microsoft aims to bring DevOps discipline to Web3

While Web3 has been overtaken in the tech newsfeed by the rise of decentralized social media, the long-term effort to strengthen dApp infrastructure continues. Somewhat surprisingly, Microsoft has now joined the Web3 revolution, albeit in a low-key way. Donovan Brown, a partner program manager on Microsoft’s Azure incubation team, told The New Stack that he hopes to bring the DevOps discipline to Web3 to help the fledgling industry scale.

Using Azure Pipelines for his DevOps pipeline and using GitHub to store his source code, Brown has been conducting a series of Web3 experiments and documenting the results on Medium. During the Zoom call, we discussed his progress so far — and why Microsoft is interested in blockchain technology.

So in the first place, why is Microsoft interested in blockchain applications—aka Web3—as the crypto industry has received criticism from many in the developer community?

Brown replied that the Azure incubation team is part of Microsoft “that looks at the future and the developers [will] Needs – What challenges will they have to address in the future? “

Since Web3 has become a trend in Internet technology, the team decided to take a closer look at it, “to figure out what this is,” he said.

A lot of development, but not much operation

Brown, who describes himself as having a “very strong DevOps background,” discovered a lack of Ops rigor when researching Web3.

“When I surveyed the community and poked around, what I noticed was, you tell me how to write smart contracts, but we all deploy them directly from our machines to mainnet — like, where is the pipeline? Dev, QA and Where was Prod? Where was the protection I expected when deploying software? I realized it wasn’t there.”

What’s more, he found that this is a bigger problem in Web3 than in Web 2.0 applications, because blockchains are much less tolerant of errors.

“It’s permanent — failures are always with you because there’s no way to remove failures from the blockchain. So it’s like, how come they don’t implement DevOps best practices?”

He reached out to the Web3 community via Twitter and said he received a positive response – they welcomed his input and asked how he would implement DevOps in Web3. So Brown started using Truffle, a “smart contract development tool suite” owned by ConsenSys, and wrote a test React application.

His goal, he told me, is to have the application “play nicely in a CI/CD pipeline and use all the tools we have at Microsoft.”

Brown noted that Microsoft is “in the process of entering into a partnership with ConsenSys, a well-known ethereum software company.” (Microsoft became an investor in ConsenSys in March.)

Azure to the rescue

Besides React, what technologies did Brown use in his dApp experiments?

“We used Azure Static Web App,” he replied, “which is almost purpose-built for hosting dApps, since a dApp is just a SPA [single-page application] The front end, uses JavaScript to talk to smart contracts on the chain. Well, static web applications are designed to host that. Like wow, this is a perfect fit. “

However, implementing the DevOps part is more difficult. Brown found that when deploying an SPA to a blockchain, “the API will [smart] Contract deployment at the bottom of the JSON. ” This is unacceptable because it means he has to “repackage my entire front end” to move from testnet to mainnet.

“Well, in DevOps,” he said, “that’s a bad thing.”

“You never build over and over again,” he continued, “you build once and then deploy the same binary over and over again. So I had to dig into, how are these templates written? Luckily, because Azure Static Web Apps gives you Azure Functions for free and I was able to write an API that then queried and looked up the address for me and then injected the address into my SPA. So now, I can package my SPA in one go and then use Azure DevOps or GitHub Actions deploying it over and over again.”

As for deployment, he explained in the first post of his Medium series that “the development environment will use Ganache running in containers to deploy the application to the personal Ethereum blockchain” and then “QA will deploy to the Rinkeby test network, and finally Prod will be deployed to the Ethereum mainnet.”

He added during our conversation that the containers he uses are via Azure Container Instances — “another feature of Azure that we already have.”

According to Brown, using the process described above provides Web3 developers with the validation needed to safely deploy to mainnet.

“We’re running unit tests, we’re able to do your acceptance tests, we’re able to have this normal DevOps experience even though we’re actually using blockchain as a technology.”

Will Azure replace another ConsenSys product?

One thing Brown mentioned caught my eye. ConsenSys, Microsoft’s partner in Web3, is “moving a lot of their Infura networks to Azure,” he said.

Like Truffle, Infura is owned by ConsenSys. Back in April, I interviewed the co-founders of Infura, EG Gallano, about how it complements Truffle. The latter is how developers create applications, so it’s basically an IDE. But I found Infura more difficult to understand.

Galano explained that Infura is “like a continuously running service that is used initially by the development team to deploy their application and then for users to interact with the application.” He likens it to a web hosting service, only it doesn’t host Files – Instead, it uses an API to point to the actual data source, in a decentralized storage solution like blockchain or IPFS. Even now, typing it again, I’m still confused about what Infura is.

Brown seems to be implying that a solution like Infura is not robust enough for normal DevOps procedures. To me, this suggests that some of the Web3 infrastructure is likely to be usurped in due course by traditional software companies (in this case, Microsoft). We’ll have to wait and see how ConsenSys handles this and what happens to Infura.

Microsoft will also work with ConsenSys on “developer experience,” Brown added.The two companies, he said, are “looking at how we can take advantage of the ecosystem that Microsoft already provides to all developers, in some way [ConsenSys] Can help Web3 developers. “

Microsoft’s Web3 Exploration

As a final note, Microsoft is also working with other Web3 partners, primarily through its venture fund M12. One example is a decentralized data platform called Space and Time, which plans to integrate with Microsoft Azure.

While this is all in an experimental stage, I firmly believe that the Web3 industry will benefit from the technical prowess of Microsoft and its highly scalable Azure stack.

group
Created using Sketch.

Leave a Reply

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