Docker containerin eli säiliön edut ja skaalautuvuus

Docker on nopeasti Suomessakin kasvava alusta erilaisille verkkosovelluksille. Dockerin toiminta perustuu säiliöihin/kontteihin (engl. container) joita voidaan nopeasti määritellä halutun sovelluksen mukaiseksi. Docker-säiliöt asetuksineen ja ympäristöineen eivät vaadi omaa käyttöjärjestelmää, toisin kuin perinteinen virtuaalipalvelin. Toimintamalli muutenkin eroaa virtuaalipalvelimen toiminnasta merkittävästi, sillä suorituskykyä hallinnoidaan tavanomaisen virtualisoinnin sijaan säiliökohtaisesti.

Palvelimen resurssit jakautuvat tämän avulla tehokkaammin mikä näkyy käyttäjälle edullisena hintana ja joustavampana suorituskykynä. XetNET Docker -palvelussa konttien hinnoittelu on jopa tuntikohtainen, eli väliaikaisiin suorituskyvyn tarpeisiin on säiliöiden kokoa/suorituskykyä helppo muuttaa.

Kuva (yllä): Docker-ympäristö ei vaadi erillisiä käyttöjärjestelmiä, eikä siten varaa resursseja samalla tavalla kuin virtuaalipalvelin (kts. alta kuva virtuaalipalvelimen toimintatavasta). Suorituskyvyn vertikaalinen skaalautuvuus tehdään Dockerissa säiliökohtaisesti.

Esimerkissä yllä Sovellus A:lle on varattu suorituskykyä enemmän tietokannalle kuin www-palvelimelle (PHP, LiteSpeed). Tämä saattaa olla tarpeen esimerkiksi verkkopalvelussa, jossa tietokannalle kaivataan muskeleita enemmän kuin tiedostopalvelimelle. Lisäksi Sovellus A:n kaveriksi on valittu tietokantaa nopeuttava Redis-välimuisti, jossa tietokannan käskyt tapahtuvat palvelimen huippunopeassa RAM-välimuistissa.

Tämän tyyppisiä erikoisratkaisuja ei välttämättä perinteisellä webhotelli-ratkaisulla pystytä toteuttamaan, jotka vaatisivat joka tapauksessa virtuaalipalvelimen. XetNET Dockerin hinnoittelun takia ratkaisu on siksi erittäin houkutteleva (alk. 4,50 €/kk/säiliö +ALV). Huom! Redis vaatii tuen verkkosovelluksesta eli tarkista, voiko oma sovelluksesi hyödyntää sitä. Lue, miten Redis kytketään Dockerissa päälle WordPress-sovellukselle.

Kuva (yllä): Virtuaalipalvelimet ovat toisistaan eristettyjä, jossa sovelluksilla on omat käyttöjärjestelmänsä. Jokainen käyttöjärjestelmä on konfiguroitava käyttäjien määritelmien ja asetusten mukaiseksi. Suorituskyvyn skaalautuvuus tehdään virtuaalipalvelinkohtaisesti (esim. CPU/RAM). Ratkaisu on hyvä dedikoitua suorituskykyä kaipaavalle, mutta palvelimen ylläpidon näkökulmasta oman käyttöjärjestelmän ylläpito vaatii enemmän huolenpitoa Dockeriin nähden.

Docker containerin/säiliön nopea käyttöönotto

Yksi käyttöönotto Docker-palvelussa voi sisältää useamman säiliön. Käyttöönottoa varten valitaan haluttu sovellus ja tietokanta (kts. alta kuva), sekä määritellään säiliön koko (small, medium, large).

Dockerin helppo hallinta perustuu standardisoituun rakenteeseen, minkä ansiosta säiliöiden sisälle rakennettujen ”Docker-kuvien” (engl. image) siirto onnistuu Dockerissa helposti. Etenkin sovelluskehittäjille tämä nopeuttaa testausta kun käyttöönotto tai muutokset eivät vaadi koko käyttöjärjestelmän (OS) uudelleenkäynnistystä.

Alla ruutukaappaus kirjoitushetkellä (joulukuu 2020) tarjolla olevista sovellusvaihtoehdoista:

Esimerkiksi WooCommerce-verkkokaupan käyttöönottoon tarvitaan kaksi säiliötä: WooCommerce-säiliö (www-palvelin) sekä MariaDB-säiliö (tietokanta). Kummallekin säiliölle määritellään suorituskykyä ohjaava koko: S, M tai L – eli small, medium tai large. Lisäksi käyttäjä voi tilata veloituksettoman phpMyAdmin-työkalun tietokannan helppoon hallinnointiin.

Vinkki: Kokeile WooCommerce-ympäristössä ElasticSearch-säiliötä, jonka avulla saat haku- ja suodatus (filtering) -toimenpiteitä nopeuttavan säiliön.

Docker containerin eli säiliön suorituskyky XetNET Docker -palvelussa eri kokovaihtoehdoissa:

Small: 1 x CPU-ydin, 512 MB muisti, 10 Gt levytila.
Medium: 1 x CPU-ydin, 1024 MB muisti, 15 Gt levytila.
Large: 2 x CPU-ydin, 2048 MB muisti, 25 Gt levytila.

Yllä olevan esimerkin, eli säiliökohtaisen koon muutos on ns. vertikaalista skaalautuvuutta. Tämän lisäksi Dockerissa voi skaalata horisontaalisesti kaksi säiliötä toimimaan rinnakkain, jakamaan kuormaa. Esimerkiksi jos käytössäsi on verkkopalvelu, jossa on paljon tiedostoja kuten kuvia, joita www-palvelin tarjoilee käyttäjille, voit määritellä kaksi www-palvelinta toimimaan rinnakkain:

Kuva (yllä): Horisontaalinen skaalaus yhdistää kaksi Large-kokoista www-palvelinta toimimaan rinnakkain. Kuorma tasaantuu kahdelle tiedostopalvelimelle ja verkkopalvelun suorituskyky paranee käyttäjämäärän kasvaessa. Tällaisesta voi olla hyötyä mikäli yrityksesi osallistuu Leijonan luola -ohjelmaan tai ohjaat runsaasti kävijäliikennettä Black Friday -tyyppisessä kampanjoinnissa palveluun.

Horisontaalinen skaalaus määritellään helposti XetNET Dockerin asetuksissa mm. www-palvelimelle näin:

Sekä vertikaalisen että horisontaalisen skaalautuvuuden ansiosta Docker on erittäin suosittu vaihtoehto sellaisille sovelluksille joissa suorituskyky saattaa vaihdella, tai mikäli tulevaisuuteen halutaan helppo optio päivittää suorituskykyä suuremmaksi vain muutamalla klikkauksella.

Innostuitko?

Kokeile ja tilaa Docker käyttöösi 10 € kokeiluversiolla ja tutustu – uskomme, että ihastut Dockerin helppouteen ja huimaan suorituskykyyn!

Jaa kirjoitus:

Chatbot