GESAMTBILD MICROSERVICES DESIGN, ENTWICKLUNG, BETRIEB, MESSUNG, MONITORING, ALERTING Róbert Bräutigam, MATHEMA So ware GmbH. 1 INHALT Warum überhaupt Microservices und DevOps? So ware Design Entwicklung Packaging Testing Rollout Monitoring Alerting 2 WARUM ÜBERHAUPT? Monolitische Deployments werden immer Legacy Systeme Auch wenn sie am Anfang schön sind Kommunikationsbarrieren verlangsamen Manuelle Prozesse sind langsam und instabil Lösung: Kleine Deployments Schön, aber wenn nicht, einfach ersetzbar Ein Team für alles, keine Barrieren Alles automatisiert 3 SOFTWARE DESIGN So wenig Dependencies wie nur möglich! Abgekapselt und ausführbar Alle Services können unterschiedliche Technologien einsetzen Wenn doch die meisten Java machen, Clients anbieten Protocol Client Server 4 ENTWICKLUNG JayWire: "Dependency Injection" Spark: Web Hystrix: Reliability 5 PACKAGING Archiv starten mit java -jar Alle abhängigkeiten bundlen! Nicht nur Jars, sondern JDK, OS, Einstellungen etc. Docker 6 DOCKER Image Beinhaltet Repository Beinhaltet Registry Aus Container 7 WIRD LANGSAM ZU VIEL... Zeit für Automatisierung 8 TESTING Funktionale Tests Update Tests Rollback Tests ... Performance Tests (Gatling) 9 WIRD LANGSAM ZU VIEL... Zeit für Pipelines 10 ROLLOUT Continuous deployment: immer am Ende Deployen Nicht nur Produktion, sondern: Development, Test Umgebungen, usw. Rollback einbauen! Technologien: Ansible Puppet (Docker) 11 MONITORING Infrastruktur Inhaltlich Technologien: ELK Stack: ElasticSearch, LogStash, Kibana Alternativ: Graphite Alternativ: Grafana 12 ALERTING Watcher (schön, aber Bezalso ware) ElastAlert (keine GUI, von Yelp!) 13 DISKUSSION, FRAGEN? 14 DANKE! Robert Bräutigam, MATHEMA So ware GmbH. 15