Dokkide vormistamise teenused kirjutatud ajakirjades Go, SpringBoot ja Ballerina - võrdlus

Tahtsin näha, kui lihtne on kirjutada lihtne HTTP-põhine teenus ja seda dokkide keskkonnas kasutusele võtta. Võtsin kolm erinevat keelt / raamistikku (Go, SpringBoot, Ballerina), mida saab kasutada http-teenuste kirjutamiseks ja nende toe võrdlemiseks teenuse hõlpsaks dokumenteerimiseks ja seejärel juurutamiseks. Vaatame neid kõiki koos näidetega.

Mine

Go-l on kohalik toetus http-põhiste teenuste kirjutamiseks. Näide http-teenusest Go's on järgmine.

Saame selle käimisprogrammi üles ehitada ja käivitada nagu allpool.

$ go ehitama helloWorld.go
$ ./helloWorld

Kui see on käivitatud, pääseme sellele teenusele juurde URL-i abil - http: // localhost: 8080 / tere

Vaatame, kuidas ülaltoodud teenust Dockeri keskkonnas juurutada. Ma ei leidnud otsest või omamaist lähenemisviisi ülalnimetatud juurutamiseks Dockeri keskkonda, kuna me peame kõigepealt alustama Dockerfile'i käsitsi kirjutamisest, et ülaltoodud teenust juurutada. Pärast mõningast otsimist suutsin selle teenuse juurutada, kirjutades dockerfaili ning ehitades ja juurutades selle.

Docker-faili näidisfail, mida kasutasin, on järgmine.

Ma kasutasin selleks uusimat doki pilti go build ja pärast doki faili loomist peame selle üles ehitama ja käivitama nagu allpool.

$ docker build -t .
$ docker run -d -p 8080: 8080

Teenus töötab nüüd doki konteineris ja sellele pääseb juurde sama URL-i kasutades kui varem.

SpringBoot

SpringBoot on lihtne viis rakenduse alglaadimiseks. Kasutasin SpringBooti rakenduse loomiseks veebiriista kevade algataja. See loob maven projekti, mille ehitamisel luuakse käivitatav jar-fail kõigi nõutavate sõltuvustega.

Lihtsa http-teenuse loomiseks on meil vaja vähemalt järgmisi klasse.

Rakenduse klass, mis käivitab rakenduse

Päringukontrolör, kes tegeleb päringute / vastustega.

Ülalolevat teenust saame luua ja käitada, kasutades allpool toodud rakendust javen / Java.

$ mvn puhas install
$ java -jar eesmärk / tere-maailm-1.0.jar

Veeb SpringBoot kasutab teenuse kasutuselevõtmiseks ja kuvamiseks altpoolt romati ning teenuse juurde pääseme aadressil - http: // localhost: 8080 / tere

Nüüd saate vaadata, kuidas ülaltoodud kevadpõhist teenust dokkerdada.

Ka SpringBooti jaoks peame alustama käsitsi Dockerfile'i loomisest ja sisaldama asjakohaseid juhiseid, mis on vajalikud dokkuri pildi ehitamiseks käivitatavast jarist, mille saime eelmisest sammust.

Allpool on toodud näiteks Dockerfile SpringBooti stsenaariumi kohta koos minimaalsete juhistega

Saame üles ehitada ülaltoodud Dockerfaili ja käivitada selle nagu allpool.

$ docker build -t .
$ docker run -d -p 8080: 8080

Kui oleme ülaltoodud konteineri käivitanud, peaks meil teenusele juurde pääsema sama URL-i kasutades kui varem.

Baleriin

Balleirnal on esmaklassiline tugi teenuste kirjutamiseks ja eksponeerimiseks. Baleriinis kirjutatud lihtne HTTP-põhine teenus on järgmine.

Me saame seda baleriiniteenust üles ehitada ja käitada järgmiselt.

$ baleriin ehitab helloWorld.bal
$ baleriin käivitab helloWorld.balx

Kui oleme ülaltoodud teenuse käivitanud, pääseme sellele juurde aadressil - http: // localhost: 9090 / tere / ütleme Hello

Nüüd saate vaadata, kuidas seda teenust dokkerdada ja juurutada. Selgub, et Ballerina on ülalnimetatud teenuse jaoks dokipildi hõlpsaks loomiseks sisseehitatud toe. Kasutaja ei pea Dockerfaili loomist ja selle ülesehitamist käsitsi alustama, kuna kõik funktsioonid antakse Ballerina keele tasemel natiivselt. Seal on hõlpsasti kättesaadavad doki kasutuselevõtuga seotud märkused, mis pärinevad moodulist (ballerinax / docker), mida saab kasutada ülaltoodud teenusega. Ülaltoodud teenuse värskendatud versioon koos doki juurutamisega seotud märkustega on järgmine.

Ülaltoodud märkustest aru saamiseks on üsna lihtne edasi minna. @Docker: Expose annab dokkide keskkonnale teada, milliseid sadamaid paljastada. @Docker: Configil on põhimõtteliselt doki pildi nimi, silt, versioonid jne, mida on vaja Dockerfaili loomiseks.

Pärast teenuse värskendamist dokkidega seotud märkustega, kui oleme selle üles ehitanud, genereerib Ballerina automaatselt Dockerfaili, ehitab selle üles ja loob dokkuri pildi, mis läheb kohalikku dokkide registrisse. Ehituse väljund näeb välja järgmine.

Automaatselt genereeritud Docker-failil on järgmine sisu.

Ülaltoodud sisust näeme, et Docker-faili loomisel on kasutatud annotatsioonidega antud väärtusi.

Nüüd on vaja väljastada ainult käivituskäsk nagu allpool, mida soovitati ehituse väljundis.

$ doki käitus -d -p 9090: 9090 helloworld: v1.0

Ülaltoodud käsuga peaks meil olema juurdepääs baleriiniteenusele, mis töötab konteineris sama URL-i kasutades.

Niisiis uurisime, kuidas kirjutada lihtsat http-teenust Go, SpringBoot & Ballerina ning kuidas teenus dokkerdada ja konteinerisse juurutada.

Kokkuvõtlikult võib öelda, et Go ja SpringBoot vajavad dokija pildi üleslaadimiseks http-teenusest / -rakendusest veidi täiendavat ja käsitsi tööd. Kuid baleriinil on loomulik tugi dokkide piltide loomiseks teenustest ja nende juurutamiseks, mis näib täitvat programmeerimiskeelte lünka, pakkudes tuge integratsiooni aspektidele.