17
Microservice POST MONOLITH ARCHITECTURE

Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)

Embed Size (px)

Citation preview

Page 1: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)

MicroservicePOST MONOLITH ARCHITECTURE

Page 2: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)

Jindřich Kubá[email protected]@techitouch

Page 3: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)
Page 4: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)
Page 5: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)
Page 6: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)

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)

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)
Page 9: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)

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)

Dokumentace

•Apiary

•Readme file

•Postman

•Metafiles

Page 11: Jindřich Kubát - Microservice – Post Monolith Architecture (11. sraz přátel PHP v Praze)

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)

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)

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)

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)

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)

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)

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