![Page 1: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/1.jpg)
MicroservicePOST MONOLITH ARCHITECTURE
![Page 2: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/2.jpg)
Jindřich Kubá[email protected]@techitouch
![Page 3: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/3.jpg)
![Page 4: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/4.jpg)
![Page 5: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/5.jpg)
![Page 6: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/6.jpg)
Microservice architektura
• Podskupina SOA
• Vyčlenění části business logiky do samostatné služby
• MS je plně logovaná, zdokumentovaná, otestovaná a kdykoliv jednoduše
nasaditelná
• Služba má typicky REST rozhraní a kompletně oddělenou infrastrukturu
![Page 7: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/7.jpg)
Výhody MSA
•Dekompozice složitého problému na menší části
•Výrazné zjednodušení problému napomáhá udržet kód velmi jednoduchý a přehledný
•Každá MS může být (a často je) napsaná v jiném jazyku
•Architektura pomáhá udržet aplikaci vysoce dostupnou
•Nasazení změn trvá typicky v řádech jednotek minut
•Podporuje agilní vývoj a růst teamu
![Page 8: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/8.jpg)
![Page 9: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/9.jpg)
MS – Nutné předpoklady
•Dokumentace
•Testy
•Server provisioning
•Continuous delivery
•Service discovery
•Monitoring, alerting
•Distribuované úložiště
![Page 10: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/10.jpg)
Dokumentace
•Apiary
•Readme file
•Postman
•Metafiles
![Page 11: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/11.jpg)
Testy
Unit testy, funkční testy, akceptační testy
•Dred
•Unit testy
•Funkční testy
•Akceptační testy
![Page 12: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/12.jpg)
Server provisioning
Rychlá příprava prostředí pro běh aplikace, nebo její komponenty
•Chef
•Ansible
•Puppet
•Docker
![Page 13: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/13.jpg)
Continuous delivery
Automatizovaný deployment / rollback na všechny prostředí
•Bamboo
•Gitlab CI
•Jenkins
•Heroku
![Page 14: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/14.jpg)
Service discoveryDynamické vyhledání služby dle jejího názvu, často ve spojení s load balancerem
•ZooKeeper
•Etcd
•Consul
![Page 15: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/15.jpg)
Monitoring, alertingMonitorování stavu jednotlivých služeb, serverů
•ElasticSearch + Kibana
•Nagios, Sensu, Zabbix
•Consul
•Dynatrace
![Page 16: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/16.jpg)
Distribuované úložištěRychlé, odolné proti selhání a škálovatelné úložiště.
•Redis
•Riak
•MongoDB
•Cassandra
![Page 17: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)](https://reader031.vdocuments.pub/reader031/viewer/2022021919/58728ac91a28ab36118b5081/html5/thumbnails/17.jpg)
ZávěrZISK
Jednoduchost
Škálovatelnost
Vysoká odolnost vůči výpadkům
Rychlé změny
Rychlá analýza a odstranění problému
Nezávislé teamy
ZTRÁTA
Výrazně vyšší komplexnost řešení
Nutnost zavést nové postupy a technologie
Ztráta přehledu závislostí
Nutnost vyšších investic do HW
Duplikace kódu