Ajan myötä sovellusten nopean testauksen ja käyttöönoton kysyntä kasvoi yhdessä nopeamman liiketoiminnan kanssa syklit, organisaatioiden oli pakko innovoida pysyäkseen nopeatempoisessa liiketoiminnassa ympäristöön.
Pyrkimys nykyaikaistaa sovelluksia ja rakentaa uusia luoda ketteriä työnkulkuja johti konttien käyttöön. Containerization -tekniikka on lähes yhtä vanha kuin virtualisointi. Säiliöt eivät kuitenkaan herättäneet paljon jännitystä vasta Satamatyöläinen räjähti paikalle vuonna 2013 ja herätti kiihkeää kiinnostusta kehittäjien ja muiden IT -ammattilaisten keskuudessa.
Tällä hetkellä kaikki jättimäiset teknologiayhteisöt, kuten Google, Amazon, Microsoftja punainen hattu mainitakseni muutamat ovat hyppäneet kelkkaan.
Yksi kehittäjien kohtaamista haasteista on tietokoneympäristöjen ero ohjelmistokehityksen jokaisessa vaiheessa. Ongelmia syntyy, kun ohjelmistoympäristö on erilainen eri vaiheissa.
Esimerkiksi sovellus voi toimia saumattomasti testausympäristössä käynnissä Python 3.6
. Sovellus toimii kuitenkin oudosti, palauttaa joitakin virheitä tai kaatuu kokonaan, kun se siirretään käynnissä olevaan tuotantoympäristöön Python 3.9.Kontit tulivat paikalle vastaamaan tähän haasteeseen ja varmistamaan, että sovellukset toimivat luotettavasti, kun niitä siirretään yhdestä tietokoneesta ympäristöstä seuraavaan kaikissa ohjelmistokehityksen vaiheissa - kehittäjien tietokoneesta aina tuotantoon ympäristöön. Eikä vain ohjelmistoympäristö voi aiheuttaa tällaisia epäjohdonmukaisuuksia, vaan myös erot verkon topologia ja turvallisuuspolitiikat.
A kontti on eristetty ohjelmistoyksikkö, joka pakkaa kaikki binaarikoodit, kirjastot, suoritettavat tiedostot, riippuvuudet ja määritystiedostot yhdeksi paketiksi siten, että sovellus toimii sujuvasti, kun se siirretään yhdestä tietokoneympäristöstä toinen. Sen mukana ei tule käyttöjärjestelmän kuvaa, joka tekee siitä kevyen ja helposti siirrettävän.
Säiliön kuva on itsenäinen, kevyt ja suoritettava paketti, joka sisältää kaiken sovelluksen suorittamiseen tarvittavan. Ajon aikana säilön kuva muuttuu säiliöksi. Siinä tapauksessa että Satamatyöläinenesimerkiksi Docker -kuvasta tulee telakointisäiliö, kun se suoritetaan Docker -moottori. Satamatyöläinen on ajonaikainen ympäristö, jota käytetään konttisovellusten rakentamiseen.
Säiliöt toimivat täysin erillään taustalla olevasta käyttöjärjestelmästä, ja säilötyt sovellukset toimivat aina johdonmukaisesti tietokoneympäristöstä tai -infrastruktuurista riippumatta. Tästä syystä kehittäjä voi kehittää sovelluksen tämän kannettavan tietokoneen mukavuudesta ja ottaa sen helposti käyttöön palvelimella.
Juoksukonttoreiden johdonmukaisuus ja luotettavuus antavat kehittäjille mielenrauhaa tietäessään, että heidän sovelluksensa toimivat odotetusti riippumatta siitä, missä ne ovat.
Yleinen asia, jonka kontit ja virtuaalikoneet jakavat, on se, että ne toimivat virtualisoidussa ympäristössä. Säilyttäminen on tietyssä mielessä virtualisoidun tekniikan muoto. Säiliöt eroavat kuitenkin virtuaalikoneista useammalla kuin yhdellä tavalla.
Virtuaalikone, jota kutsutaan myös virtuaaliseksi instanssiksi tai VM Lyhyesti sanottuna se on fyysisen palvelimen tai tietokoneen emulointi. Virtualisointi on tekniikka, joka mahdollistaa virtuaalikoneiden luomisen. Virtualisoinnin käsite juontaa juurensa 1970 -luvun alkuun ja loi perustan pilviteknologian ensimmäiselle sukupolvelle.
Virtualisoinnissa abstraktiokerros luodaan paljaalle metallipalvelimelle tai tietokonelaitteistolle. Tämä mahdollistaa yhden palvelimen laitteistoresurssien jakamisen useiden virtuaalikoneiden kesken.
Abstraktiokerroksen valmistukseen käytettyä ohjelmistoa kutsutaan hypervisoriksi. Hypervisori ottaa virtuaalikoneen ja vierailevan käyttöjärjestelmän todellisesta paljaasta metallista tai tietokoneen laitteistosta. Siten virtuaalikone istuu hypervisorin päällä, mikä tekee laitteistoresurssit käytettävissä abstraktiokerroksen ansiosta.
Virtuaalikoneissa on täydellinen käyttöjärjestelmä (vieraskäyttöjärjestelmä), joka on riippumaton taustalla olevasta käyttöjärjestelmästä (isäntäkäyttöjärjestelmä), johon hypervisor on asennettu. Vieraileva käyttöjärjestelmä tarjoaa sitten alustan sovellusten rakentamiseen, testaamiseen ja käyttöönottoon kirjastojen ja binääritiedostojen rinnalla.
[ Saatat myös pitää: KVM: n asentaminen CentOS/RHEL -laitteeseen 8 ]
Hypervisoreita on kahdenlaisia:
Tämä hypervisori on asennettu suoraan fyysiselle palvelimelle tai sen alla olevaan laitteistoon. Hypervisorin ja tietokoneen laitteiston välissä ei ole käyttöjärjestelmää, joten tagin nimi Paljas metalli hypervisori. Se tarjoaa erinomaista tukea, koska resursseja ei jaeta isäntäkäyttöjärjestelmän kanssa.
Tehokkuutensa vuoksi tyypin 1 hypervisoreita käytetään enimmäkseen yritysympäristöissä. Tyypin 1 hypervisor -toimittajia ovat mm VMware Esxi ja KVM.
Tätä pidetään myös isännöitynä hypervisorina. Se on asennettu isäntäkäyttöjärjestelmän päälle ja jakaa taustalla olevat laiteresurssit isäntäkäyttöjärjestelmän kanssa.
Tyypin 2 hypervisorit ovat ihanteellisia pieniin tietokoneympäristöihin, ja niitä käytetään enimmäkseen käyttöjärjestelmien ja tutkimuksen testaamiseen. Tyypin 2 hypervisor -toimittajia ovat mm Oracle VirtualBox ja VMware Workstation Pro.
Virtuaalikoneet ovat yleensä kooltaan valtavia (voivat viedä useita gigatavuja), hitaasti käynnistyvät ja pysähtyvät ja syövät paljon järjestelmäresursseja, mikä johtaa keskeytyksiin ja hitaan suorituskyvyn rajoittamiseen. Sellaisena virtuaalikone katsotaan tilaa vieväksi ja siihen liittyy korkeita yleiskustannuksia.
Toisin kuin virtuaalikone, kontti ei vaadi hypervisoria. Säiliö sijaitsee fyysisen palvelimen ja sen käyttöjärjestelmän päällä ja sillä on sama ydin kuin käyttöjärjestelmä muun muassa kirjastojen ja binääritiedostojen kanssa. Samassa järjestelmässä voi käyttää useita säilöjä, joista kukin suorittaa omat sovelluksensa ja prosessinsa muilta. Suosittuja konttialustoja ovat mm Satamatyöläinen ja Podman.
Toisin kuin virtuaalikoneet, kontit toimivat täysin erillään taustalla olevasta käyttöjärjestelmästä. Säiliöt ovat poikkeuksellisen kevyitä-vain muutamia megatavuja-vievät vähemmän tilaa ja ovat resurssiystävällisiä. Ne on helppo käynnistää ja pysäyttää ja käsitellä enemmän sovelluksia kuin virtuaalikone.
Säiliöt tarjoavat kätevän tavan suunnitella, testata ja ottaa käyttöön sovelluksia tietokoneeltasi suoraan tuotantoympäristöön, olipa kyse sitten tilasta tai pilvestä. Tässä on joitain konttiratkaisujen käytön eduista.
Ennen kontteja meillä oli vanhanaikainen monoliittinen malli, jossa koko sovellus, joka käsitti sekä etu- että taustakomponentit, niputetaan yhdeksi paketiksi. Säiliöt mahdollistavat sovelluksen jakamisen useisiin yksittäisiin komponentteihin, jotka voivat kommunikoida keskenään.
Tällä tavalla kehitystiimit voivat tehdä yhteistyötä sovelluksen eri osissa, ellei sovellusten vuorovaikutusta toisiinsa tehdä suuria muutoksia.
Tähän mikropalvelujen käsite perustuu.
Modulaarisuus lisää tuottavuutta, koska kehittäjät voivat työskennellä sovelluksen yksittäisten osien parissa ja korjata virheitä paljon nopeammin kuin aiemmin.
Verrattuna virtuaalikoneisiin ja muihin tavanomaisiin tietokoneympäristöihin kontit käyttävät vähemmän järjestelmäresursseja, koska ne eivät sisällä käyttöjärjestelmää. Tämä estää tarpeettomat menot kalliiden palvelimien hankkimiseen sovellusten rakentamiseen ja testaamiseen.
Pienen jalanjälkensä vuoksi konttipohjaiset sovellukset voidaan helposti ottaa käyttöön useissa tietokoneympäristöissä / käyttöjärjestelmissä.
Säiliöt mahdollistavat sovellusten nopean käyttöönoton ja skaalauksen. Ne tarjoavat myös tarvittavan joustavuuden sovellusten käyttöönotossa useissa ohjelmistoympäristöissä.
Kontit ovat avainasemassa DevOps ja olisi mahdotonta kuvitella, millainen tilanne olisi ilman konttipohjaisia sovelluksia. Mitä kontit tuovat pöydälle?
Ensinnäkin säiliöt tukevat mikropalveluarkkitehtuuria, jolloin koko sovelluksen rakennuspalikoita voidaan kehittää, ottaa käyttöön ja skaalata itsenäisesti. Kuten mainittiin, tämä lisää yhteistyötä ja nopeaa sovellusten käyttöönottoa.
Säiliöillä on myös tärkeä rooli CI/CD -putkilinjojen helpottamisessa tarjoamalla hallittu ja johdonmukainen ympäristö rakennussovelluksille. Kaikki kirjastot ja riippuvuudet on pakattu koodin kanssa yhdeksi yksiköksi nopeampaa ja helpompaa käyttöönottoa varten. Testattu sovellus on tarkka ohjelmisto, joka otetaan käyttöön tuotannossa.
Lisäksi säilöt parantavat korjaustiedostojen ja päivitysten käyttöönottoa, kun sovellus on jaettu useisiin mikropalveluihin, joista jokainen on erillisessä säilössä. Yksittäiset säiliöt voidaan tutkia, korjata ja käynnistää uudelleen keskeyttämättä muuta sovellusta.
Jokainen organisaatio, joka pyrkii saavuttamaan kypsyyden DevOps pitäisi harkita säiliöiden voiman hyödyntämistä ketterässä ja saumattomassa käyttöönotossa. Haasteena on niiden määrittäminen, suojaaminen ja saumaton käyttöönotto useissa ympäristöissä.