Modern Apps and Microservices
The Modern Application enables users to interact with information and people anywhere on any device. It scales resiliently and adapts to its environment. It is designed, architected, and developed using modern frameworks, patterns and methodologies. In conjunction with these new user experiences is the need to connect to and interact with a variety of online services that provide information and transactions in a scalable, resilient and cross platform way. This session delves into an emerging approach to service architecture called Microservices where applications are composed of autonomous, independently deployed, scaled, and managed services. This approach to service architecture along with the benefits of cloud platforms provides the scalable, resilient, cross platform foundation necessary for modern applications. This session will provide an overview of Microservices, define a logical architecture, and outline cloud deployment scenarios. A Microservice reference implementation will be used to provide a live demonstration highlighting how a one can use combinations of ASP.NET Web API, Redis and DocumentDb, Service Bus and Event Hub, Streaming Analytics, SQL Database and API Management to create a highly scalable Microservices.
I am really looking forward to have Bob speak to the group on this topic. I know Bob has been speaking on this topic at various locations, including the Boston Code Camp 23 recently, but I haven't had a chance to catch it. If you are in the area, you are welcome to join us for a great discussion.
Updated 4/16/2015 with my own take away notes:
It was a pleasant surprise that Bob spoke on Microservices AND IoT, not just Microservices. I think with the extra time (2 hours instead of 70 minutes) we got a lot more great information and lots of great discussions than what was available at the recent Boston Code Camp if you saw that presentation.
1. It takes some effort to move to Microservices if you are not set up for it. It takes a full commitment (there are examples out there by Martin Fowler, etc., though, of ways to segment parts of your system as you move toward the end goal).
2. Your Domain Driven Design (DDD) layers can still be useful if you divide at the seams properly.
3. Automate, automate, automate - this can't be stressed enough.
4. IoT is not so much about devices, but more about the massive amounts of data collected and how businesses can utilize that data to make decisions.
5. There are several books recommended. Dust off the DDD book - it is still useful. The 8th chapter of the Lean Enterprise book is the most useful (per Bob's opinion), and the new Building Microservices book is most recommended.