Microsoft’s journey modernizing its own Dynamics 365 solutions offers several key insights in how to successfully and incrementally move a highly complex set of solutions from on-premises, bare-metal servers to the cloud. The Dynamics 365 team’s continual focus on re-imagining the customer experience has empowered enterprises in many new ways, delivering an increasingly profound impact on the business and making Dynamics 365 and the Power Platform some of the fastest growing software categories for Microsoft. Today, the Dynamics 365 team can launch new products, new features, and new user experiences at a faster pace; can better understand its customers; and can more quickly solve unmet customer needs. The DNA of the Business Applications and Platforms group at Microsoft has fundamentally changed, and it shows throughout all of the group’s efforts and offerings today.
“Dynamics 365 and the Power Platform are now innovating at the fastest pace in our history, and we were ready for the generative AI opportunity because of the investments we made back in 2017. Our biggest lesson learned is that we should have started the move to Azure earlier.”
Charles Lamanna, Corporate Vice President, Business Applications and Platforms, Microsoft
Modernizing applications that have served an enterprise for years is a complex undertaking. Coupling such efforts with a platform change only makes it more challenging—especially when moving from familiar, older platforms such as mainframes, UNIX, or on-premises Windows Server estates to a hyperscale cloud environment such as Microsoft Azure.
When faced with such projects, Gartner's original 5R’s framework—now grown to 7 principles—is a great tool for evaluating one’s options. In addition, all cloud providers (including Microsoft) offer guidance in their respective cloud adoption frameworks, which are designed to help companies successfully adopt a cloud-based (and ideally cloud-native) environment. Such cloud environments are often called “evergreen” IT infrastructures because they’re constantly evolving and always up-to-date, in terms of both user experience and the cloud services upon which those end-user experiences are based.
While such guidance can be invaluable and should be incorporated into a company’s cloud journey, to get the most from it, that guidance should also be folded into an incremental approach. Microsoft’s journey modernizing its own Dynamics 365 solutions offers several valuable lessons in this regard, providing key insights into how to successfully and incrementally move a highly complex set of solutions from on-premises, bare-metal servers to the cloud.
“The journey the Dynamics 365 team undertook shows that an intelligent approach to application landscape modernization can yield tremendous business results, leading to new opportunities. The journey continues; the lessons learned have been hard-won yet immensely rewarding for our customers and our internal teams.”
Uli Homann, Corporate Vice President, Cloud + AI, Microsoft
In 2016, Microsoft began moving Dynamics 365 from a self-hosted infrastructure to Azure.
A brief history
The story starts in the early 2000s, when Microsoft began acquiring several business software companies and launched its own CRM solution:
- In 2001, Microsoft acquired Great Plains Software, a provider of accounting software for small and mid-sized businesses. Its Great Plains product was rebranded as Microsoft Dynamics GP.
- In 2002, Microsoft acquired Navision, a Danish ERP software company. Navision’s NAV offering was rebranded as Microsoft Dynamics NAV and Navision’s Axtapa offering was rebranded as Dynamics AX.
- In 2003, Microsoft launched Microsoft CRM, an internally developed customer relationship management solution. In 2005, Microsoft CRM was rebranded as Microsoft Dynamics CRM.
In 2016, Microsoft launched Microsoft Dynamics 365, a new hosted offering that brought together these four business software applications under a single solution suite. Today, Dynamics 365 includes modules for sales, marketing, customer experience management, customer service, field service, finance, operations, supply chain management, human resources, and project management, as well as deep integrations with other Microsoft products like Office 365, Teams, and the Power Platform.
Recent enhancements to Dynamics 365 include powerful new machine learning and generative AI features. The most recent is Microsoft Dynamics 365 Copilot, which provides interactive, AI-powered assistance across business functions to help users in sales, service, marketing, operations, and supply chain roles spend less time on routine tasks. Powered by Large Language Models (LLMs) and generative AI, such game-changing new capabilities would not have been possible without Microsoft’s previous work to modernize Dynamics 365 on Azure.
Previous architecture and limitations
Up through 2016, before the move to Azure began, Dynamics 365 ran as a traditional, on-premises software solution. Customers installed it within their own IT infrastructure, then managed and supported it with their own IT staff or the help of a partner. Microsoft also offered Dynamics 365 under the software-as-a-service (SaaS) model, where it ran in Microsoft data centers and was supported by Microsoft personnel.
Under the hood, however, the on-premises and SaaS offerings were similar—the major difference being that the SaaS offering ran in Microsoft data centers at a much larger scale. It was powered by thousands of bare-metal servers running Windows Server 2012 R2, with a front-end based on Internet Information Services (IIS) and back-end based on Microsoft SQL Server 2012 R2 in an Always On configuration.
Compared to the modern-day cloud offering, whether running on-premises or accessed as a service, both legacy offerings provided similar drawbacks, including limited availability, scalability, and flexibility. Product release cycles were measured in months, major customizations by customers required professional developers and/or partner assistance, and upgrades to the physical infrastructure upon which Dynamics 365 ran—such as upgrades to newer hardware—required significant planning and downtime.
In addition, customers who chose the on-premises deployment model had to invest in expensive infrastructure up-front to run the solution, which made it more difficult for smaller businesses with limited IT budgets (and expertise) to adopt.
From a code base perspective, the programming model for the CRM applications within Dynamics 365 was based on JavaScript for client extensibility and on Microsoft .NET for backend extensibility, as required for customers, partners, and ISVs to implement customizations, extensions, and custom plug-ins. Customizations and extensions for the ERP applications were based on Axapta’s X++ programming language—essentially C++ with a set of extensions which, while it was a powerful programming model, wasn’t as easy to use as .NET.
Just because you can rewrite everything, it doesn't mean you should
The engineering work to modernize Dynamics 365 and its underlying platform began in 2016. The Dynamics 365 team went about it in a pragmatic way, carefully picking and choosing which topics to tackle. It started with an early realization that not all code will or should be modernized, as the cost of doing so would not add commensurate value.
“As an example, we knew that the General Ledger capability would most likely not be modernized for a very long time as changes are slow and the module is very stable,” explains Uli Homann, Corporate Vice President in the Cloud + AI Group at Microsoft. “If you were to transpose this situation to modernizing a mainframe application landscape, for applications or functionality that’s unlikely to change, it might mean that you would opt to rehost your existing COBOL, PL/I, or mainframe assembler code using capabilities from partners such as Raincode—and then eventually rewrite those applications piecemeal as COBOL or PL/I programming skills continue to get more scarce and expensive. In the meantime, though, rehosting existing code buys you time and frees-up cashflow to focus on more pressing or important modernization projects.”
Lift-and-shift isn’t always exciting, but it buys time and frees-up cash to modernize
The first step in the Dynamics 365 modernization journey was to lift-and-shift the existing solutions as-is to Microsoft Azure. While the engineering work wasn't that exhilarating, the as-is migration allowed the team to focus on operational simplicity and delivery of a SaaS capability in a timely manner, begin transitioning from siloed areas of ownership to an integrated DevOps culture, develop experience operating a cloud service at scale, and start migrating customers to the cloud.
“Rather than overwhelming the team with new requirements as well as a brand-new codebase, going with the existing capabilities allowed to focus on the changes in operating, business, and hosting model,” explains Homann. “Lift-and-shift enables you to remove obsolete environments such as your own datacenter or mainframes from your P&L, freeing up cash to focus on modernizing your application estate in the process.”
After the lift-and-shift, the solution architecture remained largely unchanged. The team did, however, choose one ‘new thing’ to try as part of its efforts based on perceived ROI: a move from SQL Server running on Windows Server (bare metal) to Azure SQL with Elastic Pools. Everything else stayed the same in this initial lift-and-shift, including IIS and SQL Server Reporting Services (for built-in reports) running on VMs.
“Azure SQL was a natural choice because so much stayed the same—for example, Tabular Data Stream (TDS), T-SQL, the relational data tier, and so on,” says Charles Lamanna, Corporate Vice President in the Business Applications and Platforms (BAP) group at Microsoft, which today encompasses all Dynamics 365 applications, Microsoft Dataverse, and the Microsoft Power Platform. “We didn’t try to immediately add support for nonrelational/NoSQL data and we didn’t try to change the core SQL schema at that initial point.”
The initial lift-and-shift to an IaaS environment on Azure went live in 2017, with Azure SQL as the only PaaS service employed. Immediate benefits included an automated, programmable fabric for all hardware and database operations, elastic scalability, faster buildouts with Azure regions, and improved reliability through the use of Azure Availability Zones. An elastic, multitenant architecture enabled the Dynamics 365 team to offer each customer an ideally sized SKU that was capable of bursting to handle unanticipated workloads, which had been difficult in the past when running dedicated hardware for each customer. Last but not least, the initial lift-and-shift to Azure increased the speed of innovation by enabling the Dynamics 365 team to immediately begin leveraging new Azure services.
Azure SQL, the first new Azure service the team adopted, also delivered critical benefits. These included better resource utilization via elastic pools, improved performance with SSDs and accelerated networking, improved scalability (made possible by Azure SQL readable secondaries), and the ability to take advantage of premium Azure SQL features such as Columnstore. A move to Azure SQL would also facilitate making Dynamics 365 available in an ever-increasing number of Azure regions, as well as sovereign and air-gapped clouds.
This article provides a deeper look at how the Dynamics 365 team took advantage of Azure SQL—and how both teams worked together—to support more than 1 million customer databases by 2020. These efforts were the start of Dataverse (discussed later in this document), Microsoft’s modern, scalable business application platform in the cloud. Today, Dataverse encompasses some 3 million Azure SQL databases and leverages Azure SQL Hyperscale to support up to 100 TB per individual database--with rapid scale up, rapid scale out, and high availability.
Over time, the Dynamics 365 team has continued to evolve its architecture to take advantage of more cloud-native PaaS services, as required to launch new features and reduce the cost of delivering existing functionality. Some examples include:
- Leveraging a PaaS model based on Service Fabric, with VM Scale Sets for compute.
- Implementing advanced concepts like shuffle sharding for seamless and virtually infinite compute scale-out, multi-tenancy control, and sub-Geo fault isolation.
- Expanding the data layer based on Azure SQL to incorporate Azure Cosmos DB and Azure Data Lake Storage—exposed via a single Dataverse API and a consistent programming and extensibility interface.
- Adoption of additional PaaS services like Azure Logic Apps (for workflow), Azure Service Bus and Azure Event Hub (for eventing), and Azure API Management (for API connectivity).
- Modern, scalable, digital contact center capabilities, including multichannel support for digital messaging and voice—achieved through Azure Communication Services.
- Delivery of AI features via Azure Cognitive Services, Azure Machine Learning, and Azure Open AI.
After Dynamics 365 running on Azure was released, on-premises enterprise customers were offered a simple, automated migration path, which thousands used to adopt the SaaS version. “We mostly kept backwards compatibility with our on-premises offering, allowing us to provide a clear path to the cloud for our customers and, even more importantly, for our extensive ecosystem,” explains Bruckner. “Some on-premises capabilities, however, simply didn’t make sense in the cloud, such as direct API connections to the back-end SQL database. Had we allowed that in the cloud, it would have prevented us from later adding fully managed polyglot storage powered by Azure SQL Database, Azure Cosmos DB, and Azure Data Lake Storage.”
Modularity (even when in appearance only) is a modern application’s best friend
In parallel to lifting existing Dynamics 365 solutions into the cloud, the team started to envision the future—more specifically, how they wanted to go to market and have customers experience their offerings. The first aspect of the customer experience selected for modernization (and one of the most critical) was support for a modular approach, under which customers could adopt only the functionality they wanted instead of having to go all-in when adopting Dynamics 365.
From an application modernization perspective, this meant projecting the surface of Dynamics 365 as modules while still relying on the existing codebase. “In other words, we pretended to offer a new set of capabilities—but in reality, at first, it was merely a façade over existing ERP and CRM capabilities,” explains Homann. “Why do this? It let us quickly share the surface area of the new system we wanted to put in place while buying additional time to migrate our existing solution to new, cloud-native capabilities. Via APIs, events, and so on, customers using Dynamics 365 were able to start consuming the new model while the Dynamics 365 team began to modernize the codebase following a prioritization model of its choosing.”
For Dynamics 365, modules with extensive planning, scheduling, or other complex activities were prioritized for modernization. “We chose the modules that would benefit most from new cloud capabilities in machine learning, AI, high-performance computing, and so on, they promised to provide the biggest bang for the proverbial buck,” says Homann.
Homann cites the Strangler Fig pattern as a good example of how to enable such modularization over time. “This pattern takes advantage of one of the best virtues of the SaaS model: you can gradually modernize how your solution is built internally, enabling you to live with less-than-perfect interim situations as long as you expose a consistent and meaningful set of capabilities to the user,” he explains. “Such modularization efforts from a code base perspective have been ongoing ever since the initial lift-and-shift to Azure; in fact, they’re continuing to this day.”
Adds Bruckner, “Code base modernization is always ongoing; library updates and the adoption of new tooling like GitHub Copilot are two good examples. Otherwise, ‘code rot’ can quickly set in, making it increasingly difficult for engineering teams with a large and complex code base to remain productive.”
Anyone can be a developer
Another element of the customer experience—and one of the tougher issues the Dynamics 365 team had to address—was how to empower customers and partners to customize and extend their Dynamics 365 business applications, package those changes, and then deploy them into production. Under the old model, prior to the move to Azure, customers and partners built their solutions in the same environment as the Dynamics team. While that wasn’t ideal in the first place, it became prohibitive in a SaaS environment where frequent updates by the Dynamics 365 team could not be allowed to impact partner and customer solutions in any way.
The Dynamics 365 team decided to externalize extensibility through what is today known as the Microsoft Power Platform—a low-code/no-code platform for rapidly building customized end-to-end business solutions, which customers and partners can use to extend Dynamics 365 solutions the way they wish. What’s more, as a ‘citizen developer’ platform, Power Platform empowered nontechnical business users to build their own new applications on Dynamics 365, as required to quickly adapt to new business needs, improve processes, and uncover insights—all without the need for IT assistance. (Power Platform also supports “full-code” for professional developers who want to build highly complex or sophisticated applications.)
“Instead of assuming that your new applications will provide all capabilities to all scenarios, you should start thinking about your application landscape as a set of services that can—and should—be composed into new solutions for new scenarios, rather than building brand-new applications every time a new set of requirements emerges,” says Homann.
From a technical perspective, Homann cites Open API and Events as good options for exposing such services for reuse. “You should expose your modules as services with well-defined API's, ideally by using an explicit API management system such as Azure API Management. To empower your entire enterprise to add value to your modernization journey, you can expose your APIs as custom Power Platform connectors by using the built-in capabilities of Azure API Management.”
Bruckner offers additional insight into how the Power Platform has evolved since its inception. “Power Platform started as a way to overcome challenges in the IT domain, such as data silos, complex development processes, and security compliance,” he says. “Power Apps came first, in 2016, as a low-code, canvas-first application development tool that could easily integrate with various sources—including full create, read, update, and delete. In subsequent years, we added Power BI for data visualization, Power Automate for workflow automation, Power Virtual Agents for chatbot creation, and Power Pages for building websites.”
From a Common Data Service to a Dataverse
To unify data across all business processes and enable interoperability among business applications, the original Power Platform exposed a common data model via its Common Data Service (CDS). CDS has evolved into Microsoft Dataverse, morphing from a transactional interface to one that supports both transactions and analytics across all Dynamics 365 and Power Platform solutions. Dataverse also supports seamless customization and extension of Dynamics 365 applications and Power Platform solutions directly by enterprise customers. Similarly, Dataverse supports integrated extensions and independent application solutions from ISVs, of which there are thousands published on Microsoft AppSource. Furthermore, Microsoft Industry Cloud solutions are building atop Dataverse and Power Platform.
Figure 2 shows the capabilities provided by Dataverse from a data platform perspective.
Figure 3 provides a more detailed breakdown showing how Dataverse supports low-code development.
Figure 4 shows the fully managed Azure services that power Dataverse, which the Dynamics 365 team built on and wrapped to provide its current functionality.
Today, Dataverse is transparently powered by more than 25 fully-managed Azure services, providing customers with a unique, planet-scale data platform for all types of information. Built-in capabilities include comprehensive security, powerful analytics and AI, advanced business logic and eventing, data modeling, and integration with Dynamics 365, Office 365, Azure, and more. All these capabilities are built on a polyglot Dataverse storage layer, which is based on Azure SQL DB (for relational data), Azure Cosmos DB (for NoSQL), Azure Blob Storage (for files), and Azure Data Lake Storage Gen 2 (for large-scale analytics and long-term data retention).
Systems of record and systems of intelligence
A third aspect of the customer experience identified for modernization started with a clear realization that data—and more importantly, insights—that were surfaced in a manner to help drive actions would be a key differentiator for Dynamics 365. To deliver such capabilities, however, the team knew that it had to evolve from a traditional, monolithic reporting and BI architecture to a more flexible and future-proof approach.
“This realization is not new, as Gartner and others have been discussing the notion of systems of record and systems of intelligence for quite some time,” says Homann. “Still, many existing business applications had—and continue to have—deeply embedded reporting and BI functionality that had been accumulated over time.”
Providing customers with deeper insights via new ‘systems of intelligence’ involved building out additional applications required to support new workload patterns, such as massive volumes of observational event data, analytical big data processing, real-time AI inferences, asynchronous AI inferences, and generative AI large language models.
The Dynamics 365 team started by envisioning new "Insights" modules that would seize upon the deluge of data now available via the web, social media, IoT, and so on, and build a virtuous cycle of more data leading to better insights leading to better actions. The first such module was Dynamics 365 Customer Insights. Delivered as a SaaS application, it provides a means for enterprises to better understand the many touchpoints they have with their own customers—and ultimately deliver more optimized customer experiences and interactions.
Since its launch in 2019, Customer Insights has evolved into a comprehensive customer data platform that lets business users bring together customer data across multiple touchpoints, merge and enrich that data, and extract the insights needed to personalize customer experiences and orchestrate optimized, real-time customer journeys—all delivered through a no-code/low-code application experience built on top of Dataverse.
Since delivering Customer Insights, the Dynamics 365 team has built on that work to deliver new Insights modules that focus on supply chain, intelligent order management, task mining, business process insights, business performance analytics, and other critical business areas where data and actionable insights can make a difference in the marketplace.
“We started building all this in the context of a specific application—Customer Insights—and then used the lessons we had learned to generalize such capabilities and build them into the Dataverse platform, which now powers many of these new types of "insights" and AI-first applications and workload patterns,” says Bruckner. “Today, the Dataverse platform includes fully managed Spark, machine learning, cognitive services, AI pipelines, and so on, which additional Dynamics apps like Microsoft Supply Chain Center and Process Advisor are now using.”
Continues Bruckner, “The modernization lesson here is to start with a concrete, end-to-end customer scenario, build it out, then quickly learn and iterate. As a second step, identify how a more generalized set of similar capabilities might be used to support other scenarios and applications, then build-out and extend what you’ve done at the platform layer—that’s Dataverse in the case of Dynamics 365 applications—to serve those scenarios.”
Homann explains how these Insights applications work from a data flow perspective. “The cycle is straightforward: all Dynamics 365 modules automatically log all their activities, information about their interactions, transactions, and so on as signals in a data lake,” he says. “Additional signals from the web, social media, and other enterprise sources are also gathered, and all signals are prepared for analytics consumption by those Insight applications, in a manner optimized for various target personas and key customer engagement scenarios. The Insight applications, in turn, employ machine learning and AI to generate recommendations that are ready to share with other Dynamics 365 modules, as required to drive specific actions.”
Homann cites customer churn as a great use case for this pattern. “The Dynamics 365 Customer Insights module has built-in AI models to detect potential predictors of customer churn,” he explains. “It can be connected to a marketing application to drive specific actions, such as sending discounted offers to an individual who is about to churn, notify inside sales to engage with the customer, and so on.”
Continues Homann, “From a modernization perspective, the lesson here is that all your new (and ideally old) applications need to emit instrumentation or telemetry about their operational state and the business interactions they support—such as abandoned shopping carts or the number of clicks before a buyer was able to purchase an item—into an analytics environment. Gathered data can then be combined with other data sources to drive optimization of interactions.”
Infusing Generative AI into Dynamics 365 and the Power Platform
Infusion of AI into Dynamics 365 began in 2018, when Microsoft launched AI for Customer Service and AI for Sales. In 2019, the Dynamics 365 team broadened and accelerated those efforts, incorporating AI into many more customer experiences—as a means of enabling nontechnical business application users to analyze data more efficiently and accurately, act on insights, and automate business processes. These applications included Customer Insights (enterprise customer data platform) and AI Builder. The latter added low-code AI support to the Power Platform and enabled nontechnical users to build and use robust AI models for data analysis and predictions specific to their business processes.
In 2021, the Dynamics 365 team took another step forward, using AI to let users describe what they want to do using natural language and then have that functionality created for them. Powered by the Open AI GPT3 model, one such feature automatically generates Power Fx formulas in Power Apps based on natural language input. For example, a user can tell Power Apps to “show me customers from the US whose subscriptions have expired” and be presented with a set of formulas and an explanation of how they work. Another such feature uses GPT3 to automatically generate formulas used within Power BI based on natural language descriptions. 2022 brought additional AI-powered tools, including the ability to define Power Automate flows using natural language and to generate low-code apps directly from images and design files.
In March 2023, Microsoft announced and released the first wave of Microsoft Dynamics 365 Copilot scenarios, which provide next-generation, AI-powered assistance across business functions. As the world’s first AI-powered copilot, it works alongside business professionals in sales, service, marketing and supply chain roles to help them create ideas and content faster, complete time-consuming tasks, and get insights and next best actions—just by describing what’s needed using natural language.
“Customer relationship management (CRM) and enterprise resource planning (ERP) systems have long been mission-critical customer and business data sources; however, they frequently require burdensome tasks like manual data entry, content generation and notetaking,” says Lamanna. “Dynamics 365 Copilot takes advantage of recent advancements in generative AI to automate these tedious tasks and unlock the full creativity of the workforce, helping users in every line of business to accelerate their pace of innovation and improve business outcomes.”
Specific capabilities provided by Copilot depend on user role and which Dynamics 365 solutions they use. For example, Copilot in Microsoft Dynamics 365 Sales and Viva Sales helps sellers dramatically reduce the time they spend on clerical tasks, such as writing email responses to customers or creating an email summary of a Teams meeting in Outlook. Copilot in Dynamics 365 Customer Service empowers agents to deliver exceptional customer care by helping them find resources to resolve issues faster, handle cases more efficiently, and automate time-consuming tasks. Copilot provides similar AI-powered, role-specific productivity aids in Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Customer Insights, Dynamics 365 Business Central, Microsoft Supply Chain Center, and Dynamics 365 Supply Chain Management.
March 2023 also marked the availability of Copilot in the Power Platform, further democratizing low-code development and enabling even more people to create innovative solutions using Power Apps, Power Automate, and Power Virtual Agents. “Copilot will accelerate development for citizen developers and professional developers alike,” says Lamanna. “With Copilot, if you can imagine your solution, you can simply describe it using natural language—and copilot can create it for you in seconds. It’s really that easy.”
Mahesh Sreenivas, an Architect for Customer Care Applications within the Business Applications and Platforms group at Microsoft, explains how the Dynamics 365 team used the latest advances in GPT-based large language prediction models (LLMs) and generative AI to deliver Copilot. “In Generative AI, the term ‘generative’ refers to the ability of the model to generate new, original data that is like the training data it was trained on. In other words, a generative AI model can create new samples that were not part of the original dataset. With generative AI, we’re moving to a world where custom AI models will be replaced by common LLMs that can effectively serve a broad and diverse customer base. Such LLMs are revolutionary in nature, bringing the unimaginable power of AI to the masses in a way that fits seamlessly into how people work.”
A product development and delivery transformation
Another dimension of the journey is how the Dynamics 365 team has transformed and modernized its product development and delivery processes to become more customer-centric. Today, the team ships incremental value every week; larger changes that may require additional user training are shipped every six months.
To prioritize this continual value delivery, the Dynamics 365 team combines direct feedback from customers with insights gathered through a massive telemetry pipeline, which is made possible by operating a cloud service on behalf of customers. “Every piece of code is instrumented, generating a massive amount of information that’s analyzed continually, enabling immediate course-correction when needed,” says Sreenivas. “Of course, this is all done in a fully compliant manner—meaning that the analysis is performed with strict adherence to privacy protocols.”
Operating a cloud service on behalf of customers has also helped the Dynamics 365 team adopt more sophisticated service health indicators, with service-level objectives and agreements based on customer expectations. These include both usage and performance/latency objectives, which are based on both aggregate and customer-level views of service or component health.
“In the past, we had separate Development, QA, Site Reliability Engineering, and Operations teams,” says Bruckner. “Today, we have an integrated DevOps culture, with a single group of individuals accountable for end-to-end service health and usage, and for evolving and improving our services and applications. We’ve pushed decision-making closer to the individuals who have the best understanding of the issues, with proper checks and balances in place based on the risks of those decisions. A rotation of engineers is always on-duty to address production issues, with mission-critical components staffed in multiple geographies and 24x7 or 8x5 engagement models, depending on the scope of impact.”
DevOps-related metrics are similarly tracked, including time-to-acknowledge, time-to-engage, time-to-mitigate, monitoring detection rate, and postmortem/repair item aging. Rhythms include weekly and monthly reviews at team and executive levels, assessment of toil and service debt, and protecting against the “watermelon effect” where all surface indicators look green, but the end-to-end customer experience might potentially still fall in the red.
Stringent processes are defined for Livesite incident handling and Post Incident Reports (aka Postmortem Reports). Livesite Postmortem Reviews are scheduled weekly or biweekly, with no offline reviews and no skipping reviews. Postmortem reports are required for any incident with a severity level 2 or higher, as well as any incidents tagged as requiring a root cause analysis.
Modernization on Azure has enabled the Dynamics 365 team to improve business continuity and disaster recovery (BCDR) capabilities as well. Sreenivas explains how things work today. “Azure Cloud operates with a standard hierarchy, in which the world is partitioned into one or more Geos, which are mainly data residency boundaries,” he says. “Each Geo comprises one or more Regions, each of which consists of one or more Availability Zones (AZs). Each AZ, in turn, encompasses one or more Data Centers (DCs). Dynamics 365 takes advantage of the HA and BCDR mechanisms built into Azure at each of these levels.”
HA failovers, which always happen within a Region, are guaranteed to have zero data loss regardless of whether planned or unplanned. “Seamless HA failover is achieved by via synchronous replication from a primary replica to a secondary replica, with a fabric underneath that can detect failures and choose a new leader (primary) following correctness protocols,” explains Sreenivas. “Such failovers typically happen in seconds and are rarely noticed by users.”
DR failovers occur across two Regions. “To facilitate DR failover for production instances, we maintain a DR continuous copy using asynchronous replication, which enables faster failover and minimizes data loss,” says Sreenivas. “Planned DR failovers incur no data loss and, for production environments, can usually be completed in double-digit seconds to a few minutes.”
Even with such advanced BCDR mechanisms in place, the Dynamics 365 team remains vigilant, performing DR drills frequently. “We continually test our readiness and ability to respond to various types of disasters, such as natural disasters, cyber-attacks, power outages, or human error,” explains Sreenivas. “These drills simulate disaster scenarios and help identify potential weaknesses and vulnerabilities in our disaster recovery plan, including communication systems, backup procedures, and data recovery strategies.”
Results to date
Looking back over the past seven years, the modernization of Dynamics 365 on Azure has helped Microsoft fundamentally transform the customer experience in several dimensions. It all began with the lift-and-shift to Azure in 2016-2017, which eliminated the architectural constraints imposed by on-premises infrastructure—providing both the freedom to reimagine the customer experience and freeing the resources needed to turn that vision into reality.
Customers started seeing the benefits as soon as the lift-and-shift was complete—albeit in more ‘mundane’ areas like performance and scalability. However, the larger benefit for customers came because of the company’s shift to how Dynamics 365 solutions are delivered today: via a fully cloud-based, SaaS model. “Cloud and SaaS marked a fundamental change in how software was delivered,” says Bruckner. “Updates became seamless, economics improved thanks to multitenancy, and a single version of the product served an entire customer base.”
However, the primary and most fundamental disruption was the fact that, under a subscription-based pricing model, software vendor and customer successes are fully aligned. “If a customer doesn’t find value with our software, they can cancel it in weeks, months, or a few years into adoption—as opposed to licensed software, which they had to buy up-front at full cost, regardless of successful implementation, maintenance, and support,” says Bruckner.
The Dynamics 365 team’s focus on modularity provided customers with an even greater choice. “We went from selling ERP or CRM as monolithic solutions to a set of modules and applications,” explains Homann. “Today, customers can purchase Dynamics 365 for Finance & Operations, Dynamics 365 for Sales, and so on instead of a fully built-out ERP or CRM system. The capabilities to support all necessary ERP or CRM functions are available, but the modular approach allows a customer to go at their own pace without paying for capabilities not yet activated or needed.”
Regardless of which modules a customer does adopt, the Dynamics 365 team’s continual focus on re-imagining the customer experience has empowered enterprises in many new ways. How Power Platform externalized extensibility was an early step, enabling citizen developers to build their own applications. Systems of intelligence like Customer Insights enabled a similar shift, letting business users bring together, analyze, and act on customer data across multiple touchpoints—capabilities that, just a few years prior, would have required specialized and scarce data engineering, data science, and software development expertise. Infusion of AI across Dynamics 365 and Power Platform user experiences further empowers end-users, enabling them to simply describe what they need using natural language and have it done for them.
The new cloud model has had an increasingly profound impact on the business, making Dynamics 365 and the Power Platform some of the fastest growing software categories for Microsoft. “We’ve been able to launch new products, new features, and new user experiences at a faster pace, and with more precision, due to our cloud migration,” says Lamanna. “We better understand our customers and can quickly solve unmet needs now that we can ship regularly. The DNA of the team has fundamentally changed, and it shows throughout our products.”
Adds Homann, "The journey the Dynamics 365 team undertook shows that an intelligent approach to application landscape modernization can yield tremendous business results, leading to new opportunities. The journey continues; the lessons learned have been hard-won yet immensely rewarding for our customers and our internal teams."
Looking to the future
So what’s in store for Dynamics 365? How will Microsoft continue to modernize it on Azure? From an architectural perspective, Sreenivas foresees a move to Azure Kubernetes Service (AKS) as the platform’s main compute infrastructure. He also sees further improvements in scalability and resiliency as additional software components are modified to take advantage of Availability Zones. To Sreenivas, however, the real ‘game changer’ is generative AI. “Generative AI will revolutionize things in unimaginable ways,” he says. “For example, take the digital contact center scenario. In the not-so-distant future, we may start to see human agents supervising a group of digital agents, which can be scaled-up as needed to eliminate customer wait times.”
The Dynamics 365 team—and the broader Business Applications and Platforms group—plan to continue infusing AI within Dataverse and Power Platform, enabling virtually anyone to build and deploy (and automatically scale and govern) apps, workflows, and chatbots using natural language. “We’re entering a new era of AI-assisted, low-code application development, further democratizing software creation to transform the way people work, collaborate, and create,” says Bruckner. “Our deep investments in generative AI will accelerate the delivery of business applications that are more intelligent, efficient, and user-friendly—achieved through the use of AI to automate tasks, provide suggestions, help people take action, enable conversational interactions, and ultimately make business users drastically more productive.”
Although the future is bright, it all started with that initial cloud migration. “Dynamics 365 and the Power Platform are now innovating at the fastest pace in our history, and we were ready for the generative AI opportunity because of the investments we made back in 2017,” explains Lamanna. “Our biggest lesson learned is that we should have started the move to Azure earlier.”
“Our deep investments in generative AI will accelerate the delivery of business applications that are more intelligent, efficient, and user-friendly—achieved through the use of AI to automate tasks, provide suggestions, help people take action, enable conversational interactions, and ultimately make business users drastically more productive.”
Robert Bruckner, CTO, Dataverse, Business Applications and Platforms, Microsoft
Follow Microsoft