Ohjelmointi

Kubernetes vs. Docker: Ymmärrä kontit ja orkestrointi

Jos olet seurannut ohjelmistokehityksen viimeisimpiä suuntauksia, on kaksi termiä, joita olet epäilemättä kohdannut uudestaan ​​ja uudestaan: Docker ja Kubernetes, jotka ovat lähinnä lyhenteitäastiat jaorkestrointi.

Docker-kontit ovat auttaneet virtaviivaistamaan sovellusten siirtämistä kehityksen, testauksen ja tuotannon kautta, kun taas sekä Docker että Kubernetes ovat auttaneet keksimään uudelleen sovellusten rakentamisen ja käyttöönoton - mikropalveluiden kokoelmina monoliittisten pinojen sijaan.

Miksi Docker ja Kubernetes ovat tärkeitä, miten ne muuttavat ohjelmistokehitystä ja mikä rooli kullakin on prosessissa? Yritän vastata näihin kysymyksiin alla.

Telakointiasema ja kontit

Säiliöt, joita tuetaan Linuxissa, Windowsissa ja muissa nykyaikaisissa käyttöjärjestelmissä, antavat ohjelmistojen toimia erillisissä mini-ympäristöissä, jotka ovat erillään muusta järjestelmästä. Kontteja on verrattu virtuaalikoneisiin, mutta ne eivät ole virtuaalikoneita - ne ovat paljon kevyempiä, nopeampia käynnistää ja pysäyttää ja paljon joustavampia ja kannettavia. Koska kontteja voidaan kehrätä ylös- tai alaspäin tai skaalata sisään tai ulos muutamassa sekunnissa, ne helpottavat sovellusten ajamista joustavissa ympäristöissä, kuten pilvessä.

Linux ja muut käyttöjärjestelmät ovat tukeneet konttisovelluksia monien vuosien ajan, mutta konttien kanssa työskenteleminen ei ollut aivan käyttäjäystävällistä. Docker on sekä avoimen lähdekoodin että kaupallisen inkarnaation muodossa ohjelmisto, joka tekee kontista käyttäjäystävällisen ja kehittäjäystävällisen hyödykkeen. Docker tarjoaa yhteiset työkalut ja metaforat säilöille, jotta voit pakata sovelluksia konttikuviin, jotka voidaan helposti ottaa käyttöön ja käyttää uudelleen omassa organisaatiossasi tai muualla.

Lyhyesti sanottuna Docker tekee pikakuvakkeesta konttien kuvien luomisen, version päivittämisen, jakamisen, siirtämisen ja käyttöönoton Docker-yhteensopiville isännöille juoksevina säilöinä.

Milloin käytän Dockeria ja kontteja?

Telakointiasema ja kontit sopivat parhaiten työtaakkoihin, joilla on oltava yksi tai useampi seuraavista ominaisuuksista:

  • Elastinen skaalautuvuus. Et tiedä, kuinka monta sovellusta sinun on suoritettava kysynnän tyydyttämiseksi. Säilöity sovellus tai palvelu voidaan skaalata ulos vastaamaan kysyntää ottamalla käyttöön vähemmän tai useampia esiintymiä sen säiliöistä.
  • Eristäytyminen. Et halua sovelluksen häiritsevän muita sovelluksia. Ehkä käytät useita sovelluksen versioita rinnakkain, jotta voit tyydyttää sovellusliittymän eri versiot. Tai ehkä haluat pitää taustalla olevan järjestelmän puhtaana (aina hyvä idea).
  • Siirrettävyys. Sinun on suoritettava tämä sovellus useissa ympäristöissä, ja jokaisen asennuksen on oltava toistettavissa. Säiliöiden avulla voit pakata sovelluksesi koko ajonaikaisen ympäristön, jolloin sovellus on helppo ottaa käyttöön missä tahansa Docker-yhteensopivalla isännällä - kehittäjän työpöydällä, laadunvalvontatestauslaitteella, paikallisella rauta- tai etäpilvellä.

Lisätietoja Dockerista ja astioista

  • Mikä on Docker? Säiliön vallankumouksen kipinä
  • Miksi sinun pitäisi käyttää Dockeria ja kontteja
  • Aloita Dockerin kanssa
  • Dockerin piilotetut edut laadunvalvontaan
  • 12 avoimen lähdekoodin työkalua, jotka tekevät Dockerista paremman
  • Lisää Docker-uutisia, analyyseja, ohjeita, arvosteluja ja neuvoja

Kubernetes ja konttiorkesteri

Säiliöt on suunniteltu pääasiassa eristämään prosessit tai sovellukset toisistaan ​​ja taustalla olevasta järjestelmästä. Yksittäisten konttien luominen ja käyttöönotto on helppoa. Mutta entä jos haluat koota useita säilöjä - esimerkiksi tietokannan, web-käyttöliittymän, laskennallisen taustan - suureksi sovellukseksi, jota voidaan hallita yhtenä yksikkönä ilman, että sinun tarvitsee huolehtia käyttöönotosta, yhdistämisestä, hallinnasta, ja skaalataan kukin näistä säiliöistä erikseen? Tarvitset tavanorkestroida kaikki osat toimivaksi kokonaisuudeksi.

Tämän työn Kubernetes hoitaa. Jos kontit ovat risteilyn matkustajia, risteilyjohtaja Kubernetes.

Googlen luomiin projekteihin perustuva Kubernetes tarjoaa tavan automatisoida monisäiliösovellusten käyttöönotto ja hallinta useissa isännöissä ilman, että sinun on hallittava kutakin säilöä suoraan. Kehittäjä kuvaa sovelluksen asettelun useille säilöille, mukaan lukien yksityiskohdat siitä, miten kukin säilö käyttää verkkoa ja tallennustilaa. Kubernetes hoitaa loput ajon aikana. Se hoitaa myös hienojen yksityiskohtien, kuten salaisuuksien ja sovelluskokoonpanojen, hallinnan.

Kubernetes vaatii jonkin verran asiantuntemusta toimiakseen hyvin, vaikka se onkin pikemminkin avaimet käteen -ratkaisu kuin ennen. Osa helppokäyttöisyyden edistymisestä johtuu helposti saatavilla olevista resepteistä yleisiin sovelluksiin (Helm-kaaviot); osa johtuu nimimerkkiyritysten (Red Hat, Canonical, Docker) tuottamasta runsaasta Kubernetes-jakelusta, jotka toimivat käsi kädessä suosittujen sovelluspinojen ja kehityskehysten kanssa.

Milloin käytän Kubernetesia ja konttiorkesteriä?

Yksinkertaiset konttipaketit, jotka palvelevat pientä käyttäjää, eivät yleensä vaadi orkestrointia, Kubernetesistä puhumattakaan. Mutta jos sovelluksella on enemmän kuin vähäpätöinen toiminnallisuus tai vähäinen määrä käyttäjiä, on vaikea olla keksimättä orkestrointijärjestelmien tarjoamaa pyörää uudelleen. Tässä on joitain nyrkkisääntöjä sen määrittämiseksi, milloin orkestraation tulisi tulla kuvaan.

  • Sovelluksesi ovat monimutkaisia. Kaikki sovellukset, joissa on enemmän kuin kaksi konttia, sopivat todennäköisesti laskuun. Vaatimattomat sovellukset, jotka palvelevat vain pientä määrää käyttäjiä, voidaan kuitenkin organisoida pienemmällä ratkaisulla, kuten Docker-parvimoodilla Kubernetesin sijaan.
  • Sovelluksillasi on suuret skaalauksen ja joustavuuden vaatimukset. Kubernetesin ja muiden orkesterien avulla voit tasapainottaa kuormat ja pyörittää kontteja kysynnän tyydyttämiseksi kuvaamalla järjestelmän halutun tilan sen sijaan, että koodaisit reaktiot muuttuviin olosuhteisiin käsin.
  • Haluat hyödyntää nykyaikaisia ​​CI / CD-tekniikoita. Orkestrointijärjestelmät tukevat sinisen / vihreää käyttöönottoa tai jatkuvia päivityksiä käyttävien sovellusten käyttöönottomalleja.

Voi tulla päivä, jolloin Docker ja Kubernetes pimenevät vieläkin ystävällisemmillä abstraktioilla, ja antavat tien tyylikkäimmille tavoille luoda ja hallita kontteja. Toistaiseksi Docker ja Kubernetes ovat kuitenkin tärkeitä tuntemaan ja ymmärtämään.

Lue lisää Kubernetesista ja orkestroinnista

  • Mikä on Kubernetes? Seuraava sovellusalustasi
  • 4 syytä käyttää Kubernetesia
  • 10 Kubernetes-jakelua, jotka johtavat konttien vallankumousta
  • Hallinnoidut Kubernetes: AWS vs. Azure vs. Google Cloud
  • Hei MicroK8s: Yksinkertaisempi Kubernetes
  • Mitä uutta Kubernetes
  • Lisää Kubernetes-uutisia, ohjeita, arvosteluja, neuvoja ja analyyseja
$config[zx-auto] not found$config[zx-overlay] not found