Published on November 24, 2016
1. Azure Frankfurt Damir Dobric Armin Kalajdzija Indraneel Pole #azuremeetupfrankfurt
2. Microservices Modern Backends& Co. Damir Dobric firstname.lastname@example.org email@example.com Microsoft PTSP (Partner Technical Solution Specialist) Microsoft Most Valuable Professional Blog Twitter @ddobric #azuremeetupfrankfurt developers.de
3. Microservices: What to expect? “Amount of problems in universe is a constant number”
4. What is a “Service”? Service is a valuable action, deed, or effort performed to satisfy a need or to fulfill a demand. Service
5. What is SOA? “Service orientation is a means for integrating across diverse systems” System 1 System 2 System 3
6. Microservices Approach “Microservices is an (trendy) Architektur Style to design a single complex application as a group of small (micro) services, which are independend in development and deployment“ Service 1 Service 3 Service 2 All services build ONE system.
7. Scale Cube X = Loadbalancing scale Y = Functional Scale Z = Data Partitioning
8. X-Scale (Loadbalancing) Node1 Node 2 Node N. . . DB Share traffic across multiple nodes is “easy”. Relational DB scales vertically only. Horizontal scale is very difficult.
9. Z-Scale (Data Partitioning) Tire 1 DB2 Customers 0-10000 DB1 Customers 10001-… Tire 1 DB2 Tenant 2 DB1 Tenant 1
10. Melvin Conway’s Low “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Wikipedia, James Lewis + Martin Fowler
11. Three+ Tire Architecture Result of organization described by Conway’s low Don’t panic! Architecture is ok. But, Organization tends to produce monolithics based on this architecture.
12. Microservice = Y-Scale Purchasing Order Tracking . . . DB Microservice Feature N DB DB . . . Microservice
13. API Gateway These are Microservices. They are typically used inside of enterprise boundary. But, these is not a Microservice. It is publicly accessable service used for integration (SOA), which consumes and orchestrates Microservices
14. Issues with Monoliths? This is typically 1 Binary i.e.: mdw.dll (I) You cannot combine technologies if you use binary dependency ! (II) Increasing number of features slows down flexibility (III) Growing application increases complexity. Growing across multiple features means exponential complexity. (IV) Growing application can slow down performance (V) Growing application make maintenance more complex (VI) Cannot replace application (or parts) prevents of using of innovations. (VII) Application Replacement “impossible” . . .
15. Think “µ“ (mycro) N-Tire is Ok, but Monolith is NOT ok! Organize Application in Smaller independent (micro) components If µComponents have to exchange information define them as services.
16. Issues with Microservices Developers must be more operation focused due increased complexity. More discipline required in development, documentation and deployment Increased Dependencies Multiple Versions of Services side by side (code immutability) More complex test requirements Every system is distributed system Communication between services is slower (network) Transaction compensation is more complex
17. Integration Styles File Transfer Shared Database Remote Procedure Invocation Messaging Relaying (messaging + rpc) http://www.eaipatterns.com/toc.html
18. API Styles Remote Procedure Call (RPC) DoSomething() Blocking (SYNC) Call RST Representation State Transfer Spelled as “ReST” PUT/GET/POST,.. Blocking (SYNC) Call Messaging Communication with help of broker.
19. Technologies which helps “µ-design“ REST API Style WebApi (Recommended) WCF (Not recommended) Message API Style Azure Service Bus Native Messaging Durable Task Framework Transparent Messaging Coded Orchestrations Azure App Service Web-App, API-App, Logic-App Service Fabric Docker
20. Azure App Services
21. DEMO – Service Bus
22. Demo - HoloTwin
23. DEMO – Hybrid Relay
24. DEMO – Durable Task Framework
25. What did we learn today?
26. We still have to hammer
27. Microservices (Azure App Services & Co.) DAMIR DOBRIC firstname.lastname@example.org email@example.com Microsoft PTSP (Partner Technical Solution Specialist) Microsoft Most Valuable Professional Blog Twitter CloudAppsCloud CloudConsultingCloudAppsMiddlewareCloudAppsMiddlewareSoftware Q & A