Ohjelmointi

Miksi sinun pitäisi käyttää Dockeria ja kontteja

Vuonna 1981 julkaistu kirja nimeltäNaulaamalla hyytelö puuhun, kuvailee ohjelmistoa "epämääräiseksi ja vaikeasti lujaksi otteeksi". Se oli totta vuonna 1981, ja se on totta lähes neljä vuosikymmentä sitten. Ohjelmisto, riippumatta siitä, onko se ostamasi tai itse rakentamasi sovellus, on edelleen vaikea ottaa käyttöön, vaikea hallita ja vaikea suorittaa.

Docker-kontit tarjoavat tavan tarttua ohjelmistoihin. Voit kääriä sovelluksen Dockerilla siten, että sen käyttöönotto- ja ajonaikaiset ongelmat - kuinka paljastaa se verkossa, kuinka hallita sen tallennustilan ja muistin ja I / O: n käyttöä, kuinka hallita käyttöoikeuksia - käsitellään itse sovelluksen ulkopuolella ja tavalla, joka on johdonmukainen kaikissa "kontti" -sovelluksissa. Voit ajaa Docker-säilösi millä tahansa käyttöjärjestelmän kanssa yhteensopivalla isännällä (Linux tai Windows), johon Docker-ajonaika on asennettu.

Docker tarjoaa monia muita etuja tämän kätevän kapseloinnin, eristämisen, siirrettävyyden ja hallinnan lisäksi. Docker-astiat ovat pieniä (megatavuja). Ne alkavat heti. Heillä on omat sisäänrakennetut mekanismit versiointia ja komponenttien uudelleenkäyttöä varten. Ne voidaan jakaa helposti julkisen Docker Hubin tai yksityisen arkiston kautta.

Tässä artikkelissa tutkin, kuinka Docker-kontit helpottavat sekä ohjelmistojen rakentamista että käyttöönottoa - ongelmakontit käsittelevät, miten ne käsittelevät niitä, milloin ne ovat oikea vastaus ongelmaan ja milloin eivät.

Ennen Docker-astioita

Yritysohjelmistoja on useiden vuosien ajan käytetty tyypillisesti joko "paljaalla metallilla" (eli asennettu käyttöjärjestelmään, jolla on täydellinen hallinta taustalla olevaan laitteistoon) tai virtuaalikoneeseen (eli asennettu käyttöjärjestelmään, joka jakaa taustalla olevan laitteiston) muiden "vieras" -käyttöjärjestelmien kanssa). Luonnollisesti paljaalle metallille asentaminen teki ohjelmistosta tuskallisen vaikeaa liikkua ja sitä oli vaikea päivittää - kaksi rajoitusta vaikeuttivat IT: n vastaamista ketterästi liiketoiminnan tarpeiden muutoksiin.

Sitten tuli virtualisointi. Virtualisointialustat (tunnetaan myös nimellä "hypervisorit") antoivat useille virtuaalikoneille jakaa yhden fyysisen järjestelmän, joista kukin virtuaalikone jäljittelee koko järjestelmän käyttäytymistä, täydennettynä omalla käyttöjärjestelmällä, tallennustilalla ja I / O: lla, eristetyllä tavalla . IT voi nyt reagoida tehokkaammin liiketoiminnan vaatimusten muutoksiin, koska virtuaalikoneet voidaan kloonata, kopioida, siirtää ja kehrätä ylös tai alas vastaamaan kysyntään tai säästämään resursseja.

Virtuaalikoneet auttoivat myös leikkaamaan kustannuksia, koska useampia virtuaalikoneita voitiin yhdistää vähemmän fyysisiin koneisiin. Vanhemmat sovellukset käyttävät vanhat järjestelmät voidaan muuttaa virtuaalikoneiksi ja fyysisesti poistaa käytöstä säästääksesi vielä enemmän rahaa.

Mutta virtuaalikoneilla on edelleen osansa ongelmista. Virtuaalikoneet ovat suuria (gigatavuja), joista jokaisessa on täydellinen käyttöjärjestelmä. Vain niin monet virtualisoidut sovellukset voidaan yhdistää yhteen järjestelmään. VM: n tarjoaminen vie vielä melko paljon aikaa. Lopuksi, virtuaalikoneiden siirrettävyys on rajoitettua. Tietyn ajan kuluttua virtuaalikoneet eivät pysty tuottamaan sellaista nopeutta, ketteryyttä ja säästöjä, joita nopeasti liikkuvat yritykset vaativat.

Docker-kontin edut

Kontit toimivat vähän kuin virtuaalikoneet, mutta paljon tarkemmin ja rakeisemmin. Ne eristävät yhden sovelluksen ja sen riippuvuudet - kaikki ulkoiset ohjelmistokirjastot, joita sovellus tarvitsee suorittaa - sekä taustalla olevasta käyttöjärjestelmästä että muista säilöistä. Kaikilla konttisovelluksilla on yksi yhteinen käyttöjärjestelmä (joko Linux tai Windows), mutta ne on jaoteltu toisistaan ​​ja koko järjestelmästä.

Docker-konttien edut näkyvät monissa paikoissa. Tässä on joitain Dockerin ja konttien tärkeimpiä etuja:

Docker mahdollistaa järjestelmäresurssien tehokkaamman käytön

Konttisäilöissä olevat sovellukset käyttävät paljon vähemmän muistia kuin virtuaalikoneet, ne käynnistyvät ja pysähtyvät nopeammin, ja ne voidaan pakata paljon tiheämmin isäntäkoneisiinsa. Kaikki tämä merkitsee vähemmän IT-menoja.

Kustannussäästöt vaihtelevat sen mukaan, mitä sovelluksia pelataan ja kuinka paljon resursseja kuluttavat ne voivat olla, mutta säilöt toimivat aina tehokkaampina kuin virtuaalikoneet. On myös mahdollista säästää ohjelmistolisenssien kustannuksissa, koska tarvitset paljon vähemmän käyttöjärjestelmän esiintymiä samojen kuormitusten suorittamiseksi.

Docker mahdollistaa nopeammat ohjelmistojen toimitusjaksot

Yritysohjelmiston on reagoitava nopeasti muuttuviin olosuhteisiin. Tämä tarkoittaa sekä helppoa skaalausta kysynnän tyydyttämiseksi että helppoa päivittämistä uusien ominaisuuksien lisäämiseksi yrityksen vaatimalla tavalla.

Docker-konttien avulla uusien ohjelmistoversioiden ja uusien liiketoimintaominaisuuksien tuotanto on helppoa nopeasti tuotannossa - ja voit tarvittaessa palata takaisin edelliseen versioon. Ne helpottavat myös sinisen / vihreän käyttöönoton kaltaisten strategioiden toteuttamista.

Docker mahdollistaa sovellusten siirrettävyyden

Yrityssovelluksen suorittamisella on merkitystä - palomuurin takana, jotta asiat pysyvät lähellä ja turvallisia. tai julkisessa pilvessä, jotta yleisö pääsee helposti käsiksi ja resurssit ovat joustavia. Koska Docker-säilöt sisältävät kaiken sovelluksen suorittamisen (ja vain ne), ne sallivat sovellusten siirtämisen helposti ympäristöjen välillä. Kaikki isännät, joille on asennettu Docker-ajonaika - olipa kyseessä kehittäjän kannettava tietokone tai julkinen pilvi-ilmentymä, voivat käyttää Docker-säilöä.

Docker loistaa mikropalveluarkkitehtuuria

Kevyet, kannettavat ja itsenäiset Docker-kontit helpottavat ohjelmistojen rakentamista eteenpäin ajattelevilla linjoilla, joten et yritä ratkaista huomisen ongelmia eilisen kehitystavan avulla.

Yksi ohjelmistomallisäiliöistä helpottaa mikropalveluja, joissa sovellukset koostuvat monista löyhästi kytketyistä komponenteista. Hajottamalla perinteiset, "monoliittiset" sovellukset erillisiksi palveluiksi, mikropalvelut mahdollistavat toimialasovelluksen eri osien skaalaamisen, muokkaamisen ja huollon erikseen - erillisillä tiimeillä ja erillisillä aikatauluilla, jos se sopii yrityksen tarpeisiin. liiketoimintaa.

Säiliöitä ei vaadita toteuttamaan mikropalveluja, mutta ne soveltuvat täydellisesti mikropalvelujen lähestymistapaan ja ketteriin kehitysprosesseihin yleensä.

Ongelmat, joita Docker-kontit eivät ratkaise

Ensimmäinen asia, joka on pidettävä mielessä konttien suhteen, on sama neuvo, joka pätee mihin tahansa ohjelmistotekniikkaan: Tämä ei ole hopealuoti. Telakointiasemat yksin ei voi ratkaista kaikkia ongelmia. Erityisesti:

Docker ei korjaa tietoturvaongelmiasi

Säiliössä olevat ohjelmistot voivat olla oletusarvoisesti turvallisempia kuin paljaalla metallilla toimivat ohjelmistot, mutta se on kuin sanoa, että talo, jonka ovet on lukittu, on turvallisempi kuin talo, jonka ovet ovat auki. Se ei kerro mitään naapuruston kunnosta, varkaille houkuttelevien arvoesineiden näkyvästä läsnäolosta, siellä asuvien ihmisten rutiinista ja niin edelleen. Säiliöt voivat lisätä sovellukseen tietokerroksen, mutta vain osana yleistä ohjelmaa sovelluksen suojaamiseksi asiayhteydessä.

Docker ei muuta sovelluksia maagisesti mikropalveluiksi

Jos säilöit olemassa olevan sovelluksen, se voi vähentää sen resurssien kulutusta ja helpottaa käyttöönottoa. Mutta se ei automaattisesti muuta design tai miten se on vuorovaikutuksessa muiden sovellusten kanssa. Nämä edut syntyvät vain kehittäjän ajasta ja vaivasta, ei vain toimeksiannosta siirtää kaikki kontteihin.

Laita vanhan koulun monoliittinen tai SOA-tyyppinen sovellus konttiin, ja päädyt, vanha, konttiin. Se ei tee siitä mitään hyötyä työhösi; jos jotain, se saattaa tehdä siitä vähemmän hyödyllisen.

Docker ei korvaa virtuaalikoneita

Yksi jatkuva myytti kontteista on, että ne tekevät virtuaalikoneista vanhentuneita. Monet sovellukset, jotka toimivat ennen virtuaalikoneessa voi siirretään säiliöön, mutta se ei tarkoita kaikki heistä voi tai pitäisi. Jos esimerkiksi alalla on tiukat sääntelyvaatimukset, et ehkä voi vaihtaa säiliöitä virtuaalikoneisiin, koska virtuaalikoneet tarjoavat enemmän eristystä kuin kontit.

Docker-konttien kotelo

Yrityskehitystyö on tunnetusti piilotettua ja hidasta reagoimaan muutoksiin. Yrityskehittäjät hankaavat tällaisia ​​rajoituksia koko ajan - IT: n heille asettamat rajoitukset, yrityksen koko vaatimukset. Docker ja kontit antavat kehittäjille enemmän kaipaamaansa vapautta ja tarjoavat samalla tapoja rakentaa liiketoimintasovelluksia, jotka vastaavat nopeasti muuttuviin liiketoimintaolosuhteisiin.