Kako implementirati mikroservise z Dockerjem in Kubernetesom

Zadnja posodobitev: 23/01/2026
Avtor: Isaac
  • Mikroservisi omogočajo razvoj modularnih in skalabilnih aplikacij, kjer je vsaka storitev avtonomna in jo je mogoče neodvisno namestiti.
  • Docker olajša ustvarjanje lahkih, prenosnih vsebnikov, ki pakirajo vsako mikrostoritev z vsemi njenimi odvisnostmi.
  • Kubernetes orkestrira vsebnike, upravlja uvajanje, skaliranje, mreženje in samodejno obnovitev mikroservisov v gruči.
  • Uporaba dobrih praks varnosti, spremljanja in avtomatizacije je ključnega pomena za uspešno delovanje mikroservisov v produkciji.

Mikroservisi z Dockerjem in Kubernetesom

V zadnjih letih je dr. kombinacija mikroservisov, Dockerja in Kubernetesa Postal je dejanski standard za uvajanje sodobnih, skalabilnih in enostavnih aplikacij. Vedno več podjetij se odmika od monolitnih aplikacij v korist porazdeljenih arhitektur, ki so bolj primerne za spreminjajoča se okolja in strategije DevOps.

Če se sprašujete Kako v praksi implementirati mikroservise z Dockerjem in KubernetesomTa vsebina bo kot nalašč za vas: pregledali bomo ključne koncepte, prednosti in izzive, kako ustvariti vsebnike, kako jih orkestrirati v gruči in katere korake je treba upoštevati pri njihovi namestitvi. Windows y Linuxkot tudi vrsto nasvetov za njihovo modro uporabo v resničnih okoljih.

Kaj je mikroservisna arhitektura in kako se razlikuje od monolita?

Arhitektura mikroservisov temelji na razdelite aplikacijo na več majhnih, avtonomnih in neodvisno nameščajočih se storitevvsak se je osredotočal na določeno funkcionalnost (uporabniki, plačila, katalog, naročila itd.), ki komunicirajo predvsem prek lahkih API-jev (HTTP/REST, gRPC, sporočanje itd.).

V monolitni aplikaciji pa, Vsa poslovna logika, predstavitvena plast in dostop do podatkov so združeni v en sam uvajalni blok.Vsaka sprememba zahteva ponovno prevajanje, testiranje in uvajanje celotnega sistema, kar otežuje razvoj in povečuje tveganje za vnos napak v produkcijo.

Pri mikroservisih ima vsaka storitev svoj življenjski cikel: Razvijati, testirati, uvajati, skalirati in različicovati ga je mogoče neodvisno.To omogoča vzporedno delo več ekipam, poenostavlja uvajanje novih tehnologij in olajša integracijo s praksami CI/CD.

Poleg tega ta arhitektura uvaja koncept skalabilnost, neodvisna od komponentNamesto skaliranja celotne monolitne aplikacije za podporo večje obremenitve določenega modula se skalirajo le mikrostoritve, ki jih resnično potrebujejo, kar bolje optimizira infrastrukturne vire.

Resnične prednosti in izzivi mikroservisov

Prehod na mikroservise ni le muha mode: Zagotavlja oprijemljive prednosti v skalabilnosti, odpornosti in hitrosti uvajanja.Vendar pa to uvaja tudi operativno kompleksnost, ki jo je treba obvladovati.

Med najbolj opaznimi prednostmi je neodvisna skalabilnost vsake storitveČe na primer modul za plačila prejme več prometa kot modul za administracijo, lahko povečate le število replik mikrostoritve za plačila, ne da bi se dotaknili preostale aplikacije ali zapravljali vire.

Veliko tudi pridobiš neprekinjeno uvajanje in pogoste dostaveZ izolacijo vsake storitve je mogoče postopoma izdajati nove različice, ne da bi bilo treba ustaviti ali ponovno namestiti celotno aplikacijo, kar skrajša vzdrževalna okna in izboljša čas do uvedbe na trg.

Druga ključna točka je odpornost in toleranca napakČe je pravilno zasnovana, napaka ene mikrostoritve ne bi smela povzročiti sesutja celotnega sistema. Z vzorci, kot so časovne omejitve, ponovni poskusi in prekinitve tokokroga, se lahko druge storitve še naprej odzivajo, kar omejuje vpliv napak.

Poleg tega mikroservisi omogočajo tehnološka fleksibilnostVsaka ekipa lahko izbere jezik, ogrodje ali podatkovno bazo, ki je najprimernejša za njihovo storitev, če le spoštuje komunikacijske pogodbe in globalne politike platforme.

Na drugi strani kovanca najdemo operativna in opazovalna kompleksnostUpravljanje več deset ali stotin storitev vključuje delo s porazdeljenimi omrežji, medstoritvenimi sledmi, centraliziranim beleženjem, varnostjo, različicami API-jev in doslednostjo podatkov, kar zahteva napredna orodja in zrele procese.

Tudi zaplete se upravljanje komunikacije med storitvamiBistveno je skrbno načrtovati, kako se izmenjujejo podatki, kako se obravnavajo napake, kako se upravlja zakasnitev in kako preprečiti, da bi počasna odvisnost povlekla navzdol preostali sistem. Testiranje in odpravljanje napak nista več trivialna, ker Ne testira se en sam blok, temveč niz medsebojno povezanih storitev..

Arhitektura mikroservisov s kontejnerji

Kontejnerji: temelj za izvajanje mikroservisov v izolaciji

Tehnologija kontejnerjev je postala idealna podpora za mikrostoritve, ker Omogoča vam, da aplikacijo in vse njene odvisnosti zapakirate v standardizirano in prenosljivo enoto.Namesto nameščanja knjižnic, izvajalnih okolij in orodij na vsak strežnik, vse potuje znotraj vsebnika.

Posoda je v bistvu lahka oblika virtualizacije na ravni operacijskega sistema: deli jedro gostitelja, vendar izvaja procese v izoliranih imenskih prostorih in z viri, omejenimi s cgroups, zaradi česar se hitro zaženejo in porabijo manj kot virtualni stroj.

Med njegovimi ključnimi lastnostmi so izolacija, prenosljivost, lahkotnost in modularnostVsaka mikroservisna storitev, ki se izvaja v svojem vsebniku, je lažja za uvajanje, zaustavljanje, posodabljanje ali podvajanje, kar se popolnoma ujema z načeli porazdeljenih arhitektur.

V primerjavi z virtualni stroji za produkcijoposode Ne potrebujejo celotnega operacijskega sistema na primerek.ampak raje delite gostiteljev. To drastično zmanjša velikost slik in čas de škorenjkar vam omogoča dvigovanje ali uničenje kontejnerjev v nekaj sekundah.

  Odpravite napako omrežja Google Chrome v 3 preprostih korakih

Docker: referenčna platforma za kontejnerizacijo mikroservisov

Docker je najbolj priljubljeno orodje za delo s kontejnerji, ker Omogoča ustvarjanje, pakiranje, distribucijo in izvajanje aplikacij v vsebnikih. tako v razvojnih okoljih kot v testnih in produkcijskih okoljih.

Njihova osrednja ideja je zapakirati programsko opremo v Slike DockerjaTo so nespremenljivi artefakti, ki vključujejo kodo aplikacije, knjižnice, ki jih potrebuje, sistemska orodja in osnovne konfiguracije. Aplikacije so ustvarjene iz teh slik. kontejnerji v uporabi, ki so osamljeni primerki, ki temeljijo na tej sliki.

Konstrukcija slike je definirana v Dockerfile, besedilna datoteka, ki določa navodila, kot so osnovna slika, delovni imenik, katere datoteke kopirati, katere odvisnosti namestiti, katera vrata razkriti in kateri ukaz zagnati ob zagonu vsebnika.

Predstavljajte si, da imate API, napisan v Node.js. Lahko ustvarite Dockerfile, podobno naslednji, kjer Začenši z uradno sliko vozlišča, se datoteke kopirajo, namestijo se odvisnosti in definira se ukaz za zagon.:

FROM node:14
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 3000
CMD

Ta datoteka označuje, da se bo aplikacija izvajala v imeniku /app znotraj vsebnika, da bodo odvisnosti nameščene z npm, da bodo vrata 3000 izpostavljena in da se bo ob zagonu vsebnika izvedel npm začetek.

Če želite zgraditi in zagnati ta vsebnik, preprosto zaženite ukaz iz mape projekta. gradnjo dockerja in po njem Docker tečepreslikava vrat za omogočanje dostopa z gostitelja ali za uporabo v večkontejnernih aplikacijah docker-compose:

docker build -t mi-app .
docker run -p 3000:3000 mi-app

Zahvaljujoč temu modelu, Klasična težava "deluje na mojem računalniku" je zmanjšana na minimum.Ker izvajalno okolje potuje z aplikacijo. Poleg tega se Docker brezhibno integrira s sistemi CI/CD, zasebnimi registri in orodji za orkestracijo, kot je Kubernetes.

Ključne komponente v Dockerju in njihova vloga v mikroservisih

Pri tipični uvedbi govorimo o Docker Hostki je sistem (fizični ali virtualni), kjer je nameščen Docker; teče na njem. Docker Engine, demon, ki upravlja slike, omrežja, nosilce podatkov in življenjski cikel vsebnika.

Posode vsebujejo aplikacija in njene odvisnosti, zapakirane v slikoTo omogoča kateremu koli strežniku z Dockerjem, da dosledno izvaja to sliko. Ta doslednost je ključnega pomena, ko imate veliko mikroservisov nameščenih v različnih okoljih (razvoj, zagotavljanje kakovosti, produkcija itd.).

Med najbolj zanimivimi prednostmi Dockerja so ... prenosljivost med okolji, avtomatizacija uvajanja, modularnost procesov in podpora za slojevitost in nadzor različic v slikahkar olajša razveljavitev sprememb in optimizacijo shranjevanje.

Kubernetes: orkestrator za upravljanje stotin kontejnerjev

Ko se število kontejnerjev poveča z nekaj na desetine ali stotine, Ročno upravljanje postane norostTukaj pride na vrsto Kubernetes, odprtokodna platforma, zasnovana za orkestriranje kontejnerjev v velikem obsegu.

Kubernetes avtomatizira kritična opravila, kot so uvajanje, skaliranje, obnova po napakah, konfiguracija omrežja in shranjevanje vsebniških aplikacij. Zasnovan je za delovanje v javnih oblakih, zasebnih oblakih, hibridnih okoljih in celo na lokaciji.

Osredotoča se na upravljanje gruč, sestavljenih iz več vozlišč (strojev), kjer se izvajajo kontejnerji. Cilj je zagotoviti, da aplikacije so vedno v želenem stanju: število replik, nameščenih različic, dodeljenih virov in povezljivosti med storitvami.

Temeljni elementi Kubernetesa

Najmanjša enota v Kubernetesu je PodPod predstavlja enega ali več primerkov vsebnika, ki se morajo izvajati skupaj (na primer vsebnik aplikacije in stranski vsebnik za beleženje). Podi so kratkotrajni. Ustvarjajo se, uničujejo in nadomeščajo glede na potrebe grozda..

Za razkritje vaših podov Kubernetes ponuja vir Serviceki deluje kot plast abstrakcije omrežja. Storitev združuje niz podov in Zagotavlja stabilen IP-naslov, DNS-ime in notranje uravnoteženje obremenitve.tako da strankam ni treba poznati podrobnosti o vsakem Podu.

Vir Deployment Uporablja se za določanje, kako naj se podi uvajajo in posodabljajo: koliko replik, katero sliko uporabiti, katere oznake uporabiti in katero strategijo posodabljanja upoštevati. Kubernetes to obvladuje. vedno vzdržujte želeno število delujočih podov in za izvajanje posodobitev ali povrnitev prejšnjih nastavitev, ko spremenite konfiguracijo.

Obstajajo tudi viri, kot so ConfigMap in SecretTe funkcije vam omogočajo eksternalizacijo konfiguracije in shranjevanje občutljivih podatkov (gesel, žetonov, ključev API), ne da bi jih bilo treba pakirati v slike. To močno poenostavi varno upravljanje konfiguracije v različnih okoljih.

Kako organizirati gručo Kubernetes

"Glava" grozda je Načrt nadzora Kuberneteski združuje več komponent, odgovornih za orkestriranje celotnega sistema. Med njimi je tudi API strežnikki je prehod za upravljanje gruče; vsako dejanje (ustvarjanje uvedbe, seznam podov, spreminjanje storitve) gre skozi ta API.

El Scheduler Odgovoren je za odločanje o tem, na katerem vozlišču se izvaja posamezen Pod, pri čemer upošteva razpoložljive vire, afinitete in omejitve; medtem ko Upravitelj krmilnika Spremljajte stanje gruče in ukrepajte, da zagotovite, da se dejansko stanje ujema s tem, kar ste navedli v manifestih (na primer ustvarite nove pode, če jih je manj, kot ste zahtevali).

  Popravek: Napaka »Vstavite obnovitveni medij Windows ali namestitveni medij«.

Shranjevanje stanja je preneseno na itddPorazdeljena baza podatkov shranjuje konfiguracijo in informacije za vse vire gruče. Poleg tega se na vsakem delovnem vozlišču izvajajo procesi, kot so naslednji: kocka (agent, ki komunicira vozlišče s strežnikom API), kube-proxy (ki upravlja omrežni promet in uravnoteženje obremenitve) in izvajalno okolje vsebnika (Docker, kontejnerji, CRI-O itd.).

Uvajanje mikroservisov v Kubernetes z datotekami YAML

Za uvedbo mikrostoritve v Kubernetes jo je običajno opisati z Manifest YAML, kjer definirate razmestitev (predlogo Poda, sliko, vrata, število replik, oznake) in ustrezno storitev, da jo izpostavite znotraj ali zunaj gruče.

Osnovni primer uvajanja aplikacije z imenom »moja-aplikacija« bi lahko izgledal nekako takole, kjer Definirane so tri replike in vrata 3000 kot kontejnersko pristanišče:

apiVersion: apps/v1
kind: Deployment
metadata:
name: mi-app
spec:
replicas: 3
selector:
matchLabels:
app: mi-app
template:
metadata:
labels:
app: mi-app
spec:
containers:
- name: mi-app
image: mi-app:latest
ports:
- containerPort: 3000

Ta manifest navaja, da mora grozd vzdrževati trije podi v delovanju S sliko »my-app:latest« so vse označene z app=my-app, tako da jih lahko storitev poišče in mednje porazdeli promet. Kubernetes samodejno upravlja logiko za skaliranje, posodobitve in zamenjavo podov v primeru okvare.

Skupaj z uvajanji je običajno definirati tudi storitve tipa IP-skupina, NodePort ali LoadBalancerGlede na to, ali naj bo mikrostoritev dostopna samo znotraj gruče, iz vozlišč ali iz interneta, je vsa ta konfiguracija različicovana v repozitorijih in se brezhibno integrira s cevovodi CI/CD.

Skaliranje, nadgradnje in samozdravljenje v Kubernetesu

Eden glavnih razlogov za uporabo Kubernetesa je njegova sposobnost, da skaliranje in posodabljanje mikroservisov brez zaustavitve aplikacijeŠtevilo replik lahko spremenite v manifestu (ali z ukazom kubectl) in gruča bo poskrbela za ustvarjanje ali odstranjevanje podov, dokler ni dosežena želena vrednost.

To skaliranje je lahko ročno ali samodejno, z uporabo virov, kot so Horizontalni samodejni skalator podov (HPA)Ta funkcija dinamično prilagaja replike na podlagi metrik, kot sta procesor ali pomnilnik. Tako se zmogljivost poveča v obdobjih velikega povpraševanja, viri pa se sprostijo, ko se obremenitev zmanjša.

Kar zadeva posodobitve, Kubernetes izvaja tekoče posodobitve Privzeto: ustvari pode z novo različico in postopoma briše tiste iz prejšnje različice, ne da bi jih nenadoma izrezal. Če gre kaj narobe, rollback Omogoča vam hitro obnovitev prejšnje različice.

Druga kritična funkcionalnost je samopopraviloČe vsebnik ali pod odpove, ga Kubernetes samodejno ponovno ustvari; če se vozlišče preneha odzivati, se prizadeti podi prerazporedijo na druga razpoložljiva vozlišča, s čimer se aplikacija ohrani delujoča.

Spremljanje in opazovanje mikroservisov v Kubernetesu

Za pravilno delovanje okolja mikroservisov ni dovolj le uvedba in skaliranje: Potrebujete vpogled v delovanje in stanje storitev v realnem časuV Kubernetes je zelo pogosto integriranje orodij, kot je Prometheus, za zbiranje metrik in Grafana za njihovo vizualizacijo.

Prometheus obdeluje »strganje« metrik iz podov, vozlišč in komponent gruče, njihovo shranjevanje in omogoča definiranje opozoril o njih; v kombinaciji z Grafano lahko ustvarite nadzorne plošče, kjer Spremljajte porabo procesorja, pomnilnik, napake HTTP, zakasnitev, število replik ali stanje vozlišča zelo jasno.

Poleg tega kubectl ponuja ukazi Če želite pregledati stanje uvedb, storitev, podov in drugih virov, glejte dnevnikiTo vključuje opisovanje dogodkov ali dostop do vsebnikov za odpravljanje napak. Vse to je del strategije opazovanja, ki v mikroservisih Ni neobvezno, če želite mirno spati..

Razmerje med mikroservisi, Dockerjem in Kubernetesom

Mikroservisi, Docker in Kubernetes se ujemajo kot koščki iste sestavljanke: Arhitektura mikroservisov določa, kako oblikujete aplikacijo, Docker obravnava pakiranje in izvajanje vsake storitve, Kubernetes pa orkestrira vse te vsebnike. v grozdu.

Vsaka mikroservis je enkapsulirana v Dockerjeva slika, ki vključuje njegovo kodo in odvisnostiTo zagotavlja, da se obnaša enako na prenosniku razvijalca, v testnem okolju ali v produkciji v oblaku. Ta dosledna embalaža je ključnega pomena za filozofijo DevOps.

Kubernetes pa s svoje strani deluje kot orkestrator kontejnerjevDoloča, koliko primerkov posamezne mikrostoritve naj se izvaja, kje se nahajajo, kako se promet uravnava do njih, kako si opomorejo po napakah in kako se prilagajajo, ko se povpraševanje poveča ali zmanjša.

V aplikaciji za e-trgovino bi lahko na primer imeli mikroservise za preverjanje pristnosti, katalog, nakupovalno košarico in plačila, vsak s svojo sliko Docker in uvedbo Kubernetes. Na ta način, Katalog lahko prilagodite v okviru obsežnih kampanj ali plačil v kritičnih trenutkih, ne da bi to vplivalo na ostalo.in orkestrirati celoten življenjski cikel od cevovodov CI/CD do spremljanja po produkciji.

Namestitev Dockerja in Kubernetesa v sistem Windows

Če delate z operacijskim sistemom Windows, je najlažji način za začetek namestitev DockerDesktopki vključuje Dockerjev mehanizem in dodatna orodja ter celo možnosti za omogočanje integracije Kubernetesa v vaš računalnik.

  Kako omogočiti in konfigurirati starševski nadzor v sistemu Windows 11

Tipičen postopek vključuje Prenesite Docker Desktop z uradne spletne straniZaženite namestitveni program (Docker Desktop Installer.exe) in sledite čarovniku. Med namestitvijo lahko izbirate med uporabo Hyper-V ali WSL 2 kot tehnologija virtualizacije; če je na voljo samo ena, se bo uporabila ta.

Po ponovnem zagonu sistema se z odpiranjem Docker Desktop inicializira okolje vsebnika; če virtualizacija ni bila omogočena, namestitveni program običajno sam ponudi omogoči samodejnoOd tam lahko zaženete vsebnike, na primer Nginx ali lastne aplikacije.

Za uporabo Kubernetes v sistemu Windows morate najprej omogočiti Docker in zmogljivosti virtualizacije. Nato lahko Kubernetes omogočite iz Docker Desktop ali Namestitev in konfiguracija kubectl-a za upravljanje zunanjih gruč in po potrebi za uvajanje nadzorne plošče Kubernetes z uporabo oddaljenega manifesta.

Ko je konfigurirana, boste lahko do nadzorne plošče dostopali prek lokalnega posredniškega strežnika z uporabo žetona za preverjanje pristnosti, ustvarjenega s kubectl in ki na primer kaže na konfiguracijsko datoteko. .kube/config za upravljanje dostopa do gruče iz brskalnika.

Namestitev Dockerja in Kubernetesa v Linux

V sistemih Linux, kot je Ubuntu, je namestitev Dockerja običajno precej preprosta: Paketi so posodobljeni, Dockerjev mehanizem je nameščen in okolje je preverjeno, da se zagotovi pravilno delovanje. zagon testnega vsebnika.

Tipični koraki vključujejo posodobitev sistema z posodobitev in nadgradnja z apt-getOdstranite vse prejšnje različice programa Docker Desktop, če obstajajo, nato pa namestite vtičnik docker-ce, docker-ce-cli, containerd.io in docker-compose iz uradnih repozitorijev ali tako, da navedete želeno različico.

Za preverjanje, ali je vse v redu, se običajno zažene vsebnik "hello-world". Prenese minimalno sliko in jo zažene.Če se sporočilo prikaže pravilno, je Docker zagnan in pripravljen za začetek kontejnerizacije mikroservisov.

Kar zadeva Kubernetes, ga je v Linuxu mogoče namestiti z orodji, kot so kubeadmTipičen potek dela vključuje dodajanje ključa repozitorija Kubernetes, konfiguriranje datoteke s seznamom paketov, namestitev kubeadm in preverjanje njegove različice.

Grozd se nato inicializira na glavnem vozlišču z kubeadm init (z določitvijo omrežnega obsega za Pod-e) se pridobi ukaz »join«, tako da se delovna vozlišča pridružijo gruči, lokalni dostop pa se konfigurira z ustvarjanjem imenika. $DOMOV/.kubes kopiranjem datoteke admin.conf in prilagajanjem dovoljenj.

S tem boste imeli pripravljen osnovni grozd za uvajanje mikroservisov v vsebnikih, namestite omrežje podov (Flannel, Calico itd.) in začnite delati z uvajanji, storitvami in ostalimi viri Kubernetes.

Najboljše prakse in priporočila za uporabo Dockerja in Kubernetesa

Da bi kar najbolje izkoristili ta okolja, je priporočljivo upoštevati vrsto najboljših praks z Dockerjem, začenši z uporabite uradne ali zaupanja vredne slike, bodisi iz Docker Huba bodisi iz preverjenih zasebnih repozitorijev, da se zmanjšajo varnostna tveganja.

Zelo priporočljivo optimizirajte velikost slike z uporabo lahkih osnovnih slik, večstopenjskih gradenj in odstranjevanja začasne datoteke ali nepotrebne artefakte. Manjše slike se hitreje prenesejo in pospešijo uvajanje v Kubernetes.

Druga ključna točka je uporaba količine za ohranitev podatkovNamesto shranjevanja informacij v vsebnikih izguba ali ponovna izdelava vsebnika ne vključuje izgube pomembnih podatkov.

Omejevanje virov, dodeljenih vsakemu vsebniku (CPU, pomnilnik, V/I), pomaga pri preprečiti, da bi ena sama storitev monopolizirala gostitelja in degradirati preostanek. Poleg tega je treba zabojnike spremljati z orodji, kot je Docker Stats ali naprednejšimi rešitvami, da se ohrani nadzor v produkciji.

Pri Kubernetesu je bistveno razumeti arhitekturo gruče in njene komponente, preden gremo v produkcijo. To zmanjša številne težave.

To je tudi dobra ideja čim bolj avtomatiziratiZa paketno nalaganje uporabite krmilnike replikacije, samodejne skalatorje in opravila; izkoristite prednosti tekočih posodobitev in povrnitev prejšnjih različic; ter definirajte deklarativne manifeste z različicami v repozitorijih Git.

Varnost mora biti vedno na prvem mestu: Omejite dostop do strežnika API, upravljajte poverilnice z uporabo skrivnosti, šifrirajte podatke med prenosom in v stanju mirovanjaRedno nameščajte popravke in definirajte omrežne pravilnike, ki omejujejo komunikacijo med storitvami po načelu najmanjših privilegijev.

Končno je bistveno imeti dobri centralizirani sistemi za spremljanje in beleženjekot tudi s predprodukcijskimi okolji, kjer je mogoče spremembe temeljito preizkusiti, preden jih prenesemo v produkcijsko gručo, kar zmanjšuje tveganja in neprijetna presenečenja.

Celoten ekosistem mikroservisov, Dockerjevih vsebnikov in orkestracije Kubernetes vam omogoča gradnjo sistemov, ki so veliko bolj prilagodljivi, skalabilni in odporni kot tradicionalni monoliti. Z združevanjem dobro premišljene arhitekture, ustreznih orodij in najboljših praks DevOps lahko uvedete aplikacije, ki se brezhibno prilagajajo spremembam delovne obremenitve, si hitro opomorejo od napak in jih je sčasoma lažje razvijati.

Vadnica za Docker Compose
Povezani članek:
Celoten vodnik Docker Compose za orkestriranje kontejnerjev