Azure Local Cluster on‑site working in tandem with Azure Cloud, running Dockerized AI workloads at the edge — is not just viable. It’s exactly the direction modern distributed AI systems are heading.
Let me unpack how these pieces fit together and why the architecture is so compelling.
Azure Local Baseline reference Architecture
A powerful hybrid model for real‑world AI
Think of this setup as a two‑layer AI fabric:
Layer 1: On‑site Azure Local Cluster
Handles real‑time inference, local decision‑making, and data preprocessing.
This is where Docker containers shine: predictable, isolated, versioned workloads running close to the data source.
Layer 2: Azure Cloud
Handles heavy lifting: model training, analytics, fleet management, OTA updates, and long‑term storage.
Together, they create a system that is fast, resilient, secure, and scalable
Why this architecture works so well
Ultra‑low latency inference
Your on‑site Azure Local Cluster can run Dockerized AI models directly on edge hardware (Jetson, x86, ARM).
This eliminates cloud round‑trips for:
object detection
anomaly detection
robotics control
industrial automation
Azure Local provides the core platform for hosting and managing virtualized and containerized workloads on-premises or at the edge.
Seamless model lifecycle management
Azure Cloud can:
train new models
validate them
push them as Docker images
orchestrate rollouts to thousands of edge nodes
Your local cluster simply pulls the new container and swaps it in.
This is exactly the “atomic update” pattern from the blogpost.
The Rise of Free Hardened Docker Images: A New Security Baseline for Developers and DevOps
Containerization has become the backbone of modern software delivery. But as adoption has exploded, so has the attack surface. Vulnerable base images, outdated dependencies, and misconfigured runtimes have quietly become some of the most common entry points for supply‑chain attacks.
The industry has been asking for a better baseline—something secure by default, continuously maintained, and frictionless for teams to adopt. And now we’re finally seeing it: free hardened Docker images becoming widely available from major vendors and open‑source security communities.
This shift isn’t just a convenience upgrade. It’s a fundamental change in how we think about container security.
Why Hardened Images Matter More Than Ever
A “hardened” image isn’t just a slimmer version of a base OS. It’s a container that has been:
Stripped of unnecessary packages
Fewer binaries = fewer vulnerabilities.
Built with secure defaults
Non‑root users, locked‑down permissions, and minimized attack surface.
Continuously scanned and patched
Automated pipelines ensure CVEs are fixed quickly.
Cryptographically signed
So you can verify provenance and integrity before deployment.
Aligned with compliance frameworks
CIS Benchmarks, NIST 800‑190, and other standards are increasingly baked in.
For developers, this means fewer surprises during security reviews. For DevOps teams, it means fewer late‑night patch cycles and fewer emergency rebuilds.
What’s New About the Latest Generation of Free Hardened Images
The newest wave of hardened images goes far beyond the “minimal OS” approach of the past. Here’s what’s changing:
Hardened Language Runtimes
We’re seeing secure-by-default images for:
Python
Node.js
Go
Java
.NET
Rust
These images often include:
Preconfigured non‑root users
Read‑only root filesystems
Mandatory access control profiles
Reduced dependency trees
Automated SBOMs (Software Bills of Materials)
Every image now ships with a machine‑readable SBOM.
This gives you:
Full visibility into dependencies
Faster vulnerability triage
Easier compliance reporting
SBOMs are no longer optional—they’re becoming a standard part of secure supply chains.
Built‑in Image Signing and Verification
Tools like Sigstore Cosign, Notary v2, and Docker Content Trust are now integrated directly into image pipelines.
This means you can enforce:
“Only signed images may run” policies
Zero‑trust container admission
Immutable deployment guarantees
Continuous Hardening Pipelines
Instead of waiting for monthly rebuilds, hardened images are now updated:
Daily
Automatically
With CVE‑aware rebuild triggers
This dramatically reduces the window of exposure for newly discovered vulnerabilities.
Docker Desktop continues to evolve as the go-to platform for containerized development, and the latest release — version 4.51.0 — brings exciting new capabilities for developers working with Kubernetes.
What’s New in 4.51.0
Kubernetes Resource Setup Made Simple
One of the standout features in this release is the ability to set up Kubernetes resources directly from a new view inside Docker Desktop. This streamlined interface allows developers to configure pods, services, and deployments without leaving the Desktop environment. It’s a huge step toward making Kubernetes more approachable for teams who want to focus on building rather than wrestling with YAML files.
Real-Time Kubernetes Monitoring
The new Kubernetes view also provides a live display of your cluster state. You can now see pods, services, and deployments update in real time, making it easier to spot issues, monitor workloads, and ensure everything is running smoothly.
Smarter Dependency Management
Docker Desktop now integrates improvements with Kind (Kubernetes in Docker), ensuring that only required dependency images are pulled if they aren’t already available locally. This reduces unnecessary downloads and speeds up cluster setup.
Updated Core Components
Docker Engine v28.5.2 ships with this release, ensuring stability and performance improvements.
Enhanced Linux kernel support for smoother Kubernetes operations.
Why This Matters
Kubernetes has a reputation for being complex for some people, but Docker Desktop 4.51.0 is working to change that. By embedding Kubernetes resource management and monitoring directly into the Desktop experience, Docker is lowering the barrier to entry for developers and teams. Whether you’re experimenting with microservices or managing production-like environments locally, these new features make Kubernetes more accessible and intuitive.
Open the new Kubernetes view to configure resources.
Watch your pods, services, and deployments update in real time.
Update available with New Kubernetes UI
Click on Download Update
Click on Create Cluster
Here you can select a Single Node Cluster or with Kind a Multi-Node Cluster. I selected for a Single node cluster.
Click on Install
Here is your Single Node Kubernetes Cluster running with version 1.34.1
Kubectl get nodes
My Nginx Container app is running on Kubernetes in Docker Desktop 😉
Final Thoughts
Docker Desktop 4.51.0 is more than just an incremental update — it’s a meaningful step toward bridging the gap between container development and Kubernetes orchestration. With simplified setup and real-time monitoring, developers can spend less time configuring and more time innovating. 🐳
Microsoft Azure App Service is really scalable for Docker App Solutions:
Azure App Service is designed to scale effortlessly with your application’s needs. Whether you’re hosting a simple web app or a complex containerized microservice, it offers both vertical scaling (upgrading resources like CPU and memory) and horizontal scaling (adding more instances). With built-in autoscaling, you can respond dynamically to traffic spikes, scheduled workloads, or performance thresholds—without manual intervention or downtime.
From small startups to enterprise-grade deployments, App Service adapts to demand with precision, making it a reliable platform for modern, cloud-native applications.
For modern developers, the combination of Azure App Services and Docker Desktop offers a powerful, flexible, and scalable foundation for building, testing, and deploying cloud-native applications.
Developers can build locally with Docker, ensuring consistency and portability.
Then deploy seamlessly to Azure App Services, leveraging its cloud scalability and integration.
This workflow reduces configuration drift, accelerates testing cycles, and improves team collaboration.
In the ever-evolving world of software development, Docker Desktop for Windows has emerged as an indispensable tool for developers. This powerful platform simplifies the process of building, sharing, and running applications within containers, offering a host of features and benefits that streamline workflows and enhance productivity. Let’s dive into what makes Docker Desktop for Windows a must-have for developers.
Easy Installation and Setup
One of the standout features of Docker Desktop for Windows is its straightforward installation process. With just a few clicks, developers can have Docker up and running on their Windows machines. The intuitive setup ensures that even those new to Docker can get started without a hitch.
Integrated GUI
Docker Desktop comes with a user-friendly Graphical User Interface (GUI) that makes managing containers, images, and settings a breeze. The GUI provides a visual representation of your Docker environment, allowing you to easily monitor and control your containers without needing to rely solely on command-line instructions.
Seamless Integration with WSL 2
For developers working with both Windows and Linux containers, Docker Desktop offers seamless integration with Windows Subsystem for Linux 2 (WSL 2). This integration allows you to switch between Linux and Windows containers effortlessly, leveraging the best of both worlds. WSL 2 provides a lightweight Linux kernel that runs alongside your Windows OS, ensuring optimal performance and compatibility.
Resource Management
Docker Desktop includes robust resource management features, enabling developers to allocate CPU, memory, and disk resources to their containers. This ensures that your development environment remains responsive and efficient, even when running multiple containers simultaneously.
Automatic Updates
Docker Desktop Automatically check for updates.
Keeping your Docker environment up-to-date is crucial for security and performance. Docker Desktop simplifies this process with automatic updates, ensuring that you always have the latest features and security patches without manual intervention.
Docker Compose Integration
Docker Compose is a powerful tool for defining and running multi-container Docker applications. Docker Desktop integrates seamlessly with Docker Compose, allowing developers to easily manage complex applications with multiple services. This integration simplifies the orchestration of containers, making it easier to develop, test, and deploy applications.
Kubernetes Support
For developers looking to dive into the world of Kubernetes, Docker Desktop offers built-in support for Kubernetes. This feature allows you to run a single-node Kubernetes cluster on your local machine, providing a convenient environment for learning and experimentation. With Kubernetes support, you can develop and test containerized applications before deploying them to a production cluster.
Volume Management
Docker Desktop Volumes management
Managing data within containers is made simple with Docker Desktop’s volume management capabilities. You can easily create, manage, and share volumes between containers, ensuring that your data persists across container restarts and updates.
Benefits for Developers
Enhanced Productivity
Docker Desktop Dev Environments
Docker Desktop streamlines the development process by providing a consistent environment across different stages of development. This consistency reduces the “it works on my machine” problem, ensuring that applications run smoothly from development to production.
Simplified Collaboration
With Docker Desktop, sharing your development environment with team members is as simple as sharing a Docker image. This ensures that everyone on your team is working with the same setup, reducing discrepancies and improving collaboration.
Flexibility and Portability
Docker containers are inherently portable, allowing you to run your applications on any system that supports Docker. This flexibility is particularly beneficial for developers working in diverse environments or deploying applications across different platforms.
Docker Desktop provides a secure environment for running containers, isolating applications from the host system and each other. This isolation reduces the risk of security vulnerabilities and ensures that your development environment remains protected.
Conclusion
Docker Desktop for Windows is a game-changer for developers, offering a comprehensive suite of features that enhance productivity, simplify collaboration, and improve security. Whether you’re a seasoned developer or just starting with containerization, Docker Desktop provides the tools you need to build, share, and run applications with ease. Embrace the power of Docker Desktop and take your development workflow to the next level.
Here you find more information about Docker Desktop:
In the ever-evolving landscape of software development, Docker has consistently been at the forefront, providing developers with tools to streamline their workflows. One of the latest additions to Docker’s suite of tools is the Docker Desktop Dev Environments (Beta). This feature promises to revolutionize the way developers collaborate and manage their development environments. Let’s dive into what makes this new feature so exciting.
What is Docker Desktop Dev Environments?
Docker Desktop Dev Environments is a feature designed to simplify the process of setting up and sharing development environments. It allows developers to create, configure, and share their development setups with ease, ensuring consistency across different machines and team members. This is particularly useful in collaborative projects where maintaining identical environments can be challenging.
Key Features
Environment Configuration: With Docker Desktop Dev Environments, you can define your development environment using a simple configuration file. This file includes all the necessary dependencies, tools, and settings required for your project. Once defined, the environment can be easily replicated on any machine with Docker Desktop installed.
Seamless Sharing: Sharing your development environment with team members has never been easier. Docker Desktop Dev Environments allows you to package your environment configuration and share it via a URL or a file. Team members can then import this configuration and have their environment set up in minutes.
Consistency and Reproducibility: One of the biggest challenges in software development is ensuring that all team members are working in the same environment. Docker Desktop Dev Environments addresses this by providing a consistent setup that can be easily reproduced. This reduces the “it works on my machine” problem and ensures that everyone is on the same page.
Integration with Docker Hub: Docker Desktop Dev Environments integrates seamlessly with Docker Hub, allowing you to store and manage your environment configurations in the cloud. This makes it easy to access and share your environments from anywhere.
Benefits for Developers
Simplified Onboarding: New team members can get up and running quickly by importing the development environment configuration. This reduces the time spent on setting up and troubleshooting environments.
Enhanced Collaboration: By providing a consistent environment, Docker Desktop Dev Environments fosters better collaboration among team members. Everyone works with the same tools and settings, reducing discrepancies and integration issues.
Improved Productivity: With a standardized environment, developers can focus more on coding and less on environment setup and maintenance. This leads to increased productivity and faster development cycles.
Getting Started
To get started with Docker Desktop Dev Environments (Beta), follow these simple steps:
Install Docker Desktop: Ensure you have the latest version of Docker Desktop installed on your machine.
Create a Dev Environment: Use the Docker Desktop interface to create a new development environment. Define your environment configuration using the provided templates or create your own.
Share Your Environment: Once your environment is set up, share it with your team by generating a URL or exporting the configuration file.
Import an Environment: Team members can import the shared environment configuration and have their setup ready in minutes.
In the following steps I will Create a Dev Environment in Docker Desktop for Windows:
Click on Dev Environments and then on Get Started
Give your environment a Name, select your source and choose your IDE,
Click then on Continue
Preparing and creating.
Click on Continue
You’re all set and you can open VSCode or your IDE.
Your Dev Environment in Docker Desktop for Windows.
Your Docker Desktop for Windows Dev Environment in VSCode.
Your Dev environment microservices running in Docker Desktop
Conclusion
Docker Desktop Dev Environments (Beta) is a game-changer for developers looking to streamline their workflows and enhance collaboration. By providing a consistent, reproducible, and easily shareable development environment, Docker is once again proving its commitment to making developers’ lives easier. Whether you’re working on a solo project or collaborating with a large team, Docker Desktop Dev Environments is a tool worth exploring. Here you find more information about Dev environments at Docker.
When you want to work with containers and Microsoft Visual Studio Code Docker Desktop for Windows is awesome to work with on your pc. Docker Desktop is a one-click-install application for your Mac, Linux, or Windows environment that lets you build, share, and run containerized applications and microservices. You can work with docker container images from Hub here
But you can also work with Docker Desktop for Windows Kubernetes containers.
I like to work with Docker Desktop for Windows because it’s easy to manage and updates works fine with good documentation on fixes and changes.
Software Updates Overview
Installing New Update 4.33.1
Unpacking Files
Starting New docker Engine
Docker Desktop for Windows and Kubernetes are running again.
Join the Developer Preview Program to see what Docker is building and make an impact on the future of Docker products. You can help us make your experience with Docker better than ever!
Try the features in development and give your feedback
Conclusion
Docker Desktop for Windows is easy to manage and to work with containers and microservices. You are really flexible how to work with Containers, and that is what I like about Docker Desktop for Windows. Try it yourself on your Windows Laptop and see how fast you can run your Container App.
I’m working with Windows Admin Center every day to manage our datacenter and to mange my MVP LAB. When you have to install Windows Server Core
or Microsoft Azure Stack HCI Operating system, then Windows Admin Center is the right tool for you as an Administrator. You can use all the Server Manager tools via WAC
and you don’t have to work with Command-line tools only like CMD and PowerShell.
In my MVP LAB I have a Microsoft Windows Server 2022 Datacenter Edition Hyper-V Host, and I like to make a Docker Host Server for my Containers.
With Windows Admin Center it’s easy to roll out a Docker host Server for your Containers.
In the following steps I will Install a Docker Host Server on Windows Server 2022.
Open Windows Admin Center and connect to your Server.
I Have Container Extension installed version 1.150.0
Click on Containers and Click on Install Windows Admin Center will Restart your Server for the Docker Installation!
Hang on while Docker Host will be Installed on Windows Server 2022.
Docker Host Installed Successfully.
Docker Host Container Overview Screen on Windows Server 2022.
From here you can Pull containers images to the Docker Host.
This is what I did but…..
Instead of pulling a Container Image you can also Create your Own Container Image.
Here I’m Pulling a ASP.NET Container Image from Microsoft.
Pulled Container Image Successfully.
The ASP.NET Container Image is now Available on the Docker Host.
Select the Container Image and Click on Run.
Give the Docker Container a name.
You can Manage the ports,
Hyper-V Isolation,
Memory,
CPU
And add addition Docker Run options,
Click on Run.
The ASP.NET Docker Container is running on Windows Server 2022.
When you Click on the running Container you will get options like :
Stats, Details, Logs, Console and Events.
When you Click on Console you will go remote by PowerShell to the Docker Host.
Here you got all the Docker commands 😉
And of course when you want to develop Containers as a developer you can use Microsoft Visual Studio Code as well.
(I’m using Visual Studio Code Insiders version in my MVP LAB)
Microsoft Azure Container Instances
Containers are becoming the preferred way to package, deploy, and manage cloud applications. Azure Container Instances offers the fastest and simplest way to run a container in Azure, without having to manage any virtual machines and without having to adopt a higher-level service.
Azure Container Instances is a great solution for any scenario that can operate in isolated containers, including simple applications, task automation, and build jobs. For scenarios where you need full container orchestration, including service discovery across multiple containers, automatic scaling, and coordinated application upgrades, we recommend Azure Kubernetes Service (AKS).
For my MVP LAB Azure Container Instances (ACI) is a great way to run Containers fast in the Cloud and have a overview with Windows Admin Center for :
Here you have a overview of your Azure Container Instances in Windows Admin Center.
In the following steps I will create an Azure Container Instance via the Microsoft Azure Portal and show it in Windows Admin Center. For this you need to integrate Windows Admin Center with your Microsoft Azure Subscription. This you can do in settings of WAC:
When you have your Azure Account active in Windows Admin Center, go to the Microsoft Azure Portal and search for Container instances.
Click on Create Container Instances
Here you set the basics of your Azure Container Instance
Here you set the following items for your Azure Container Instance (ACI) :
Select your Azure Subscription which is integrated with your Microsoft Windows Admin Center.
Select or Create the Resource Group for your Azure Container Instance.
Give your Container a name.
Select the Region in Microsoft Azure where you want your Azure Container Instance to run.
Availability zones to select.
Select your Image Source, I selected Quickstart images of Microsoft, but you can also select your own Container image.
Then select the size for vcpu, memory, gpus for your Azure Container Instance application.
Click on Next for Networking.
I Selected Public for testing but here you can select private too
with your own DNS name Label with the
right ports and protocols.
At Advanced settings you can configure additional container properties and variables
here you can TAG the Owner of the Azure Container Instance.
Click on Review + Create.
Now you can Click Create or Download the template for Automation.
Have a look at the Options here what you can do with the Template from here.
Microsoft Azure Container Instance is Deployed and running.
Nginx Container Instance is running on Azure.
Now we have the Microsoft Azure Container Instance with Nginx running in the Cloud, we can see that in Windows Admin Center.
Azure Container Instance in Windows Admin Center in running state.
When you don’t need it anymore you can end it here or in the Azure Portal.
Azure Container Instance is stopped by Windows Admin Center.
Run your Own Azure Container Instances from the ACR via
Windows Admin Center.
Manage Kubernetes Clusters and Containers with Windows Admin Center
Azure Kubernetes Service (AKS) on Azure Stack HCI is an on-premises implementation of Azure Kubernetes Service, which automates running containerized applications at scale. Azure Kubernetes Service is available on Azure Stack HCI, Windows Server 2019 Datacenter, and Windows Server 2022 Datacenter, making it quicker to get started hosting Linux and Windows containers in your datacenter. This is the High Available Container Solution on-premises from Microsoft, where you can run Containers and microservices in a isolated way in your datacenter with your DevOps Team. But you can also make your Azure Stack HCI Cluster hybrid with Azure integration and Azure Arc Services to benefit of Azure Hybrid Services.
Create your Own locally Azure Stack HCI Cluster with Azure Kubernetes Services
Conclusion
Microsoft product team of Windows Admin Center | Windows Server | Azure Stack HCI are working hard to make the Windows Admin Center Tool better and better to install and manage Container / microservices solutions. With Microsoft Azure extensions in Windows Admin Center and Azure Arc Services, Microsoft features from the Azure Cloud becomes available for your Containers like Azure Defender for Cloud with Container Insights, Azure Monitor, Azure App Services and much more.
Windows Admin Center is a Great Server Manager tool for your Windows Servers in your Datacenter. Especially when you use Windows Server Core or Azure Stack HCI.
I Hope everyone had a Great Microsoft Build 2021 Online Conference this week. Microsoft announced a lot of new features and Hybrid Cloud Solutions at Build 2021 🙂 If you missed this Awesome Build 2021 event, you can watch the highlights on demand here.
DevOps and developers are increasingly using microservices-based architectures with containerized applications for agility and flexibility. Azure Arc extends the single control plane from Azure to enable you to build apps consistently across hybrid and multi-cloud environments. With this information I was thinking, can I connect Microsoft Azure Arc Services to my Surface Book 3 with Windows 10 Preview Insiders Build 21390 and Docker for Windows with Kubernetes Cluster 1.19.7 active?
IMPORTANT: The following step-by-step guide is for testing purpose only.
Installing Docker for Windows with Kubernetes Cluster on Windows 10
First you need to have Docker for Windows 10.
System requirements
Your Windows machine must meet the following requirements to successfully install Docker Desktop.
WSL 2 backend
Hyper-V backend and Windows containers
WSL 2 backend
Windows 10 64-bit: Home, Pro, Enterprise, or Education, version 1903 (Build 18362 or higher).
Enable the WSL 2 feature on Windows. For detailed instructions, refer to the Microsoft documentation.
The following hardware prerequisites are required to successfully run WSL 2 on Windows 10:
With docker desktop for Windows you can switch between Windows Containers and Linux Containers. When you want to have a Kubernetes Cluster on your Windows 10 device active you have to switch to Linux Containers in the taskbar like this :
It’s now active for Linux Containers. (Default)
Right Click on the Docker tray icon and go to Settings.
Then go to Kubernetes to enable your Cluster locally on your Windows 10 Device.
When you apply it take some minutes for the installation.
When you see the Kubernetes icon on green, then your Cluster is running.
When you do a lot of DevOps work you use Microsoft Visual Studio Code for Free, because here you can see your Kubernetes Cluster and try your own code or Apps.
Kubernetes Cluster is running locally on your Windows 10 device.
Installing Microsoft Azure Arc Agent
The next step is to install the Microsoft Azure Arc agent on your Windows 10 device.
Login in your Azure Subscription, if you don’t have one you can start here
Search for Azure Arc in your subscription.
Click on Servers and Click on Add.
Click on add a Single Server.
Click on Generate Script.
Prerequisites for the Azure Arc Agent.
Select your Azure Subscription and Resource Group
Choose your Region.
Operating System is Windows. ( your Windows10 device)
Click on Next.
More Features like Security, Monitoring, Automation :
Features for Kubernetes in Azure Arc Services.
Here you see in Visual Studio Code your Azure-Arc Helm Release.
Conclusion
“Learn how to write once and run anywhere using your preferred cloud-native application services. Ensure governance, compliance and security for your deployments, all through a single pane of glass management experience in Azure.”
With Microsoft Azure Arc Services you bring Azure Cloud Technology anywhere for your Apps, Containers, microservices.
I Hope this is a first start for exploring and testing your Hybrid Cloud solution. Wish you a lot of fun and happy coding 😉
Dapris an open source, portable, event-driven runtime that makes it easy for developers to build resilient, microservice, stateless and stateful applications that run on the cloud and edge. Dapr enables developers to focus on writing business logic and not solving distributed system challenges, thereby significantly improving their productivity, and reducing development time. Dapr lowers the bar for entry to build modern cloud native applications based on a microservices architecture and with this v1.0 release, Dapr applications can be deployed to self-hosted infrastructure or Kubernetes clusters in production scenarios.
Foreword byMark RussinovichAzure CTO and Technical FellowMicrosoft
With the wave of cloud adoption well underway, there is a major shift happening towards “cloud native” development, often built with microservice-architectures. These microservices are both stateless and stateful, and run on the cloud and edge, embracing the diversity of languages and frameworks available today. This enterprise shift is driven by both the market forces of faster time to market, as well as the scale and efficiencies of building services for the cloud. Even before COVID-19, cloud adoption was accelerating for enterprises and developers were being asked to do even more to deliver on building these distributed system applications, and that has only accelerated since. Developers in enterprises seek to focus on business logic, while leaning on platforms to imbue their applications with scale, resiliency, maintainability, elasticity, and the other attributes of cloud-native architectures, which is why there is also shift towards serverless platforms that hide the underlying infrastructure. Developers should not be expected to become distributed systems experts. This is where Dapr steps in to help you, whether you are building on infrastructure such as Kubernetes, or on a serverless platform.
Dapr is designed as an enterprise, developer-focused, microservices programming model platform with the mantra “any language, any framework, run anywhere”. It makes building distributed applications easy and portable across any infrastructure, from public-cloud, through hierarchical edge, and even down to single node IoT devices. It emerged from both our experiences building services in Azure as well as time spent working with customers building applications on Azure Kubernetes Service and Azure Service Fabric. Over and over, we saw common problems that they had to address. It became clear that there was a need to provide a “library” of common microservice best practices that developers could use, not only in new greenfield applications, but also to aid in the modernization of existing applications. In the containerized, distributed, and networked cloud native world, the sidecar model has emerged as the preferred approach, in the same way DLLs are preferred in the client/server generation. Using Dapr’s sidecar and APIs give you, as a developer, all the power of distributed systems functionality, with the ease of a single HTTP or gRPC local call.
To address the wide range of scenarios that developers face, Dapr provides features such as state management, service to service invocation, pub/sub and integration to external systems with I/O bindings, which are based on the triggers and bindings of Azure Functions. These in turn take advantage of Dapr’s component model which allows you to “swap out”, say different underlying state stores, without having to change any code, making code more portable, more flexible and allowing for experimentation of what best suits your needs. Developers don’t need to learn and incorporate service SDKs into their code, worry about authentication, secret management, retries or conditional code that targets specific deployment environments.
This book shows how Dapr reduces your development time and overall code maintenance by incrementally “Daperizing” the canonical .NET reference application, eShop. For example, in the original eShop implementation, significant amounts of code were written to abstract between Azure Service Bus and RabbitMQ for publishing events between services. All this code can be discarded and simply replaced with Dapr’s pub/sub API and component model which had an even wider range of pub/sub brokers, rather than just two. Dapr’s actor model, when used in the reworked eShop application, shows the ease of building long running, stateful, event driven, workflow applications with all the difficulties of concurrency and multi-threading removed. By the end of this book, you will see the drastic simplification that Dapr brings to your application development, and I firmly believe all developers embarking on a cloud native app building journey should leverage Dapr.
We publicly announced Dapr with the v0.1 release in Oct 2019 and now, a year and half later, I am thrilled to say that Dapr is ready for production usage with the v1.0 release. Getting Dapr to v1.0 has truly been a community effort. It has been amazing to see the open-source community coalesce around Dapr and grow since it was first announced – from 114 contributors in October 2019 to over 700 in early 2021 – a six-fold increase in 16 months! Contributions to the project have gone to every Dapr repo and have ranged from opening issues, commenting on feature proposals, providing samples, and of course contributing code. The parts of the project community members have contributed to the most include the Dapr runtime, docs, CLI, SDKs and the creation of a rich ecosystem of components. Maintaining this openness is critical to Dapr’s future.
Dapr is really just getting started, though, and you should expect to see more Dapr capabilities and more support for Dapr in Azure services. I hope that you will take advantage of Dapr to enable you to focus on your core business logic and accelerate your microservices development. I am are excited to have you join us in the Dapr community on this journey athttps://github.com/dapr/and on Discord https://aka.ms/dapr-discord.
Modern distributed systems are complex. You start with small, loosely coupled, independently deployable services. These services cross process and server boundaries. They then consume different kinds of infrastructure backing services (databases, message brokers, key vaults). Finally, these disparate pieces compose together to form an application.
Mark RussinovichAzure CTO and Technical FellowMicrosoft
Thank you Author; Rob Vettor, Sander Molenkamp and Edwin van Wijk for this Awesome E-book 😉