First published on MSDN on Mar 10, 2016
Authored by Jeffrey Chilberto
In this Azure Content Spotlight, I wanted to highlight microservices in Azure by highlighting some posts that do an excellent job defining microservices and how Azure supports the architectural style.
App Services - API and Logic Apps
In A BRIEF HISTORY OF CLOUD-BASED INTEGRATION IN MICROSOFT AZURE , Rob Callaway does a good job of introducing Api and Logic Apps and specifically how they provide a scalable framework for hosting microservices. This article is an excellent resource for getting your head around what Azure has to offer in regards to integration.
Recently Jeff Holan of the Azure Logic Apps team announced a refresh of the logic apps designer experience in Logic Apps Preview Reshresh released .
Probably the best resources for getting started with App Services and understanding their capabilities is still the App Service documentation with its videos, overviews and walk through guides.
In the Decmeber 2015 issue of Microsoft magazine , Cesar de la Torre , Kunal Deep Singh , Vaclav Turecek provide a great explanation of microservices in Microsoft Azure - Azure Service Fabric and the Microservices Architecture . In particular the following
You can think of microservices as “SOA done right,” with principles and patterns like autonomous services, Bounded-Context pattern and event-driven all having their roots in SOA and DDD.
The article provides a solid background of microservices and its advantages over building monolithic solutions. Equally as important, the article also provides context as to how emerging technologies have helped shape the move towards both stateless and stateful microservices.
Another excellent resource is the product documentation for Service Fabric . Mark Fussell does an excellent job providing an overview of microservices including its key capabilities and a comparison with a monolithic application approach. He refers to microservices as "fine-grained SOA".
At its simplest, the microservices design approach is about a decoupled federation of services, with independent changes to each and agreed-upon standards for communication.
For a high level context of Azure Service Fabric, InfoQ provides a good introduction in Introducing Azure Service Fabric .
Another approach to hosting microservices in Azure is using Docker. Mark Russinovick provides an excellent overview of docker and how it fits into Azure platform in his post Containers: Docker, Windows and Trends . In particular, Mark provides a solid explanation of how using containers increases the efficiency of hosting application over traditional VMs.
If you prefer videos, Bob Familiar and Kris Lankford delve into microservices and docker in the Micrsoft Virtual Academy series Exploring Microservices in Docker and Microsoft Azure . It is always interesting to get perspectives from Microsoft employees and industry professionals.
As microservices is a architectural style, I think it is important to note that the above is mostly about the technology behind delivering them. This could prove to be a bit dangerous to focus too much on technology as there is nothing to prevent someone from building a monolithic solution using any of the above albeit a bit less likely than with other technologies. One could argue that one of the shortcomings of SOA was some individuals struggled to separate SOAP from SOA. In other words there is nothing un-microservices about implementing well designed, fine grained, business focused services using the Azure Service Bus or Azure Cloud Apps.