We reached out to Stefano Tempesta to understand Microsoft’s recent advancements in the Blockchain space, what’s the value there for the customers, and how solution partners can get their fair share of this bull market.
1. Could you please introduce yourself to our readers. Also, discuss the time period of you being involved with Microsoft and MSFT Blockchain Service?
I’m a Microsoft Regional Director, one of the 160 worldwide trusted advisors to the developers and IT professionals. I’m also an MVP (Most Valuable Professional) for Azure Blockchain, AI, and Business Applications. As a Co-Founder and Executive Director of 365 Community, which is a non-profit organization, I help to empower communities around the world with better ICT processes for customer relationship management (CRM) and customer service, using modern technology.
I’m part of the Microsoft Azure Blockchain Advisor program, and I’m a strong advocate of enterprise blockchain. For the purpose, I frequently contribute as a public speaker and writer (technical articles for the Microsoft MSDN Magazine).
2. Give us a high-level overview of Microsoft’s Blockchain service and explain how you or your colleagues/Microsoft partners (essentially the consulting partners as well as ISVs) have used it in customer projects/pilots?
Microsoft’s offering for blockchain technology consists of a fully managed ledger service that enables users with the ability to grow and operate the blockchain networks at a scale in Azure. By providing a unified control for both infrastructure management as well as blockchain network governance, Azure Blockchain Service provides simple network deployment and operation. More so, it provides built-in consortium management and the possibility to develop smart contracts with familiar development tools.
I have used Azure Blockchain services for a few projects, including:
- Supply Chain on IoT and Blockchain
Monitors supply chain processes with information collected in the field for validating conditions of shipped goods, including storage temperature or humidity. Data is collected by different sensors at each stage of the supply chain and validated in an immutable registry, represented by a blockchain digital ledger.
- Digital Identity and Document Existence Proof
Establishes a digital identity for individuals and businesses, and issues certificates on a blockchain-enabled distributed digital ledger. Certificates and identities can be verified by a third-party agency without relying on a centralized authority.
- Token-based Loyalty Program
It provides partners and customers with loyalty points to earn and spend. Points are issued as utility tokens on the blockchain, can be spent on goods and services or exchanged to fiat currency.
Fig 1- Smart Contract deployment in logistics
Image Credit: Stefano Tempesta
3. You have often compared the designs of smart contracts with that of microservices. Can you explain that perspective in a nutshell? Also, explain its importance for developers when they are writing smart contracts.
Microservices and blockchain smart contracts have a lot in common. They’re both expected to run in isolation (on-chain) and communicate with the outside (off-chain) via a message-based channel. They should both be small in size, developed to run autonomously and independently, and perform better when they’re deployed on a decentralized network. Designing blockchain applications as microservices can bring the following benefits to your solution:
- Allowing many software engineering initiatives to run in parallel.
- Lessening dependencies between software development and test teams.
- Supporting multiple technologies, languages, and frameworks.
- Promoting ease of innovation through a disposable code.
Easily disposable code can reduce technical debt, promote modernization of engineering processes, and decrease operational costs by optimizing infrastructure. Designing blockchain applications with microservice architecture principles yields important business benefits.
Fig 2- Deploying Smart Contracts
Image Credit: Stefano Tempesta
Improved efficiency in the software system reduces infrastructure costs and the risk of capacity-related service outages. These aspects are of particular value to private blockchains, where cost-effectiveness and service continuity are key requirements for businesses.
4. Where does the value reside in adopting the Blockchain service (from the end-customers’ perspective)? Also, how can consultants communicate that value?
Blockchain is a decentralized digital ledger, at its core. It’s a distributed database that provides an immutable log, like an audit trail of transactions between parties. This technology brings two major benefits:
- Transaction logs are persisted in separate storage than the core application, This allows independently verifiable audit trail to be generated which is not stored in the same location of the monolithic line-of-business application, such as a CRM, ERP or payroll software.
- A centralized application represents a single point of failure. Whereas, a decentralized ledger replicates data to all its nodes, creating built-in redundancy in the network. This implies that if a node is compromised or no longer available, the quality of data in the network is not impacted. This is so, as the other nodes would reject the invalid node.
These two elements basically affirm that the state of a system is valid at any point in time, and it is possible to verify what happened before. This is the foundation for having a trustworthy system. Blockchain is a technology for creating trust between systems in an automatic way, with built-in security and verification. Consultants should focus on these business benefits rather than on technology details for communicating the value of blockchain to customers and the broader community.
5. Should partners/services providers stick to certain industries when pitching/developing new solutions using Azure Blockchain, or pitching functional areas (supply chain, trade-finance, etc.) within a vertical? Tell us about your experience and industry trends.
The use cases of blockchain technology are very broad and not industry-specific, but at the end they all go down to two business concerns: how to trust information shared by parties involved in a transaction (that is, who they are and what they do), and how to verify that transaction without relying on a single entity, which for its centralized nature can be compromised.
When pitching a blockchain solution, focus on the problem that you want to resolve. Ask yourself these questions:
- Are there multiple parties involved in exchanging information via a system?
- Do these parties have any conflict or competing for interests (for example, in a supply chain, the wholesale retailer wants to ship as many products as possible. Whereas, the courier would prioritize speed of delivery over quantity).
- Do you need to automate transactions among parties, i.e. there is no human intervention required to approve/reject a transaction?
- Do you want to verify transactions at any point in time, and make sure that all parties agree on specific conditions that validate a transaction to minimize any need for dispute?
If you answered yes to all of these questions, you have a potentially good case for blockchain technology.
6. Tell us about Microsoft’s partnership with Corda and how Microsoft is using it to provide services to its enterprise clients? Any example you may cite to validate that the partnership provides immense value from the customer’s perspective.
In 2016, Microsoft and R3 worked together to bring Corda Enterprise to Azure as a virtual machine image in the Azure Marketplace. In 2017, the relationship matured to a partnership, and in the subsequent years, Microsoft has worked closely with customers, consortiums, and independent software vendors to help them bring Corda-based solutions to Azure. Working together with their customers and partners, Microsoft has seen the launch of multiple Corda consortiums on Azure, from Insurwave’s launch in 2018 to the recent September 2019 announcement of TradeIX’s launch of the Marco Polo Network on Azure.
As customers were building the end to end solutions, one of the big requests was to make integrating Corda with enterprise data, systems, and software as a service (SaaS) easier. Earlier this year, Microsoft released the Corda Logic App and Flow Connectors that brought Microsoft enterprise integration experience to Corda. With Flow and PowerApps, it also became possible for citizen developers to build low-code or no-code web and mobile apps for Corda.
However, the biggest request that the customers had was for Corda to be released as a managed service in Azure. Specifically, a platform as a service (PaaS) offering that would set up Corda nodes to connect with the appropriate Corda network, manage node health, and update both the nodes and the underlying software. This service is available exclusively on the Azure cloud.
7. Does the usage of distributed ledger pans out well with traditional databases, or do solutions in Blockchain have to be designed from ground-up with least/no usage of existing databases that clients have in use?
There is a great synergy between a distributed digital ledger and a traditional database. In Azure Blockchain, data and metadata about applications, workflows, and smart contracts are stored in a relational database. Developers and IT pros can use this information with tools, such as Microsoft Excel or Power BI to generate reports about transactions and execute smart contracts. More specifically, the SQL database attached to Azure Blockchain Workbench stores contract definitions, configuration metadata, and a SQL-accessible replica of data stored in the blockchain.
This data can easily be queried, visualized or analyzed by directly accessing the database.
This off-chain storage provides the ability for enterprise organizations to query data in SQL rather than in a blockchain ledger. Also, by standardizing on a standard schema that’s agnostic of blockchain technology stacks, the off-chain storage enables the reuse of reports and other artifacts across projects, scenarios, and organizations.
Not only traditional databases work together with blockchain ledgers, but the file storage also finds a natural place in a blockchain-powered solution. Azure Storage is used to store contracts and metadata associated with contracts. For example, from contracts to certificates, images used in the news and medical imagery, video originated from a continuum including police body cameras and major motion pictures. Digital assets play a role in many blockchain-centric scenarios.
Documents are not to be placed directly on the blockchain. Azure Blockchain Workbench supports the ability to add documents or other media content with blockchain business logic. A hash of the document or media content is stored in the blockchain and the actual document or media content is stored in the Azure Storage. The associated transaction information is delivered to the inbound message broker, is packaged up, signed, and routed to the blockchain. This process triggers events that are shared via the outbound message broker. The SQL database consumes this information and sends it to the DB for later querying. More so, downstream systems could also consume these events to act appropriately.
8. As an industry expert, what do you recommend to the IT managers/CIOs for harvesting benefit from Microsoft’s Azure Blockchain service?
Assuming that their business actually needs a blockchain-powered solution, I’d first invite the IT managers to ask themselves the questions that I have identified in a previous point, there are a few tangible benefits of building and deploying a blockchain solution on azure:
- Companies can create and configure a consortium blockchain infrastructure quickly and offload network management while maintaining the ability to update over time. They can focus on the business logic of their smart contracts, and leave the management of the necessary infrastructure to the “cloud experts” at Microsoft. This shortens implementation time and improves the scalability of the designed solution.
- Members of a blockchain consortium get full node management and government at scale. Modular controls provide easy member onboarding, codeless permissions, and simplified policy enforcement.
9. From a practice development perspective in Blockchain services, what are your 2-3 key recommendations for Microsoft consulting partners and ISVs that they should do?
There are probably more than just 2 or 3 key recommendations I can give 😊:
- Define your blockchain network topology, whether private, consortium or purely public. Start by identifying your participants, what are their roles, and what is the onboarding process. Consider using Azure Active Directory (AAD) for managing their identities. Moreover, members of a blockchain network are not limited to people only. Businesses and “things”, like IoT devices, can also have their own identity and membership in a blockchain consortium.
- Keep your data secure and available. Data is secured using isolation, encryption, and authentication. For example, Azure Blockchain Service resources are isolated in a private virtual network. Transaction and validation nodes are virtual machines within a virtual network, and isolation within the virtual network ensures that communication remains private. So, basically, please refer to the best architectural practices for data security.
- Automate your blockchain processes. With the introduction of blockchain technology in enterprise software development, organizations are asking for guidance on how to deliver DevOps for blockchain projects. Blockchain applications are often designed to handle financial transactions, track mission-critical business processes, and maintain the confidentiality of their consortium members and the customers they serve. In extreme cases, software faults in these areas might represent a significant risk to an organization. As a result, blockchain applications usually demand more rigorous risk management and testing strategies than traditional software applications.
Ok, there is a fourth one too:
- Know your limits, or better the technology’s limits. Azure Blockchain has both service and functional limits, such as the number of nodes a member can have, consortium restrictions, and storage amounts. Know these current limitations, so you don’t get upset!
10. What exciting project or endeavor you are currently involved in and what really makes it exciting/challenging?
Oh, you want to know what secret project I’m currently working on? 😊
Two blockchain projects are taking my time currently :
A social investment platform built for the next generation of investors. We took investing, social media, and transparent investment advice to create one central investment platform for investors from all experience levels, with trust and transparency of transactions as its core.
A decentralized social network for responsible travelers who share their experiences with blog posts, notes, and photos, while retaining ownership of their data. The best thing is that they travel and make an impact too, thanks to our verified socially and environmentally responsible suppliers who promote the use of local guides.
Thanks for the questions and the opportunity to share my experience with the Azure Blockchain service.