{"id":6417,"date":"2022-12-20T11:26:21","date_gmt":"2022-12-20T03:26:21","guid":{"rendered":"https:\/\/i007.vip:15443\/wordpress\/?p=6417"},"modified":"2022-12-20T11:26:21","modified_gmt":"2022-12-20T03:26:21","slug":"microsoft-aims-to-bring-devops-discipline-to-web3","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/6417","title":{"rendered":"Microsoft Aims to Bring DevOps Discipline to Web3"},"content":{"rendered":"<div class=\"content-column content-column-post-body\">\n<div id=\"tns-post-headline\">\n<div id=\"tns-post-headline-title\">\n<p class=\"title\"><a href=\"https:\/\/thenewstack.io\/microsoft-aims-to-bring-devops-discipline-to-web3\/\">\u539f\u6587\u5730\u5740<\/a><\/p>\n<p>\u00a0<\/p>\n<div class=\"post-excerpt\">When Microsoft&#8217;s Donovan Brown explored Web3, he found a lot of Dev, but not much Ops. Microsoft has partnered with ConsenSys to remedy that.<\/div>\n<\/div>\n<div id=\"tns-post-headline-byline\"><span class=\"date\">Nov 17th, 2022 7:46am by\u00a0<\/span><span class=\"author\"><a class=\"author url fn\" title=\"Posts by Richard MacManus\" href=\"https:\/\/thenewstack.io\/author\/richard\/\" rel=\"author\">Richard MacManus<\/a><\/span><\/div>\n<\/div>\n<div id=\"tns-post-key-media\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.thenewstack.io\/media\/2022\/11\/4607efe0-devops_pipe.jpg\" alt=\"Featued image for: Microsoft Aims to Bring DevOps Discipline to Web3\" width=\"620\" height=\"414\" \/><\/p>\n<div class=\"image-disclosure\">Image via Shutterstock<\/div>\n<\/div>\n<div id=\"tns-post-body\">\n<div class=\"row\">\n<div class=\"copy-column\">\n<div id=\"tns-post-body-content\">\n<p>While\u00a0<a class=\"local-link\" href=\"https:\/\/thenewstack.io\/its-a-web3-world-now-how-the-hype-compares-to-web-2-0\/\">Web3<\/a>\u00a0has been overtaken in the tech news flow by the rise of\u00a0<a class=\"local-link\" href=\"https:\/\/thenewstack.io\/devs-are-excited-by-activitypub-open-protocol-for-mastodon\/\">decentralized social media<\/a>, the long-running effort to strengthen\u00a0<a class=\"local-link\" href=\"https:\/\/thenewstack.io\/web3-stack-what-web-2-0-developers-need-to-know\/\">dApp infrastructure<\/a>\u00a0continues. Somewhat surprisingly, Microsoft has now joined the Web3 revolution, albeit in a low-profile way.\u00a0<a class=\"ext-link\" href=\"https:\/\/www.linkedin.com\/in\/darquewarrior\/\" rel=\"external \">Donovan Brown<\/a>, a partner program manager on the Azure incubation team at Microsoft, told The New Stack that he wants to bring DevOps discipline to Web3, in order to help the fledgling industry scale.<\/p>\n<p>By using Azure Pipelines for his DevOps pipeline and GitHub to store his source code, Brown has been conducting a series of Web3 experiments and documenting the results\u00a0<a class=\"ext-link\" href=\"https:\/\/betterprogramming.pub\/building-a-devops-pipeline-for-the-ethereum-blockchain-3d30cba87ffb\" rel=\"external \">on Medium<\/a>. In a Zoom call, we discussed the progress he\u2019s made so far \u2014 and why Microsoft is interested in blockchain technology.<\/p>\n<p>So first off, why is Microsoft interested in blockchain applications \u2014 aka Web3 \u2014 given the\u00a0<a class=\"local-link\" href=\"https:\/\/thenewstack.io\/web3-isnt-fully-decentralized-a-look-at-alchemy-bitclout\/\">criticism<\/a>\u00a0that the crypto industry has received from many in the developer community?<\/p>\n<p>The Azure Incubations Team, Brown replied, is a part of Microsoft \u201cthat\u2019s looking to the future and what developers [will] need \u2014 what challenges are they going to have to solve in the future?\u201d<\/p>\n<p>Since Web3 has become a trend in internet technology, he said, the team decided to look more closely at it \u201cand figure out what this thing is.\u201d<\/p>\n<h2>Lots of Dev, But Not Much Ops<\/h2>\n<p>Brown described himself as having \u201ca really deep DevOps background\u201d and what he discovered when he looked into Web3 was a lack of Ops rigor.<\/p>\n<p>\u201cWhat I noticed when I was looking into the community and poking around was, you\u2019re telling me how to write smart contracts, but we\u2019re all deploying them right off of our machines onto mainnet \u2014 like, where\u2019s the pipeline? Where\u2019s the Dev, QA and Prod? Where\u2019s that protection that I\u2019ve come to expect when I\u2019m deploying software? I realized that it wasn\u2019t out there.\u201d<\/p>\n<p>What\u2019s more, he saw that this was an even bigger problem in Web3 than for a Web 2.0 application, because blockchains are far less forgiving of errors.<\/p>\n<p>\u201cIt\u2019s permanent \u2014 that failure will follow you around forever, because there\u2019s no way of getting that failure off the blockchain. So it\u2019s like, how are they not implementing DevOps best practices?\u201d<\/p>\n<p>He reached out to the Web3 community via Twitter and said he received a positive response \u2014 they welcomed his input and asked how he would implement DevOps into Web3. So Brown started using\u00a0<a class=\"ext-link\" href=\"https:\/\/trufflesuite.com\/\" rel=\"external \">Truffle<\/a>, which is a \u201csuite of tools for smart contract development\u201d owned by ConsenSys, and wrote a test React application.<\/p>\n<p>His goal, he told me, was to get the app to \u201cplay nicely in a CI\/CD pipeline, and use all the tools that we have at Microsoft at our disposal.\u201d<\/p>\n<p>Microsoft, Brown noted, has \u201ca partnership that we\u2019re building with ConsenSys,\u201d a well-known Ethereum software company. (Microsoft became an investor in ConsenSys\u00a0<a class=\"ext-link\" href=\"https:\/\/www.cnbc.com\/2022\/03\/15\/consensys-doubles-valuation-to-7-billion-with-microsoft-backing.html\" rel=\"external \">in March<\/a>.)<\/p>\n<h2>Azure to the Rescue<\/h2>\n<p>What technologies did Brown use for the dApp experiments, other than React?<\/p>\n<p>\u201cWe used\u00a0<a class=\"ext-link\" href=\"https:\/\/azure.microsoft.com\/en-us\/products\/app-service\/static\/\" rel=\"external \">Azure Static Web Apps<\/a>,\u201d he replied, \u201cwhich is almost purposely built for hosting a dApp, because a dApp is just a SPA [single-page application] frontend, using JavaScript to talk to your smart contracts on-chain. Well, Static Web Apps is literally designed to host that. It\u2019s like wow, this is a perfect fit.\u201d<\/p>\n<p>However, implementing the DevOps part was more difficult. Brown found that when deploying the SPA to a blockchain, \u201cthe API scribbles in the address of each of the [smart] contract deployments in the bottom of the JSON.\u201d This was unacceptable, because it meant he had to \u201crepackage my entire front end\u201d in order to move from a testnet to the mainnet.<\/p>\n<p>\u201cWell, in DevOps,\u201d he said, \u201cthat\u2019s a bad thing.\u201d<\/p>\n<p>\u201cYou never build over and over again,\u201d he continued, \u201cYou build once and you deploy the same binaries over and over again. So I had to go in and figure out, how are these templates being written? And luckily, because Azure Static Web Apps gives you Azure functions for free, I was able to write an API that would then query and find the addresses for me, and then inject the addresses into my SPA. So now, I\u2019m able to package my SPA one time and deploy it over and over again using Azure DevOps or GitHub Actions.\u201d<\/p>\n<p>As for deployment, he explained in the first post of his Medium series that the \u201cDev environment will deploy the application to a personal Ethereum blockchain using\u00a0<a class=\"ext-link\" href=\"https:\/\/next-stack.github.io\/ganache\/\" rel=\"external \">Ganache<\/a>\u00a0running in a container\u201d and then \u201cQA will deploy to the\u00a0<a class=\"ext-link\" href=\"https:\/\/www.rinkeby.io\/#stats\" rel=\"external \">Rinkeby testnet<\/a>\u00a0and finally Prod will deploy to Ethereum mainnet.\u201d<\/p>\n<p>He added during our conversation that the container he used was via Azure Container Instances \u2014 \u201canother feature from Azure that just we already had.\u201d<\/p>\n<p>According to Brown, using the above process gives Web3 developers the validation needed for a safe deployment to mainnet.<\/p>\n<p>\u201cWe\u2019re running the unit test, we\u2019re able to get your acceptance testing done, we\u2019re able to have this normal DevOps experience even though we\u2019re actually using blockchain as the technology.\u201d<\/p>\n<h2>Is Azure Replacing Another ConsenSys Product?<\/h2>\n<p>One thing Brown mentioned pricked up my ears. He said that Microsoft\u2019s partner in Web3, ConsenSys, is \u201cmoving a lot of their Infura networks over to Azure.\u201d<\/p>\n<p>Like Truffle, Infura is owned by ConsenSys. Back in April,\u00a0<a class=\"local-link\" href=\"https:\/\/thenewstack.io\/web3-tools-and-tipping-points-a-chat-with-infura-co-founder\/\">I interviewed Infura\u2019s co-founder<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/twitter.com\/egalano\" rel=\"external \">E.G. Galano<\/a>, about how it complemented Truffle. The latter is how a developer creates an app, so it is basically an IDE. But I found Infura more difficult to grok.<\/p>\n<p>Galano had explained that Infura is \u201clike the continuous running service that\u2019s used, initially by the development team, to deploy their application, and then for users to interact with the application.\u201d He\u2019d likened it to a web hosting service, only it didn\u2019t host files \u2014 instead it used APIs to point to the actual data sources, on a blockchain or in a decentralized storage solution like IPFS. Even now, typing that out again, I am confused about what Infura is.<\/p>\n<p>I inferred from Brown\u2019s comment that a solution like Infura might not be robust enough in terms of normal DevOps procedures. If so, that\u2019s an indication that some Web3 infrastructure could well be usurped, in time, by traditional software companies (Microsoft, in this case). We\u2019ll have to wait and see how ConsenSys handles this going forward, and what becomes of Infura.\u00a0<em><strong>Update:<\/strong>\u00a0Microsoft emailed after publication to request this clarification: \u201cDonovan wasn\u2019t implying Infura wasn\u2019t robust enough for normal DevOps procedures and views Infura as a required step for dApp development.\u201d<\/em><\/p>\n<p>Brown added that Microsoft will also partner with ConsenSys \u201con the developer experience.\u201d He said the two companies are \u201cfiguring out how to leverage the ecosystem that Microsoft already provides for all developers, in a way [ConsenSys] can leverage for Web3 developers.\u201d<\/p>\n<h2>Microsoft\u2019s Web3 Explorations<\/h2>\n<p>A final note that Microsoft is also working with other Web3 partners, mainly through its venture fund M12. One example is a decentralized data platform called\u00a0<a class=\"ext-link\" href=\"https:\/\/www.spaceandtime.io\/\" rel=\"external \">Space and Time<\/a>, which plans to\u00a0<a class=\"ext-link\" href=\"https:\/\/techcrunch.com\/2022\/09\/27\/microsofts-m12-led-20m-investment-in-web3-platform-space-and-time\/\" rel=\"external \">integrate<\/a>\u00a0with Microsoft Azure.<\/p>\n<p>While this is all at an experimental stage, I have no doubt that the Web3 industry will benefit from the technology heft of Microsoft and its highly-scaled Azure stack.<\/p>\n<div class=\"tns-logo-slug\"><\/div>\n<div class=\"tns-post-body-content-author\">\n<div class=\"row\">\n<div class=\"author-profile-photo-column\"><img decoding=\"async\" class=\"post-author-avatar\" src=\"https:\/\/cdn.thenewstack.io\/media\/2020\/03\/1c7152c0-ricmac_highres_w400_h400.jpg\" \/><\/div>\n<div class=\"post-author-bio-column\">\n<div class=\"post-author-bio-wrap\">\n<div class=\"post-author-bio\">Richard MacManus is a Senior Editor at The New Stack and writes about web and application development trends. Previously he founded ReadWriteWeb in 2003 and built it into one of the world\u2019s most influential technology news sites. From the early&#8230;<\/div>\n<\/div>\n<div class=\"author-more-cta\">Read more from Richard MacManus<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sidebar-column\">\n<div id=\"tns-post-body-sidebar\">\n<div class=\"tns-sponsored-post-disclosure\"><\/div>\n<div id=\"tns-post-body-sidebar-share\">\n<div class=\"tns-share\">\n<div class=\"section-heading\">SHARE THIS STORY<\/div>\n<div class=\"share-media\"><\/div>\n<\/div>\n<\/div>\n<div id=\"tns-post-body-sidebar-related-stories\">\n<div class=\"section-heading\">RELATED STORIES<\/div>\n<div class=\"related-stories-list\">\n<div class=\"tns-related-stories\"><a class=\"related-story-link\" href=\"https:\/\/thenewstack.io\/six-signs-youve-got-an-api-sprawl-problem\/\" aria-label=\"Six Signs You\u2019ve Got an API Sprawl Problem\">Six Signs You\u2019ve Got an API Sprawl Problem<\/a><a class=\"related-story-link\" href=\"https:\/\/thenewstack.io\/the-process-equation-cadence-is-everything-part-2\/\" aria-label=\"The Process Equation (Cadence Is Everything, Part 2)\">The Process Equation (Cadence Is Everything, Part 2)<\/a><a class=\"related-story-link\" href=\"https:\/\/thenewstack.io\/yes-webassembly-can-replace-kubernetes\/\" aria-label=\"WebAssembly vs. Kubernetes\">WebAssembly vs. Kubernetes<\/a><a class=\"related-story-link\" href=\"https:\/\/thenewstack.io\/how-donating-open-source-code-can-advance-your-career\/\" aria-label=\"How Donating Open Source Code Can Advance Your Career\">How Donating Open Source Code Can Advance Your Career<\/a><a class=\"related-story-link\" href=\"https:\/\/thenewstack.io\/building-a-to-do-app-using-github-actions-playwright-next-js\/\" aria-label=\"Building a To-Do App using GitHub Actions, Playwright, Next.js\">Building a To-Do App using GitHub Actions, Playwright, Next.js<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"content-column\">\n<div class=\"tns-insight-portcos-disclosure\">\n<div class=\"content\">\n<div class=\"tns-sponsor-mention-disclosure\">\n<div class=\"sponsor-disclosure\"><\/div>\n<\/div>\n<div class=\"disclosure\">TNS owner Insight Partners is an investor in: The New Stack.<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 \u00a0 When Microsof<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[24],"tags":[121],"class_list":["post-6417","post","type-post","status-publish","format-standard","hentry","category-value_docs","tag-05-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/6417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=6417"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/6417\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=6417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=6417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=6417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}