Microservices and modern backends - Azure Meetup Frankfurt

Download Microservices and modern backends  - Azure Meetup Frankfurt

Post on 18-Feb-2017




0 download

Embed Size (px)


<p>PowerPoint Presentation</p> <p>Azure Frankfurt </p> <p>Damir DobricArmin KalajdzijaIndraneel Pole</p> <p>#azuremeetupfrankfurt</p> <p>Microservices Modern Backends&amp; Co.Damir Dobric</p> <p>damir.dobric@daenet.comb-dadobr@microsoft.comMicrosoft PTSP (Partner Technical Solution Specialist)Microsoft Most Valuable Professional</p> <p>BlogTwitter@ddobric#azuremeetupfrankfurtdevelopers.de </p> <p>3</p> <p>Microservices: What to expect?</p> <p>Amount of problems in universe is a constant number</p> <p>What is a Service?Service is a valuable action, deed, or effort performed to satisfy a need or to fulfill a demand. Service</p> <p>What is SOA?Service orientation is a means for integrating across diverse systems</p> <p>System 1System 2System 3</p> <p>6</p> <p>Microservices ApproachMicroservices 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</p> <p>Service 1Service 3Service 2All services build ONE system.</p> <p>Microservices ist ein (neuer) Architektur Style eine Anwendung als Gruppe von kleinen (micro), voneinander in Entwicklung und Deployment isolierten, Services zu entwickeln.</p> <p>7</p> <p>Scale Cube</p> <p>X = Loadbalancing scaleY = Functional ScaleZ = Data Partitioning</p> <p>X-Scale (Loadbalancing)Node1Node 2Node N</p> <p>. . .DBShare traffic across multiple nodes is easy.Relational DB scales vertically only. Horizontal scale is very difficult.</p> <p>Z-Scale (Data Partitioning)Tire 1DB2Customers 0-10000</p> <p>DB1Customers 10001-Tire 1DB2Tenant 2DB1Tenant 1</p> <p>Melvin Conways LowOrganizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations</p> <p>Wikipedia, James Lewis + Martin Fowler</p> <p>Three+ Tire Architecture</p> <p>Result of organization described by Conways low Dont panic! Architecture is ok. But, Organization tends to produce monolithics based on this architecture.</p> <p>Microservice = Y-ScalePurchasingOrder Tracking</p> <p>. . .DBMicroservice</p> <p>Feature NDBDB. . .Microservice</p> <p>API Gateway</p> <p>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</p> <p>Issues with Monoliths?</p> <p>This is typically 1 Binaryi.e.: mdw.dll(I)You cannot combine technologies if you use binary dependency !(II)Increasing number of features slows down flexibility</p> <p>(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. . .</p> <p>Think (mycro)</p> <p>N-Tire is Ok, butMonolith is NOT ok!Organize Application in Smaller independent (micro) componentsIf Components have to exchange information define them as services.</p> <p>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 </p> <p>Integration StylesFile TransferShared DatabaseRemote Procedure InvocationMessagingRelaying (messaging + rpc)http://www.eaipatterns.com/toc.html</p> <p>API StylesRemote Procedure Call (RPC)DoSomething()Blocking (SYNC) CallRSTRepresentation State TransferSpelled as ReSTPUT/GET/POST,..Blocking (SYNC) CallMessagingCommunication with help of broker.</p> <p>20</p> <p>Technologies which helps -designREST API StyleWebApi (Recommended)WCF (Not recommended)Message API StyleAzure Service BusNative MessagingDurable Task FrameworkTransparent MessagingCoded OrchestrationsAzure App ServiceWeb-App, API-App, Logic-AppService FabricDocker </p> <p>Azure App Services</p> <p>DEMO Service Bus</p> <p>Demo - HoloTwin</p> <p>DEMO Hybrid Relay</p> <p>DEMO Durable Task Framework</p> <p>What did we learn today?</p> <p>We still have to hammer </p> <p>Microservices(Azure App Services &amp; Co.)DAMIR DOBRIC</p> <p>damir.dobric@daenet.comb-dadobr@microsoft.comMicrosoft PTSP (Partner Technical Solution Specialist)Microsoft Most Valuable Professional</p> <p>BlogTwitter</p> <p>Q &amp; A</p> <p>29</p>