Avoimen lähdekoodin NGINX on, riippuen lähteestä, maailman suosituin tai toiseksi suosituin verkkopalvelinohjelmisto, joka voi toimia lisäksi käänteisenä välityspalvelimena (reverse proxy), kuormanjakajana (load balancer), sähköpostin välityspalvelimena sekä HTTP-välimuistina. Vuodesta 2011 saakka on tarjolla ollut myös maksullinen NGINX Plus. Mitä sellaista tämä maksullinen versio sitten tuo pöytään, joka perustelisi investoinnin? Tätä avaan tässä blogissa.
Kun kehitetään verkkosovellusta, jonka on pystyttävä hallitsemaan tehokkaasti ja luotettavasti valtava määrä liikennettä – valitaan verkkopalvelimeksi joka kerta NGINX. Luotiinhan koko sovellus juuri tätä tarkoitusta varten.
Avoimen lähdekoodin ratkaisuna sitä on voitu myös vapaasti muokata ja jatkaa kolmansien osapuolien kehittämillä lisätoiminnallisuuksilla.
NGINX Plus on puolestaan kaupallinen tuote, joka on rakennettu avoimen lähdekoodin version pohjalta.
Mutta mitkä näiden erot ovat ja milloin päivittämistä maksulliseen NGINX Plus:n kannattaa harkita?
Kaikki sovelluskehityksen teknologia-stackin osat on valittu siksi, että niiden avulla kyetään rakentamaan lopputuote, joka vastaa liiketoiminnalliseen tarpeeseen. NGINX valitaan tyypillisesti siksi, että halutaan rakentaa verkkosovellus, joka ei kyykkää silloinkaan, kun kävijöiden ja kyselyiden määrät ovat valtavia.
NGINX Plus:n päivittämistä kannattaa pohtia esimerkiksi silloin kun:
Seuraavaksi kerron käytännön esimerkin kautta, miten eräs videoiden suoratoistopalvelu päätyi vaihtamaan maksulliseen NGINX Plus:iin ja mitä sillä saavutettiin.
Videoiden suoratoistopalvelu sisälsi tässä tapauksessa yhdistelmän erilaisia lähetysmuotoja: livelähetyksiä, rajoitetun ajan voimassa olevia jälkilähetyksiä ja maksullisia sekä maksuttomia ohjelmakirjastoja.
Data kulki käyttäjän ja palvelun välillä neljän palvelualueen kautta.
Ohjelmakatalogit tai kirjastot, joita oli useita: Jokainen näistä sisälsi suuren määrän sisältöä, jonka näyttämiseen liittyy rajoitteita:
Suosittelupalvelu: Koska ohjelmakatalogit ovat valtavia, ei niiden selaaminen ole järkevää tai mahdollista. Suosittelupalvelu käy läpi koko sisältötietokannan ja palauttaa käyttäjälle suosituksia tämän aiemmin kuluttamien sisältöjen perusteella.
Asiakaskohtainen personointi: Jokaisella käyttäjällä on omanlaisensa näkymä, joka perustuu käyttöhistoriaan. Tämä sisältää mm. muistin siitä, mitä sisältöjä käyttäjä on kuluttanut ja minkä verran.
Transaktiosuuntautuneet maksamispalvelut: Koska palvelussa on eri tasoja, joista osa on maksullisia, on digitaalisen palvelussa oltava yhteys myös asiakastietokantaan (CRM) sekä laskutus- ja maksupalveluihin.
Haasteeksi muodostui se, miten tällaisen palvelun infrastruktuuri kykenisi käsittelemään suosion kasvun sekä alati laajenevan valikoiman sisältöjä ja lähetystyyppejä. Myös asiakkaiden odotukset, esimerkiksi personoinnin osalta, kasvoivat ja toivat lisähaasteita palvelun kehittäjälle. Tässä vaiheessa siirtyminen mikropalveluarkkitehtuuriin oli enemmän kuin perusteltua.
Liikenteen ohjaaminen suuressa mikropalveluympäristössä tuotti sekin kuitenkin oman haasteensa. Vaikka avoimen lähdekoodin NGINX:llä oli mahdollista rakentaa toimiva ratkaisu myös tähän ympäristöön, kävi nopeasti ilmi, etteivät he kyenneet havaitsemaan, mitä palvelimilla ja välimuisteissa tapahtui. Myös muita rajoitteita ilmeni.
Tähän oli syynä se, ettei avoimen lähdekoodin versio pitänyt sisällään tarvittuja ominaisuuksia.
NGINX Plus toimii kaiken kattavana portinvartijana käyttäjän ja mikropalvelujen välillä.
Päivittämällä avoimen lähdekoodin versiosta NGINX Plus:n kyettiin rakentamaan käyttäjän ja mikropalvelujen välille tehokas portinvartija, joka:
Lisäksi NGINX Plus:n sisältämien kymmenien lisämittareiden avulla kyettiin luomaan livenä seurattava ohjausnäkymä siihen, mitä palvelun sisällä tapahtuu. Samaa tietoa hyödynnettiin entistä tehokkaampaan välimuistin käyttöön, jolla palvelinten kuormitusta pystytään jatkossa vähentämään entisestään.
Lopputuloksena saatiin aikaan:
Perustavanlaatuinen ero avoimen lähdekoodin NGINX:n ja maksullisen NGINX Plus:n välillä on se, että jälkimmäinen on kaikin puolin viimeistelty kaupallinen tuote. Tämä tarkoittaa, että se on suunniteltu helppokäyttöiseksi, käyttäjälle on tarjolla tukipalvelut ja ohjelmisto sisältää valtavasti ominaisuuksia, joita avoimen lähdekoodin versiossa ei ole.
Tässä esimerkissä hyödynnettiin mm. seuraavia ominaisuuksia:
Koko listan OSS:n ja NGINX Plus:n eroista näet täältä.
Lisäominaisuudet, helppokäyttöisyys ja kaupallinen tuki ovat niitä asioita, joiden vuoksi päivittämistä maksulliseen NGINX Plus:n kannattaa harkita. Skaalautuvuus, vakaus ja suorituskyky ovat kuitenkin asioita, jotka varmasti mietityttävät kaikkia omia palveluitaan kehittäviä yrityksiä.
Joten jos olette havainneet avoimen lähdekoodin NGINX:n mieleiseksi, keskustelemme mielellämme tarkemmin siitä, mitä te voisitte saavuttaa päivittämällä maksulliseen versioon.
Arrow F5 tiimi
Arrow ECS Finland Oy
Mail/Skype: f5.ecs.fi@arrow.com