Kaasaegne platvorm tarkvara arendamiseks ja juurutamiseks

See on esimene artikkel seerias materjale, mis kĂ€sitlevad muudatusi, parandusi ja tĂ€iendusi, mis on tulemas Red Hat OpenShift platvormi versioonis 4.0, et aidata valmistuda ĂŒleminekuks uuele versioonile.

Kaasaegne platvorm tarkvara arendamiseks ja juurutamiseks

Alates hetkest, kui Kubernetes'e areneva kogukonna esindajad sĂŒgisel 2014 Google'i Seattle'i kontoris esmakordselt kohtusid, oli selge, et Kubernetes on mÀÀratud muutma kaasaegseid tarkvara arendamise ja juurutamise lĂ€henemisviise. Samal ajal jĂ€tkasid avalikud pilveteenuse pakkujad aktiivset investeerimist infrastruktuuri ja teenuste arendamisse, mis on oluliselt lihtsustanud IT töö tegemist ja tarkvara loomist, muutes selle uskumatult kergesti kĂ€ttesaadavaks, millest enamik ei osanud aasta alguses unistadagi.

Muidugi, iga uue pilveteenuse vĂ€ljakuulutamisega kaasnesid mitmed arutelud ekspertide seas Twitteris, kus vaieldi vĂ€ga erinevatel teemadel – sealhulgas avatud lĂ€htekoodide ajastu lĂ”pust, kliendipoolse IT langusest (on-premises IT), pilves uue tarkvara monopoli vĂ€ltimatust ning sellest, kuidas uus X paradigmad asendab kĂ”ik eelnevad.

Tuleb mainida, et kÔik need arutelud olid pigem rumalad.

TĂ”de on see, et miski ei kao kuskile ja tĂ€na nĂ€eme eksponentsiaalset kasvu lĂ”ppproduktides ja nende arendamise viisides, mis seondub pideva uue tarkvara ilmumisega meie ellu. Ja hoolimata sellest, et kĂ”ik ĂŒmberringi muutub, jÀÀb kĂ”ik oma olemuselt samaks. Tarkvara arendajad kirjutavad endiselt vigaseid koode, operatsioonitehnika insenerid ja usaldusvÀÀrsuse spetsialistid kĂ€ivad endiselt pageritega ning saavad automaatseid teateid Slackis, juhid opereerivad endiselt OpEx ja CapEx mĂ”istetega ning iga kord, kui tekib tĂ”rge, ohkab vanem arendaja kurvalt: „Ma ĂŒtlesin ju.”

Mis on tÔeliselt arutlemise vÀÀrt., nii et see on see, milliseid tööriistu saame kasutada kvaliteetsemate tarkvaratoodete loomiseks ning kuidas need aitavad suurendada turvalisust ja muuta arenduse lihtsamaks ja usaldusvÀÀrsemaks. Projektide keerukuse suurenedes tekivad uued riskid ja tÀna on inimeste elu nii sÔltuv tarkvarast, et arendajad peavad kindlasti pingutama, et oma tööd paremini teha.

Kubernetes on ĂŒks sellistest tööriistadest. Töötatakse selle nimel, et Red Hat OpenShift raames ĂŒhendada see teiste tööriistade ja teenustega ĂŒhtseks platvormiks, mis vĂ”imaldaks tarkvara muuta usaldusvÀÀrsemaks, haldamiseks mugavamaks ja kasutajatele turvalisemaks.

Arvesse vĂ”ttes afoonitud, kĂŒsivad OpenShift'i meeskond endalt ĂŒhte lihtsat kĂŒsimust:

Kuidas muuta Kubernetesega töötamine lihtsamaks ja mugavamaks?

Vastus on ĂŒllatavalt ilmne:

  • automatiseerida keerukaid hetki pilves vĂ”i pilvevĂ€liselt;
  • fookust panna usaldusvÀÀrsusele, samal ajal keerukust varjates;
  • jĂ€rgida pidevat tööd lihtsate ja turvaliste uuenduste vĂ€ljalaskmiseks;
  • tagada kontrollitavus ja auditivĂ”imalus;
  • pĂŒĂŒelda algselt kĂ”rge turvalisuse tagamise poole, kuid mitte kasutusmugavuse arvelt.

JĂ€rgmine OpenShift'i vĂ€ljalase peaks arvesse vĂ”tma nii loojate kogemusi kui ka teiste arendajate kogemusi, kes suurtes mahtudes juurutavad tarkvara maailma suurimates ettevĂ”tetes. Samuti peab arvesse vĂ”tma kogu teadlikkust avatud ökosĂŒsteemide osas, mis tĂ€napĂ€eval moodustavad kaasaegse maailma aluse. Samal ajal tuleb loobuda varasemast hobiarendaja mentaliteedist ja minna ĂŒle uuele automatiseeritud tuleviku filosoofiale. See peaks olema „sild” vana ja uue tarkvara juurutamise vahel ning tĂ€ielikult kasutama kogu olemasolevat infrastruktuuri – pole tĂ€htis, kas seda haldab suurim pilveteenuse pakkuja vĂ”i töötab see vĂ€ikestes periferaalsetes sĂŒsteemides.

Kuidas sellise tulemuse saavutamine toimub?

Red Hat'is on tavaks teha pikka aega igavat ja tĂ€namatut tööd, et sĂ€ilitada juba loodud kogukonda ja vĂ€ltida projektide sulgemist, milles ettevĂ”te osaleb. Open-source kogukonnas on tohutult andekaid arendajaid, kes loovad kĂ”ige ebatavalisemaid asju — meelelahutust, haridust, uusi vĂ”imalusi ja lihtsalt ilusaid asju, kuid loomulikult ei oota keegi, et kĂ”ik osalised liiguksid samas suunas vĂ”i jĂ€rgiksid ĂŒhiseid eesmĂ€rke. Selle energia kasutamine, selle suunamine Ă”igesse voolu, on mĂ”nikord vajalik suundade arendamiseks, mis oleksid meie kasutajatele kasulikud, kuid samal ajal peame jĂ€lgima meie kogukondade arengut ja neilt Ă”ppima.

2018. aasta alguses omandas Red Hat projekti CoreOS, millel olid sarnased vaated tulevikule — turvalisem ja usaldusvÀÀrsem, loodud open-source'i pĂ”himĂ”tete alusel. EttevĂ”te töötas edasi nende ideede arendamise ja elluviimise nimel, ellu viies meie filosoofiat — pĂŒĂŒdes saavutada kogu tarkvara ohutut toimimist. Kogu see töö pĂ”hineb Kubernetesel, Linuxil, avalikel ja privaatsetel pilvedel ning tuhandetel teistel projektidel, mis moodustavad meie kaasaegse digitaalekosĂŒsteemi aluse.

Uus OpenShift 4 versioon saab olema arusaadav, automatiseeritud ja loomulikum.

OpenShift'i platvorm töötab parimate ja usaldusvÀÀrsete Linuxi operatsioonisĂŒsteemidega, bare-metal riistvara toega, mugava virtualiseerimisega, infrastruktuuri automaatse programmeerimisega ja loomulikult konteineritega (mis sisuliselt on lihtsalt Linuxi pildid).

Platvorm peab olema algusest peale turvaline, kuid samas vĂ”imaldama arendajatele mugavaid iteratsioone — see tĂ€hendab, et sellel peab olema piisavalt paindlikkust ja usaldusvÀÀrsust, samas lubades administraatoritel teostada auditeid ja tagada haldamise mugavus.

See peaks vÔimaldama jooksutada tarkvara "teenusena" ja mitte viima infrastruktuuri kontrollimatu laienemiseni operaatoritele.

See vĂ”imaldab arendajatel keskenduda reaalseid tooteid kasutajatele ja klientidele loomisele. Ei pea lĂ€bi ajama seadmete ja tarkvara seadistuste dĆŸunglist, ning kĂ”ik juhuslikud komplikatsioonid jÀÀvad möödunud aega.

OpenShift 4: NoOps platvorm, mis ei nÔua hooldust

Uues selle vĂ€ljaande kĂ€sitleti ĂŒlesandeid, mis aitasid kujundada ettevĂ”tte visiooni OpenShift 4 kohta. Meeskonnal on ĂŒlesanne maksimaalselt lihtsustada igapĂ€evase tarkvara hoolduse ja juhtimise ĂŒlesandeid, muutes need protsessid lihtsaks ja vaevatuks – nii implementijatele kui ka arendajatele. Kuid kuidas sellele eesmĂ€rgile lĂ€heneda? Kuidas luua tarkvara kĂ€itamiseks platvorm, mis vajab minimaalset sekkumist? Mida tĂ€hendab NoOps antud kontekstis?

Kui proovida abstraktiseerida, siis arendajate jaoks tĂ€hendab mĂ”isted «serverless» vĂ”i «NoOps» tööriistu ja teenuseid, mis vĂ”imaldavad peita „hooldus“ komponendi vĂ”i minimeerida seda koormust arendajale.

  • Töötage mitte sĂŒsteemidega, vaid rakendusliideste (API) kaudu.
  • Ärge tegelege tarkvara rakendamisega – las selle eest hoolitseb teenusepakkuja.
  • Ärge vĂ”tke kohe ette suure raamistiku loomist – alustage vĂ€ikeste fragmentide kirjutamisest, mis toimivad „ehitusplokkidena“, pĂŒĂŒdes, et see kood töötaks andmete ja sĂŒndmustega, mitte kettade ja andmebaasidega.

Ülesanne, nagu alati, on kiirendada tarkvara arendamise iteratsioone, luua vĂ”imalusi kvaliteetsemate toodete loomiseks ja vĂ”imaldada arendajal mitte muretseda sĂŒsteemide pĂ€rast, millel tema tarkvara töötab. Kogenud arendaja mĂ”istab suurepĂ€raselt, et kui keskenduda kasutajatele, vĂ”ib pilt kiiresti muutuda, seetĂ”ttu ei tohiks liiga palju vaeva nĂ€ha tarkvara kirjutamisega, kui teil puudub absoluutne veendumus selle vajalikkuses.

SĂŒsteemi hoolduses ja kasutamises tegutsevatele spetsialistidele vĂ”ib sĂ”na „NoOps” tunduda natuke hirmutav. Kuid suhtlemisel operatsioonitehnikutega muutub selgeks, et nende kasutatavad mustrid ja meetodid, mis on suunatud töökindluse tagamisele (Site Reliability Engineering, SRE), kattuvad paljuski eespool kirjeldatud mustritega.

  • Ärge juhtige sĂŒsteeme – automatiseerige nende haldamise protsessid.
  • Ärge tegelege tarkvara juurutamisega – looge selle rakendamiseks tegevusvĂ”rk.
  • PĂŒĂŒdke mitte liita kĂ”iki oma teenuseid ja vĂ€ltige, et ĂŒhe neist talitlushĂ€ire tooks kaasa kogu sĂŒsteemi rikke – jaotage need kogu infrastruktuuri ulatuses, kasutades automatiseerimise vahendeid, ning ĂŒhendage need, arvestades vĂ”imalust kontrollimiseks ja jĂ€lgimiseks.

SRE spetsialistid teavad, et midagi vĂ”ib valesti minna ja nad peavad jĂ€lgima ja lahendama probleeme – seetĂ”ttu automatiseerivad nad rutiinse töö ja mÀÀratlevad eelnevalt lubatud kĂ”rvalekalded (error budgets), et olla valmis prioriteetide seadmiseks ja otsuste tegemiseks probleemide ilmnemisel.

Kubernetes OpenShiftis on platvorm, mille eesmĂ€rk on lahendada kaks peamist ĂŒlesannet: selle asemel, et sundida teid tegelema virtuaalmasinate vĂ”i koormuse tasakaalustamise API-dega, töötate kĂ”rgema taseme abstraktsioonide – juurutamise protsesside ja teenustega. Selle asemel, et installida tarkvara agente, saate kĂ€ivitada konteinerid, ja selle asemel, et kirjutada oma jĂ€lgimistehnoloogia, kasutada platvormil juba olemasolevaid tööriistu. Nii et OpenShift 4 saladus ei ole tegelikult mingi saladus – peate lihtsalt rakendama SRE pĂ”himĂ”tteid ja serverita kontseptsioone ning viima need loogilisse lĂ”pule, et aidata arendajaid ja operatsioonitehnikuid.

  • Automatiseerida ja standardiseerida infrastruktuuri, mida rakendused kasutavad.
  • Siduda juurutamis- ja arendusprotsessid, piiranguteta arendajatele.
  • Tagada, et saja teenuse, funktsiooni, rakenduse vĂ”i terve tehnoloogiakihi kĂ€ivitamine, auditeerimine ja turvamine ei oleks ĂŒldse keerulisem kui esimese oma.

Kuid mis on OpenShift 4 platvormi erinevus eelkÀijatest ja "tavalistest" lÀhenemistest sarnaste probleemide lahendamiseks? Kuidas saavutatakse meeskondade skaleerimine, kes tegelevad rakendamise ja haldamisega? Ainus, mis loeb, on klaster. Nii et

  • Teeme nii, et klastrite eesmĂ€rk oleks selge (Kallis pilv, tĂ”stsin selle klaster ĂŒles, sest sain).
  • Masinad ja operatsioonisĂŒsteemid eksisteerivad selleks, et teenindada klastrit (Teie Majesteet).
  • Hallake hostide olekut klastrist, minimiseerige nende muutumist (drift).
  • Iga olulise sĂŒsteemielemendi jaoks on vajalik lapsehoidja (mehhanism), mis jĂ€lgib ja lahendab probleeme.
  • Iga sĂŒsteemi aspekti vĂ”i elemendi rike ning vastavad taastumise mehhanismid on tavaline osa elust.
  • Kogu infrastruktuur peab olema konfigureeritud API kaudu.
  • Kasutage Kubernetes't Kubernetes'e kĂ€itamiseks. (Jah-jah, see pole trĂŒkiviga.)
  • Uuendused peavad olema hĂ”lpsasti ja vaevatult installitud. Kui uuenduse installimiseks on vajalik rohkem kui ĂŒks hiireklĂ”ps, siis ilmselgelt teeme midagi valesti.
  • Iga komponendi jĂ€lgimine ja tĂ”rkeotsing ei tohiks probleeme tekitada ning seega peab kogu infrastruktuuri jĂ€lgimine ja aruandlus olema samuti lihtne ja mugav.

Kas soovite nÀha platvormi vÔimalusi tegutsemas?

OpenShift 4 eelversioon on arendajatele saadaval. Lihtsa paigaldustööriista abil saab klastrit kÀivitada AWS-is Red Hat CoreOS'i peal. Eelversiooni kasutamiseks on vajalik vaid AWS-i konto infrastruktuuri pakkumiseks ja hulk kontosid eelversiooni piltide juurde pÀÀsemiseks.

  1. Alustamiseks minge aadressile try.openshift.com ja klĂ”psake “Get Started.”
  2. Logige sisse oma Red Hat kontole (vÔi looge uus) ja jÀrgige juhiseid oma esimese klastrite seadistamiseks.

PĂ€rast eduka paigaldamise lĂ”petamist tutvuge meie koolitusmaterjalidega OpenShift Training, et saada ĂŒksikasjalik ĂŒlevaade sĂŒsteemidest ja kontseptsioonidest, mis muudavad OpenShift 4 platvormi nii lihtsaks ja mugavaks tööriistaks Kubernetes'e kĂ€itamiseks.

Proovige uut OpenShift'i vĂ€ljaannet ja jagage oma arvamust. Meie eesmĂ€rk on teha Kubernetesega töötamine vĂ”imalikult lihtsaks ja pingutuseta – NoOps tulevik algab juba tĂ€na.

Ja nĂŒĂŒd tĂ€helepanu!
Konverentsil DevOpsForum 2019 20. aprillil viib ĂŒks OpenShift'i arendajatest, Vadim Rutkovski, lĂ€bi meistriklassi — lĂ”hub kĂŒmme klastrit ja paneb need remontima. Konverents on tasuline, kuid sooduskoodiga #RedHat on 37% allahindlus.

Meistriklass toimub kell 17:15 – 18:15, ning stend on avatud kogu pĂ€eva. T-sĂ€rgid, mĂŒtsid, kleebised – nagu ikka!

Saali #2
„Siin tuleb kogu sĂŒsteem muuta: parandame purunenud k8s klastreid koos sertifitseeritud meistritega.“

Allikas: habr.com

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster