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

Post on 09-Jan-2017

304 views 1 download

transcript

MicroservicePOST MONOLITH ARCHITECTURE

Jindřich Kubátjindrich.kubat@mall.cz@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