{"id":31761,"date":"2019-10-31T21:42:55","date_gmt":"2019-10-31T18:42:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\/"},"modified":"2019-10-31T21:42:55","modified_gmt":"2019-10-31T18:42:55","slug":"mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","title":{"rendered":"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>19 september in Moskou <noindex><a rel=\"nofollow\" href=\"https:\/\/www.meetup.com\/HighLoad-User-Group\/events\/254238096\/\">heeft plaatsgevonden<\/a><\/noindex> de eerste thematische meetup HUG (Highload++ User Group), die gewijd was aan microservices. Hier werd de lezing \"Exploiteren van microservices: de grootte doet er toe, zelfs als je Kubernetes hebt\" gepresenteerd, waarin we onze uitgebreide ervaring van het bedrijf \"Flant\" deelden op het gebied van het exploiteren van projecten met microservice-architectuur. Deze lezing is vooral nuttig voor alle ontwikkelaars die overwegen deze aanpak toe te passen in hun huidige of toekomstige project.<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/5d84197eef093da02b3db2156841e644.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVoorstellen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=g9cgppj0gKQ\"><b>de video van de presentatie<\/b><\/a><\/noindex> (50 minuten, veel informatiever dan een artikel), evenals de belangrijkste samenvatting in tekstvorm.<\/p>\n<p><i>NB: Video en presentatie zijn ook aan het einde van deze publicatie beschikbaar.<\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Inleiding<\/h2>\n<p>\nEen goed verhaal heeft meestal een inleiding, een hoofdverhaal en een conclusie. Deze lezing lijkt meer op een inleiding, en dan nog een tragische. Het is ook belangrijk op te merken dat hierin een blik op microservices wordt gepresenteerd vanuit <i>uitbuiting<\/i>.<\/p>\n<p>Ik begin met deze grafiek, waarvan de auteur (in 2015) <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/MicroservicePremium.html\">werd<\/a><\/noindex> Martin Fowler:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/f0cc0e00f32f5ea0a736e09fd20eaa85.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHierop is te zien dat in het geval van een monolithische applicatie, zodra deze een bepaalde grootte heeft bereikt, de productiviteit begint te dalen. Microservices onderscheiden zich doordat de initi\u00eble productiviteit lager is, maar naarmate de complexiteit toeneemt, is de degradatie van de effectiviteit minder merkbaar.<\/p>\n<p>Ik zal deze grafiek aanvullen voor het geval van gebruik van Kubernetes:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/1b83f03639324c610a84bfd434317f48.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWaarom is de microservices-app beter geworden? Omdat zo'n architectuur serieuze eisen stelt aan de architectuur, die op hun beurt uitstekend worden gedekt door de mogelijkheden van Kubernetes. Aan de andere kant zal een deel van deze functionaliteit ook nuttig zijn voor de monolith, vooral omdat de typische monolith van vandaag de dag niet helemaal een monolith is (details zullen later in de lezing worden besproken).<\/p>\n<p>Zoals te zien is, verschilt de uiteindelijke grafiek (wanneer zowel monolithische als microservices-applicaties in een infrastructuur met Kubernetes worden gebruikt) niet veel van de oorspronkelijke. Vervolgens zal het gaan over applicaties die worden ge\u00ebxploiteerd met behulp van Kubernetes.<\/p>\n<h2>Nuttige en schadelijke microservices<\/h2>\n<p>\nEn hier is de belangrijkste gedachte:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/c555e5fbdf09e4bb2be17fad23b8ff6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWat is <b>een normale<\/b> microservice-architectuur? Het moet u echte voordelen bieden door de effici\u00ebntie van het werk te verhogen. Als we terugkijken naar de grafiek, dan is dit het:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/c27a7af10812580f0543888256a0e698.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAls je het een <b>nuttige<\/b>noemt, dan staat aan de andere kant van de grafiek <b>schadelijke<\/b> microservices (belemmert het werk):<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/27a7298bd8f877b2bc69d19378a542e2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTerugkomend op de 'hoofdgedachte': is het \u00fcberhaupt de moeite waard om mijn ervaring te vertrouwen? Sinds het begin van dit jaar heb ik gekeken <b>85 projecten<\/b>. Niet allemaal waren ze microservices (ongeveer een derde tot de helft had deze architectuur), maar het is nog steeds een groot aantal. Wij (bedrijf 'Flant') als outsourcers krijgen de kans om een breed scala aan applicaties te zien, ontwikkeld in zowel kleine bedrijven (met 5 ontwikkelaars) als in grote (~500 ontwikkelaars). Een extra pluspunt is dat we kunnen zien hoe deze applicaties zich door de jaren heen ontwikkelen en evolueren.<\/p>\n<h2>Waarom microservices?<\/h2>\n<p>\nOp de vraag naar de voordelen van microservices is er <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/microservice-trade-offs.html\">een heel specifiek antwoord<\/a><\/noindex> van de eerder genoemde Martin Fowler:<\/p>\n<ol>\n<li> duidelijke grenzen van modulariteit;<\/li>\n<li> onafhankelijk deployen;<\/li>\n<li> vrijheid om technologie\u00ebn te kiezen.<\/li>\n<\/ol>\n<p>\nIk heb veel gesproken met softwarearchitecten en ontwikkelaars en hen gevraagd waarom ze microservices nodig hebben. En ik heb mijn lijst van hun verwachtingen samengesteld. Dit is het resultaat:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/e9fa2f1a03da2017e90c5f952b752187.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAls ik sommige punten 'in gevoelens' zou beschrijven, dan:<\/p>\n<ul>\n<li> duidelijke grenzen van modules: hier hebben we een verschrikkelijke monoliet, en nu zal alles netjes worden verdeeld over Git-repositories, waarin alles 'op de planken' ligt, niet gemengd warm met zacht;<\/li>\n<li> onafhankelijkheid van deployment: we kunnen services onafhankelijk uitrollen, zodat de ontwikkeling sneller kan verlopen (parallell publiceren van nieuwe functies);<\/li>\n<li> onafhankelijkheid van ontwikkeling: we kunnen deze microservice aan het ene team\/ontwikkelaar toewijzen, en dat team aan een ander, zodat we sneller kunnen ontwikkelen;<\/li>\n<li> b<i>groter publiek.<\/i>grotere betrouwbaarheid: als er zich een gedeeltelijke degradatie voordoet (\u00e9\u00e9n microservice uit 20 valt weg), dan stopt alleen \u00e9\u00e9n knop met werken, terwijl het systeem als geheel blijft functioneren.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Typische (schadelijke) microservicesarchitectuur<\/h2>\n<p>\nOm uit te leggen waarom in de praktijk alles niet zo is als we verwachten, zal ik een <i>gecombineerd<\/i> beeld van Microservices-architectuur presenteren, gebaseerd op ervaring uit vele verschillende projecten.<\/p>\n<p>Een voorbeeld is een abstracte online winkel die in de competitie wil gaan met Amazon of in ieder geval met OZON. De microservicesarchitectuur ziet er als volgt uit:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/3b85936587109631d16882a52dd1b310.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOm verschillende redenen zijn deze microservices op verschillende platforms geschreven:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/e145b212a83814218add965ce26b3fed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAangezien elke microservice autonomie moet hebben, hebben velen hun eigen database en cache nodig. De uiteindelijke architectuur ziet er als volgt uit:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/299b2ac7b6956e295c3d59210955e5e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Wat zijn de gevolgen?<\/h2>\n<p>\nBij Fowler gaat het hierover <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/microservice-trade-offs.html\">over de 'prijs' voor het gebruik van microservices:<\/a><\/noindex> Laten we zien of onze verwachtingen zijn waargemaakt.<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/50fc6ac602cb2eb8383d2103101c01ce.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuidelijke grenzen tussen modules...<\/p>\n<h3>hoeveel microservices moeten we in feite aanpassen<\/h3>\n<p>\nMaar <b>, om de wijziging door te voeren? Kunnen we eigenlijk begrijpen hoe alles werkt zonder een gedistribueerde tracer (immers, elke aanvraag wordt door de helft van de microservices verwerkt)?<\/b>Er bestaat een patroon van '<\/p>\n<p>een grote klomp vuil<noindex><a rel=\"nofollow\" href=\"http:\/\/www.laputan.org\/mud\/\">', en hier is het zelfs een gedistribueerde klomp vuil geworden. Ter bevestiging - hier is een schematische illustratie van hoe aanvragen zich voortbewegen:<\/a><\/noindex>Onafhankelijkheid van deployen...<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/c91086409c06f5a76b1f76bec30b737d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Technisch gezien is dat bereikt: we kunnen elke microservice afzonderlijk opnieuw uitrollen. Maar in de praktijk moeten we in gedachten houden dat altijd<\/h3>\n<p>\nmeerdere microservices worden uitgerold <b>, en we moeten rekening houden met<\/b>de volgorde van hun uitrol <b>. Voornamelijk zouden we in feite in een afzonderlijke keten moeten testen of we de release in de juiste volgorde uitrollen.<\/b>Vrijheid van technologiekeuze...<\/p>\n<h3>Die is er. Maar we moeten ons realiseren dat vrijheid vaak aan de rand van chaos ligt. Het is erg belangrijk om technologie\u00ebn niet te kiezen alleen om er 'mee te spelen'.<\/h3>\n<p>\nOnafhankelijkheid van ontwikkeling...<\/p>\n<h3>Hoe maak je een testomgeving voor de hele applicatie (uit zoveel componenten)? En bovendien moet deze actueel worden gehouden. Dit leidt ertoe dat<\/h3>\n<p>\nhet werkelijke aantal testomgevingen <b>, dat we in principe kunnen onderhouden,<\/b>minimaal blijkt te zijn. <b>En om dit alles lokaal te implementeren?.. Het blijkt dat de ontwikkelaar vaak onafhankelijk werkt, maar 'op goed geluk', omdat hij geduldig moet wachten tot er ruimte komt voor het testen.<\/b>.<\/p>\n<p>Gescheiden schaalbaarheid...<\/p>\n<h3>Ja, maar het is beperkt in de gebruikt databasesystemen. In het gegeven architectuurvoorbeeld zal Cassandra geen problemen ondervinden, maar MySQL en PostgreSQL zullen dat wel.<\/h3>\n<p>\nB<\/p>\n<h3>etere betrouwbaarheid...<i>groter publiek.<\/i>Het is niet alleen zo dat een storing van \u00e9\u00e9n microservice vaak het correcte functioneren van het hele systeem verstoort, maar er is ook een nieuw probleem:<\/h3>\n<p>\nelke microservice uitvallen is erg moeilijk <b>. Omdat er verschillende technologie\u00ebn (memcache, Redis, enz.) in microservices worden gebruikt, moet voor elk alles goed doordacht en ge\u00efmplementeerd worden, wat natuurlijk mogelijk is, maar enorme middelen vereist.<\/b>. Omdat in microservices verschillende technologie\u00ebn worden gebruikt (memcache, Redis, enz.), moet voor elk alles goed worden doordacht en uitgevoerd, wat natuurlijk mogelijk is, maar enorme middelen vereist.<\/p>\n<h3>Meetbaarheid van belasting\u2026<\/h3>\n<p>\nHier is echt alles in orde.<\/p>\n<h3>De 'lichtheid' van microservices\u2026<\/h3>\n<p>\nWe hebben niet alleen enorme <b>netto overheadkosten<\/b> (door een toename van DNS-verzoeken, enz.), maar door de vele subverzoeken zijn we begonnen met <b>databases te repliceren<\/b> (caches op te slaan), wat leidde tot aanzienlijke opslagvolumes.<\/p>\n<p>En dit is de uitkomst in overeenstemming met onze verwachtingen:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/ab189c8649d720c7add975ac54811f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Maar dat is nog niet alles!<\/h3>\n<p>\nOmdat:<\/p>\n<ul>\n<li> Waarschijnlijk hebben we een berichtenbus nodig.<\/li>\n<li> Hoe maak je een consistente back-up op het juiste moment? De enige <i>re\u00eble<\/i> optie is om het verkeer daarvoor uit te schakelen. Maar hoe doe je dat in productie?<\/li>\n<li> Als we het hebben over ondersteuning van meerdere regio's, dan is het organiseren van veerkracht in elk van hen een zeer arbeidsintensie taak.<\/li>\n<li> Er ontstaat een probleem met het aanbrengen van gecentraliseerde wijzigingen. Bijvoorbeeld, als we de PHP-versie moeten bijwerken, dan is het nodig om een commit te maken in elke repository (en dat zijn er tientallen).<\/li>\n<li> De groei van operationele complexiteit lijkt exponentieel.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Wat moeten we hiermee doen?<\/h2>\n<p>\n<b>Begin met een monolithische applicatie<\/b>. De ervaring van Fowler <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/MonolithFirst.html\">zegt<\/a><\/noindex> dat vrijwel alle succesvolle microservice-applicaties zijn begonnen als een monoliet die te groot werd en vervolgens werd opgesplitst. Tegelijkertijd hebben vrijwel alle systemen die vanaf het begin als microservices zijn gebouwd, vroeg of laat ernstige problemen ervaren.<\/p>\n<p>Een andere waardevolle gedachte is dat, om een project met microservice-architectuur succesvol te maken, je zowel de domeinexpertise als de kennis van het maken van microservices goed moet begrijpen. <b>En de beste manier om de domeinexpertise te leren, is door een monolith te maken.<\/b>Maar wat te doen als we al in zo'n situatie zijn beland?<\/p>\n<h2>De eerste stap naar het oplossen van elk probleem is het erkennen en begrijpen dat dit een probleem is, dat we niet langer willen lijden.<\/h2>\n<p>\nAls we in het geval van een gegroeide monolith (wanneer we niet meer in staat zijn om middelen voor hem te kopen) deze snijden, is het in dit geval anders: wanneer overmatige microservice-structuur al niet meer helpt, maar zelfs in de weg zit \u2014<\/p>\n<p>snijd het overbodige weg en vergroot <b>Bijvoorbeeld, voor de hierboven besproken verzamelbeeld\u2026<\/b>!<\/p>\n<p>Verlies de meest twijfelachtige microservices:<\/p>\n<p>Combineer alle microservices die verantwoordelijk zijn voor de frontend-generatie:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/4b72ede0452890027a950d31ced26405.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCombineer alle microservices die verantwoordelijk zijn voor de frontend-generatie:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/3bf2831a637cfa148b032ba8c521353a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 in \u00e9\u00e9n microservice, geschreven in \u00e9\u00e9n (moderne en goede, zoals u zelf denkt) taal\/framework:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/73f53f5f4f41f72a7c6d187d855bbd95.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHet zal een ORM (\u00e9\u00e9n databasesysteem) hebben en in eerste instantie een paar applicaties:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/f44baf6a02bf00317f1395ab339f57a9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 maar het is mogelijk om veel meer te verplaatsen, wat het volgende resultaat oplevert:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/97c02ae24199bca42e4bf24f8031578a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn Kubernetes starten we dit allemaal als afzonderlijke instanties, wat betekent dat we nog steeds de belasting kunnen meten en ze apart kunnen schalen.<\/p>\n<h2>Samenvattend<\/h2>\n<p>\nKijk breder naar het plaatje. Vaak ontstaan al deze problemen met microservices omdat iemand zijn taak nam, maar 'een spelletje met microservices wilde spelen'.<\/p>\n<p><b>In het woord 'microservices' is het gedeelte 'micro' overbodig.<\/b>. Ze zijn 'micro' alleen maar omdat ze kleiner zijn dan een enorme monoliet. Maar denk niet aan hen als iets kleins.<\/p>\n<p>En voor de laatste gedachte keer terug naar het oorspronkelijke schema:<\/p>\n<p><img decoding=\"async\" alt=\"Microservices: grootte doet er toe, zelfs als je Kubernetes hebt\" src=\"\/wp-content\/uploads\/2019\/04\/a75665af4caa7c4982f70c59ec3c6e89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe opmerking die erbij is geschreven <i>(rechtsboven)<\/i> komt neer op het feit dat <b>de vaardigheden van het team dat uw project maakt, altijd primair zijn<\/b> \u2014 zij zullen een sleutelrol spelen in uw keuze tussen microservices en monoliet. Als het team niet genoeg vaardigheden heeft, maar begint met microservices, zal het verhaal zeker fataal zijn.<\/p>\n<h2>Video en slides<\/h2>\n<p>\nVideo van de presentatie (~50 minuten; helaas kan het de vele emoties van de bezoekers niet overbrengen, die voor een groot deel de sfeer van de lezing bepaalden, maar zo is het):<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"g9cgppj0gKQ\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/g9cgppj0gKQ\/hqdefault.jpg\" alt=\"Video afspelen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Presentatie van het verslag:<\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"\/\/speakerdeck.com\/player\/f4f5ab9957084712bc92aa8a0ef61e45\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><\/p>\n<h2>P.S.<\/h2>\n<p>\nAndere lezingen op onze blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitoring en Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 28 mei 2018 op RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/345116\/\">Beste praktijken voor CI\/CD met Kubernetes en GitLab<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 7 november 2017 op HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Onze ervaring met Kubernetes in kleine projecten<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 6 juni 2017 op RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Docker-images verzamelen voor CI\/CD snel en gemakkelijk met dapp<\/a><\/noindex>\u00bb <i>(Dmitriy Stolyarov; 8 november 2016 op HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Praktijken van Continuous Delivery met Docker<\/a><\/noindex>\u00bb <i>(Dmitriy Stolyarov; 31 mei 2016 op RootConf)<\/i>.<\/li>\n<\/ul>\n<p>\nWaarschijnlijk zijn de volgende publicaties ook interessant voor u:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">De dood van de microservices-hype in 2018.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/425085\/\">7 beste praktijken voor containerbeheer volgens Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/340270\/\">Statistieken van The New Stack over de moeilijkheden bij het implementeren van Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424531\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c. \u041d\u0430 \u043d\u0451\u043c \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u042d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes\u00bb, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23651,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31761","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:42:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:42:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Microservices: de grootte doet ertoe, zelfs als u Kubernetes heeft | ProHoster","description":"Op 19 september vond in Moskou de eerste thematische meetup HUG (Highload++ User Group) plaats, die aan dit onderwerp was gewijd.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes | ProHoster","og:description":"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:42:55+00:00","article:modified_time":"2019-10-31T18:42:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31761","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 07:42:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:11:22","updated":"2026-01-21 07:42:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/31761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=31761"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/31761\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/23651"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=31761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=31761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=31761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}