Upload
pehapkari
View
305
Download
1
Embed Size (px)
Citation preview
MicroservicePOST MONOLITH ARCHITECTURE
Jindřich Kubá[email protected]@techitouch
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
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
MS – Nutné předpoklady
•Dokumentace
•Testy
•Server provisioning
•Continuous delivery
•Service discovery
•Monitoring, alerting
•Distribuované úložiště
Dokumentace
•Apiary
•Readme file
•Postman
•Metafiles
Testy
Unit testy, funkční testy, akceptační testy
•Dred
•Unit testy
•Funkční testy
•Akceptační testy
Server provisioning
Rychlá příprava prostředí pro běh aplikace, nebo její komponenty
•Chef
•Ansible
•Puppet
•Docker
Continuous delivery
Automatizovaný deployment / rollback na všechny prostředí
•Bamboo
•Gitlab CI
•Jenkins
•Heroku
Service discoveryDynamické vyhledání služby dle jejího názvu, často ve spojení s load balancerem
•ZooKeeper
•Etcd
•Consul
Monitoring, alertingMonitorování stavu jednotlivých služeb, serverů
•ElasticSearch + Kibana
•Nagios, Sensu, Zabbix
•Consul
•Dynatrace
Distribuované úložištěRychlé, odolné proti selhání a škálovatelné úložiště.
•Redis
•Riak
•MongoDB
•Cassandra
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