Focus on § Mobile & web-based application architectures § Interoperability, cross-device § Pragmatic end-to-end solutions § Microsoft MVP for ASP.NET (Architecture) ASPInsider, AzureInsider § Google GDE for Web Technologies § [email protected] § @christianweyer Christian Weyer Moderne Software-Entwicklung 2 Episode 1: Flexible Microservices-Architekturen
but often monoliths § End-to-End functionality - includes business logic & UIs Why? 4 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
§ Feature flags § Gitflow § NoSQL § Node.js § No more than 20 lines of code in deployed service § AWS Lambda § Service Fabric Microservices are not… https://lostechies.com/jimmybogard/2016/06/03/what-microservices-is-not/ 9 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
Small § Autonomous Microservices are … https://lostechies.com/jimmybogard/2016/06/03/what-microservices-is-not/ 10 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
constrained to produce designs which are copies of the communication structures of these organizations.“ § Teams are created to solve a certain business problem § If you can afford it § If you can build those teams § Communication (inside and outside) is tough, though! One of the Core Ideas of Microservices https://lostechies.com/jimmybogard/2016/06/03/what-microservices-is-not/ 12 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
§ Use other services, like database or file system § (JSON-based) HTTPS Web APIs (REST?) § Application push services via WebSocket § SignalR § Socket.io (Well-known) Target Architecture HTTP HTTPS WebSocket Service A Service B Service C Web APIs (ASP.NET, Node.js, …) HTML5-Application (Single-Page Application) Web Cordova Electron Moderne Software-Entwicklung 14 Episode 1: Flexible Microservices-Architekturen
want to have your interfaces described / documented § Technical for tooling § Human readable § Swagger / OpenAPI may help Describing Web APIs 17 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
need to find services § Infrastructure should monitor service availability § E.g. with DNS, Consul § Consider discovery-as-a-service when running in a Cloud Registry, Discovery & Monitoring 18 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
to be consumed § Think about trusted subsystems where possible § Need to authenticate applications and users § Use token-based approaches § Separate authentication into its own microservice § Apply authorization logic in the functional microservices § Standards may help § OAuth2 § OpenID Connect Security 19 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
your hand § RabbitMQ as a broker-based system is a good option for many use cases § ZeroMQ may be your choice if you do not need a broker, but fast communication § Consider queue-as-a-service when running in a Cloud Messaging & Queuing 20 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
important changed § Push data from services to consumers, near realtime § Platform push § APNS § Windows Push Notification Services § Google Firebase Cloud Messaging § Use with PWAs § Application push § WebSockets, e.g. with SignalR Push 21 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
rules J § Pick and choose wisely, really § There are not a lot of Netflix, Facebooks, Twitters out there § Do not over-complicate! Pragmatic == Use-Case-driven 25 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen
Async communication between microservices may create new challenges § Cloud platforms like Azure or AWS offer microservices-optimized deployment models and runtimes § BUT: What about client applications? UIs? Preliminary Summary 27 Moderne Software-Entwicklung Episode 1: Flexible Microservices-Architekturen