Microservices

A microservice architecture – a variant of the service-oriented architecture (SOA) structural style – arranges an application as a collection of loosely-coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. The goal is that teams can bring their services life independent of others. Loose coupling reduces all types of dependencies and the complexities around it, as service developers do not need to care about the users of the service, they do not force their changes onto users of the service.
Kilde: Wikipedia

Mikrotjenester er en type tjeneste-orientert arkitektur. På samme måte som Scrum er en stil eller type innen Agile Metoder så er mikrotjenester en stil innen tjenseste-orientert arkitektur.

Kjennetegn

Tjenestene er avhengige av hverandre på kryss og tvers. Selv om bare en tjeneste går ned, vil dette ofte ha en effekt på mange andre tjenester som bruker denne.

Fordeler

Uavhengige deploys. Dette er blant de største fordelene med mikrotjenester.

Mikrotjenester klarifiserer strukturen til et informasjonssystem
Mikrotjenester kjøper deg muligheter
Mikrotjenester legger til rette for autonome team

Ulemper

Distribuerte systemer er vanskelige

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.” — Leslie Lamport.

Monitorering av mikrotjenester er komplekst
Ved sikkerhetshull må alle mikrotjenester patches

Relaterte notater

Sagas holder styr på komplekse sekvenser i programvare
Logging i mikrotjenester bør aggregeres
Mikrotjenester bør versjoneres semantisk
Endepunkter bør versjoneres i header
Utviklerteam bør være stream-aligned
Duplisering i mikrotjenester

Notater fra talks

Information Patterns in Microservices
Microservices Workshop