Mikropalveluarkkitehtuuri

Mikropalveluarkkitehtuuri  on muunnos palvelukeskeisestä ohjelmistoarkkitehtuurista, jonka tavoitteena on vuorovaikuttaa mahdollisimman pienet, löyhästi kytketyt ja helposti muunnettavat moduulit - mikropalvelut , joka yleistyi 2010-luvun puolivälissä ketterien kehityskäytäntöjen ja DevOps -kehityksen yhteydessä [1] . [2] [3] .

Kun perinteisissä palvelukeskeisissä arkkitehtuureissa moduulit voivat olla itsessään varsin monimutkaisia ​​ohjelmistojärjestelmiä ja niiden välinen vuorovaikutus perustuu usein standardoituihin raskaan sarjan protokolliin (kuten SOAP , XML-RPC ), kun taas mikropalveluarkkitehtuurissa järjestelmät rakennetaan komponenteista, jotka toimivat suhteellisen hyvin. perustoiminnot ja vuorovaikutus käyttämällä kustannustehokkaita verkkokommunikaatioprotokollia ( REST -tyyli käyttäen esim. JSON , Protocol Buffers , Thrift ). Moduulien tarkkuutta lisäämällä arkkitehtuuri pyrkii vähentämään kytkentäastetta ja lisäämään liitettävyyttä , mikä helpottaa toimintojen lisäämistä ja vaihtamista järjestelmään milloin tahansa [4] .

Ominaisuudet

Mikropalveluarkkitehtuurille ominaiset ominaisuudet [1] :

Mikropalvelufilosofia itse asiassa kopioi Unix-filosofiaa , jonka mukaan jokaisen ohjelman pitäisi "tehdä yksi asia ja tehdä se hyvin" ja olla vuorovaikutuksessa muiden ohjelmien kanssa yksinkertaisilla tavoilla: mikropalvelut ovat minimaalisia ja omistettu yhdelle toiminnolle. Tärkeimmät muutokset tässä suhteessa kohdistuvat organisaatiokulttuuriin, johon tulee sisältyä kehityksen ja testauksen automatisointi sekä suunnittelukulttuuri, jonka edellytetään varaavan aikaisempien virheiden kiertokulkua, mahdollisuuksien mukaan vanhan koodin poissulkemista. (mikropalvelut korvataan usein kokonaan, koska niiden toiminnot ovat alkeellisia).

Suosituin ympäristö mikropalveluiden pyörittämiseen ovat konttipohjaiset sovellustenhallintajärjestelmät (kuten Kubernetes ja sen lisäosat OpenShift ja CloudFoundry , Docker Swarm , Apache Mesos ), jolloin jokainen mikropalvelu on yleensä eristetty erilliset kontit tai pienryhmäkontit, jotka ovat verkon kautta muiden mikropalveluiden ja ulkopuolisten kuluttajien käytettävissä ja joita hallinnoi orkestrointiympäristö, joka tarjoaa vikasietoisuuden ja kuormituksen tasapainotuksen. Tyypillinen käytäntö on sisällyttää ajonaikaiseen silmukkaan jatkuva integrointijärjestelmä mikropalvelujen päivityksen ja käyttöönoton automatisoimiseksi.

Historia

Vaikka termi "mikropalvelut" on ollut käytössä 2000-luvun puolivälistä lähtien, konseptin alkuperä juontaa juurensa vuosittaiseen ohjelmistoarkkitehtien työpajaan Venetsiassa 2011. Vuonna 2012 mikropalveluita esiteltiin 33d Degree -konferenssissa Krakovassa, ja siellä julkaistiin myös useita julkaisuja "granular SOA:sta", jotka esittelivät mikropalvelulähestymistapaa. Vuosina 2012-2014 mikropalveluiden käyttöönotosta omassa ohjelmistokehityksessään ilmoittivat mm. Amazonin , Netflixin , Twitterin asiantuntijat , vuodesta 2015 lähtien mikropalveluarkkitehtuuria koskevia kirjoja on julkaistu säännöllisesti johtavissa kustantamoissa, useita säännöllisiä konferensseja järjestetään kokonaan. omistettu mikropalveluille.

Kritiikki

Arkkitehtuuria on kritisoitu jatkuvasti sen muodostumishetkestä lähtien, ja sen toteutuksen aikana esiin tulevista uusista ongelmista mainitaan:

Muistiinpanot

  1. 12 Martin Fowler . mikropalvelut . martinfowler.com (10. maaliskuuta 2014). Haettu 29. kesäkuuta 2016. Arkistoitu alkuperäisestä 14. helmikuuta 2018.
  2. Balalaie, A.; Heydarnoori, A.; Jamshidi, P. Microservices-arkkitehtuuri mahdollistaa DevOps:n siirron pilvipohjaiseen arkkitehtuuriin   // IEEE Software : päiväkirja. - 2016. - 1. toukokuuta ( nide 33 , nro 3 ). - s. 42-52 . — ISSN 0740-7459 . - doi : 10.1109/MS.2016.64 .
  3. Jatkuva käyttöönotto: strategiat . Haettu 7. lokakuuta 2016. Arkistoitu alkuperäisestä 9. lokakuuta 2016.
  4. Oliver Wolf. Johdatus mikropalveluihin . Haettu 29. kesäkuuta 2016. Arkistoitu alkuperäisestä 11. kesäkuuta 2016.
  5. 12. tammikuuta Stenberg . Kokemuksia epäonnistumisesta mikropalveluiden kanssa (11. elokuuta 2014). Haettu 29. kesäkuuta 2016. Arkistoitu alkuperäisestä 3. maaliskuuta 2016.

Kirjallisuus