Microsoft invested a lot in the last year and continues to invest in a modernized and streamlined Dynamics 365 Business Central architecture in order to have an ERP cloud service solution that is easy to deploy and upgrade.
At the time of writing, statistics are very encouraging and even exceed expectations.
Basically, a new Dynamics 365 Business Central tenant is created every 180 seconds. 400,000 metrics are emitted per minute, with approximately 8 TB of logs generated per day. These logs are then pre-processed, aggregated, and approximately 4 TB data is uploaded to Cosmos DB for big data analysis via the Azure Data Lake service.
These are just some of the numbers that Dynamics 365 Business Central is producing, and just a few of the Microsoft cloud services that are used to provide the best online ERP experience in the world.
At this pace, in the near future, it might be foreseeable that Artificial Intelligence (AI) could be used to self-trigger microservice tuning at all platform and application levels.
Going a bit deeper, considering that Azure technologies are involved, at the time of writing, there are 20 resources that are orchestrated together in every single microservice collection. This goes to show what a complex environment is provided to users and developers in the simplest way possible.
The Dynamics 365 Business Central development team's main goal is to move the extensibility burden to the partners and the customers. Partners and customers have to completely forget about where and how the data is stored, as well as the technologies that are required to gather, transform, and upgrade it. Instead, they should simply concentrate on extending the application. No platform skills are required; simply hit refresh and repeat "developers, developers, developers..."
Here is a tabular overview of the Azure resources that are used to build each platform service, their purposes, and links to more information about each resource:
Azure resource |
General-purpose |
Link |
Azure Service Fabric |
Distributed systems platform that makes it easy to deploy and manage scalable microservices and containers. |
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview |
Azure Key Vault |
To encrypt and decrypt data within the application and several other security-related features. |
https://docs.microsoft.com/en-us/azure/key-vault/key-vault-whatis |
Application Gateway |
Web traffic load balancer that makes an intelligent load distribution of the application calls. |
https://docs.microsoft.com/en-us/azure/application-gateway/overview |
SQL Elastic Database Pools |
Resource optimizer for Azure SQL databases that's used for customer and application tenants. |
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool |
Application Insights |
Set of tools for gathering log information and sending it as telemetry data. |
https://docs.microsoft.com/en-us/azure/application-insights/app-insights-overview |
Azure Machine Learning (ML) service |
SaaS-based lab for developing and applying machine learning models and their outcomes. |
https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml |
Azure Search |
APIs for advanced search to be implemented inside applications and microservices. |
https://docs.microsoft.com/en-us/azure/search/search-what-is-azure-search |
Azure Storage |
Provides the storage layer abstraction to preserve data according to security and privacy. These reflect regional legal models. |
|
Azure Active Directory (AD) |
Microsoft's cloud-based identity and access management service. Guaranteed secure and solid sign-in and resource access. |
https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-whatis |
Azure Function |
Provides APIs for specific routines/functions in isolated environments. Suggested replacement for Dynamics 365 Business Central and .NET interoperability. |
https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview |
Traffic Manager |
DNS-based traffic load balancer, the main purpose of which is to distribute traffic load optimally to services across global Azure regions, all while providing high availability and responsiveness. |
https://docs.microsoft.com/en-us/azure/traffic-manager/traffic-manager-overview |
Azure Load Balancer |
Used to guarantee high availability for microservices. Load Balancer supports inbound and outbound scenarios and provides low latency and high throughput. It scales up to millions of flows for all TCP and UDP applications. |
https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-overview |
Azure SQL Database |
A relational database for managing data in and out of cloud storage. |
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-technical-overview |
Azure Container Registry |
Stores base images for all types of container deployments. Typically used to store sandbox images to be downloaded for development purposes. |
|
Azure Data Lake Storage Gen1 |
Used to analyze the huge amount of telemetry data that's created. |
https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-overview |
Azure Service Bus |
A message broker solution that's used to decouple applications and services from each other. Data is transferred between different applications and services. |
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview |
Health Monitoring |
Azure Service Fabric introduces a scalable set of analytics tools to monitor system and/or service health. Alerts can be created with specific rules and sent to on-call operation engineers. |
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-diagnostics-overview |
Azure Virtual Network |
Enables many types of Azure resources, such as Azure virtual machines, to securely communicate with each other and the internet. |
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-overview |
Azure Data Factory |
A cloud-based data integration service that allows the creation of data-driven workflows for automating data movement and data transformation. |
https://docs.microsoft.com/en-us/azure/data-factory/introduction |
Cosmos DB |
Used to aggregate telemetry data and further analysis. |
https://docs.microsoft.com/en-us/azure/cosmos-db/introduction |
Global services are just a few services that don't store any data and only perform processing activities. They are just proxies that don't hold any data and are used to redirect requests to the appropriate control and data planes.
Global services are mainly used to redirect requests to the appropriate control planes; in fact, they are simply routing the information when users are logging in. The fixed client endpoint is responsible for routing to the appropriate control and data plane based on credentials. No other extra information is needed.
There are several global services in different world regions with multiple instances, but they are all accessed from within the same endpoint. A traffic manager in front of them redirects the call to the closest instance where the calls come from. This makes the Dynamics 365 Business Central service very efficient and performant. Statistically, 30,000 calls per hour are routed through Dynamics 365 Business Central global services. Next, let's understand where and how these work.