Wat ass DevOps

D'Definitioun vun DevOps ass ganz komplex, also musse mir d'Diskussioun doriwwer all Kéier erëm ufänken. Et ginn dausend Publikatiounen zu dësem Thema eleng op Habré. Awer wann Dir dëst liest, wësst Dir wahrscheinlech wat DevOps ass. Well ech net. Moien mäin Numm ass Alexander Titov (@osminog), a mir wäerte just iwwer DevOps schwätzen an ech wäert meng Erfahrung deelen.

Wat ass DevOps

Ech hu fir eng laang Zäit geduecht wéi ech meng Geschicht nëtzlech maachen, sou datt et vill Froen hei ginn - déi, déi ech mech stellen an déi, déi ech de Cliente vun eiser Firma stellen. Andeems Dir dës Froen beäntwert, gëtt d'Verstoe besser. Ech wäert Iech soen firwat DevOps aus menger Siicht gebraucht gëtt, wat et ass, erëm aus menger Siicht, a wéi Dir verstitt datt Dir erëm aus menger Siicht Richtung DevOps beweegt. De leschte Punkt wäert duerch Froen sinn. Andeems Dir se fir Iech selwer beäntwert, kënnt Dir verstoen ob Är Firma op DevOps geet oder ob et op iergendeng Manéier Problemer gëtt.


Eng Kéier war ech op d'Wellen vu Fusiounen an Acquisitioune gefuer. Als éischt hunn ech fir e klenge Startup mam Numm Qik geschafft, duerno gouf et vun enger liicht méi grousser Firma mam Numm Skype kaaft, déi duerno vun enger liicht méi grousser Firma mam Numm Microsoft kaaft gouf. Zu deem Moment hunn ech ugefaang ze gesinn wéi d'Iddi vun DevOps sech a verschiddene Gréisste Firmen transforméiert. Duerno hunn ech mech interesséiert fir DevOps aus Maartsiicht ze kucken, a meng Kollegen an ech hunn d'Firma Express 42 gegrënnt. Zënter 6 Joer beweege mir eis laanscht d'Wellen vum Maart.

Ënner anerem sinn ech ee vun den Organisateuren vun der DevOps Moskau Gemeinschaft an den Organisateur vun DevOps-Days 2017, awer ech hunn 2018 net organiséiert. Express 42 schafft mat ville Firmen. Mir wuessen DevOps do, kucken wéi et geschitt, zéien Conclusiounen, analyséieren, soen jidderengem eis Conclusiounen, an trainéieren Leit an DevOps Praktiken. Am Allgemengen maache mir eist Bescht fir eis Erfahrung an Expertise an dësem Beräich ze vergréisseren.

Firwat DevOps

Déi éischt Fro, déi jidderee verfollegt an ëmmer ass - firwat? Vill Leit mengen datt DevOps just Automatisatioun ass oder eng ähnlech Saach déi all Firma scho hat.

- Mir haten eng kontinuéierlech Integratioun - dat heescht datt mir schonn DevOps haten, a firwat ass all dës Saachen néideg? Si hunn am Ausland Spaass, awer si stoppen eis ze schaffen!

Iwwer 9 Joer Entwécklung vun der Gemeinschaft an der Methodik ass et scho kloer ginn datt dëst nach ëmmer kee Marketing Glitter ass, awer et ass nach ëmmer net ganz kloer firwat et gebraucht gëtt. Wéi all Tool a Prozess, huet DevOps spezifesch Ziler déi et schlussendlech erreecht.

All dëst ass wéinst der Tatsaach, datt d'Welt ännert. Hie bewegt sech vun der Enterprise Approche, wann d'Betriber riichtaus an en Dram réckelen, wéi eise Sankt Petersburger Klassiker gesongen huet, vu Punkt A op Punkt B no enger bestëmmter Strategie, mat enger bestëmmter Struktur dofir gebaut.

Wat ass DevOps

Prinzipiell soll alles an der IT no dëser Approche gebaut ginn. Hei gëtt IT exklusiv benotzt fir Prozesser ze automatiséieren.

D'Automatisatioun ännert sech net dacks, well wann eng Firma e gutt gedréchent Rut ënnergeet, wat ass et ze änneren? Et funktionnéiert - beréiert et net. Elo ginn Approchen an der Welt geännert, an deen genannt Agile suggeréiert datt den Endpunkt B net direkt sichtbar ass.

Wat ass DevOps

Wann eng Firma duerch de Maart geet, schafft mat engem Client, exploréiert se dauernd de Maart an ännert den Endpunkt B. Ausserdeem, wat méi dacks d'Firma seng Richtung ännert, wat se um Enn méi erfollegräich ass, well se méi Maart wielt. nischen.

D'Strategie gëtt vun enger interessanter Firma bewisen, déi ech viru kuerzem geléiert hunn. One Box Shave ass en Abonnement Liwwerung Service fir Raséierapparaten a Raséieraccessoiren an enger Këscht. Si wësse wéi se hir "Këscht" fir verschidde Cliente personaliséieren. Dëst gëtt vun enger bestëmmter Software gemaach, déi dann d'Bestellung un d'koreanesch Fabréck schéckt, déi de Produit produzéiert.

Dëse Produkt gouf vum Unilever fir $ 1 Milliard kaaft. Et konkurréiert elo mam Gillette an huet e groussen Undeel vun de Konsumenten um amerikanesche Maart ewechgeholl. One Box Shave soen:

— 4 Klingen? Sidd Dir eescht? Firwat braucht Dir dëst - et verbessert d'Qualitéit vum Raséier net. Eng speziell ausgewielte Crème, Doft an e qualitativ héichwäertegt Raséierapparat mat zwee Blades léise vill méi Problemer wéi déi domm 4 Gillette Blades! Kréie mer geschwënn op 10?

Dëst ass wéi d'Welt ännert. Unilever behaapt datt si e coolen IT-System hunn deen Iech erlaabt dëst ze maachen. Um Enn gesäit et no engem Konzept aus Zäit-ze-Maart, iwwer déi nach kee geschwat huet.

Wat ass DevOps

De Punkt vum Time-to-Market ass net wéi dacks mir ofsetzen. Dir kënnt dacks ofsetzen, awer d'Verëffentlechungszyklen wäerte laang sinn. Wann dräi Méint Verëffentlechungszyklen openeen iwwerlagert ginn, se ëm eng Woch verréckelen, stellt sech eraus datt d'Firma schéngt eemol d'Woch ofzesetzen. A vun der Iddi bis zur definitiver Ëmsetzung dauert et 3 Méint.

Time-to-Maart geet drëm d'Zäit vun der Iddi bis zur definitiver Ëmsetzung ze minimiséieren.

An dësem Fall interagéiert Software mam Maart. Dëst ass wéi d'One Box Shave Websäit mam Client interagéiert. Si hu keng Verkeefer - just eng Websäit wou Besucher klickt a Wënsch hannerloossen. Deemno muss permanent eppes Neies um Site gepost ginn an no Wënsch aktualiséiert ginn. Zum Beispill, a Südkorea raséiere se anescht wéi a Russland, a si gär de Geroch net vu Pinien, awer zum Beispill vu Karotten a Vanille.

Well et néideg ass séier den Inhalt vum Site z'änneren, ännert d'Softwareentwécklung immens. Duerch Software musse mir erausfannen wat de Client wëll. Virdrun hu mir dat iwwer e puer Rondpoint-Weeër geléiert, zum Beispill duerch d'Geschäftsmanagement. Duerno hu mir et entworf, d'Ufuerderungen an den IT-System gesat, an alles war cool. Elo ass et anescht - Software gëtt vu jidderengem entworf deen am Prozess involvéiert ass, och Ingenieuren, well se duerch technesch Spezifikatioune léiere wéi de Maart funktionnéiert an och hir Abléck mam Geschäft deelen.

Zum Beispill, bei Qik hu mir op eemol geléiert datt d'Leit wierklech gär hunn Kontaktlëschten op de Server eropzelueden, a si hunn eis eng Applikatioun geliwwert. Am Ufank hu mer net driwwer geduecht. An enger klassescher Firma hätt jidderee décidéiert datt dëst e Feeler wier, well d'Spezifikatioun net gesot huet datt et super funktionnéiert an allgemeng um Knéi ëmgesat gouf, hätten se d'Feature ausgeschalt a gesot: "Keen brauch dëst, dat Wichtegst ass datt d'Haaptfunktionalitéit funktionnéiert." . An d'Technologiefirma gesäit dat als eng Chance a fänkt un d'Software no deem ze änneren.

Wat ass DevOps

1968 huet e visionäre Guy, Melvin Conway, déi folgend Iddi formuléiert.

D'Organisatioun déi de System erstellt ass limitéiert vun engem Design deen d'Kommunikatiounsstruktur vun där Organisatioun replizéiert.

Méi am Detail, fir Systemer vun engem aneren Typ ze produzéieren, musst Dir och eng Kommunikatiounsstruktur an enger Firma vun engem aneren Typ hunn. Wann Är Kommunikatiounsstruktur top-hierarchesch ass, da wäert dëst Iech net erlaben Systemer ze kreéieren déi e ganz héije Time-to-Market Indikator ubidden.

Liest iwwer Conway d'Gesetz kënnen iwwer Linken. Et ass wichteg fir d'DevOps Kultur oder Philosophie ze verstoen well dat eenzegt wat grondsätzlech an DevOps ännert ass d'Struktur vun der Kommunikatioun tëscht Teams.

Vun engem Prozess Siicht, virun DevOps, all Etappe: Analyse, Entwécklung, Testen, Operatioun, waren linear.Wat ass DevOps
Am Fall vun DevOps geschéien all dës Prozesser gläichzäiteg.

Wat ass DevOps

Zäit-ze-Maart ass deen eenzege Wee et ka gemaach ginn. Fir Leit, déi am ale Prozess geschafft hunn, gesäit dëst e bësse kosmesch aus, an allgemeng sou-sou.

Also firwat braucht Dir DevOps?

Fir digital Produktentwécklung. Wann Är Firma keen digitale Produkt huet, ass DevOps net gebraucht - et ass ganz wichteg.

DevOps iwwerwannt d'Geschwindegkeetsbeschränkungen vun der sequentieller Softwareproduktioun. An et passéieren all Prozesser gläichzäiteg.

Schwieregkeeten klëmmt. Wann DevOps Evangelisten Iech soen datt et et méi einfach gëtt fir Software ze verëffentlechen, ass dëst Nonsens.

Mat DevOps ginn d'Saachen nëmme méi komplizéiert.

Op der Konferenz um Avito Stand konnt Dir gesinn wéi et war en Docker Container z'installéieren - eng onrealistesch Aufgab. D'Komplexitéit gëtt verbueden; Dir musst vill Bäll gläichzäiteg jongléieren.

DevOps ännert de Prozess an d'Organisatioun an der Firma komplett - méi präzis, et ass net DevOps déi ännert, mee den digitale Produkt. Fir op DevOps ze kommen, musst Dir nach ëmmer dëse Prozess komplett änneren.

Froen fir e Spezialist

Wat hues du? Froen déi Dir Iech selwer stelle kënnt wann Dir an enger Firma schafft an Iech als Spezialist entwéckelt.

Hutt Dir eng Strategie fir en digitale Produkt ze kreéieren? Wann et ass, ass dat scho gutt. Dëst bedeit datt Är Firma op DevOps geet.

Erstellt Är Firma schonn en digitale Produkt? Dëst bedeit datt Dir en aneren Niveau méi héich kënnt an d'Saache méi interessant maachen - erëm aus enger DevOps Siicht. Ech schwätzen nëmmen aus dëser Siicht.

Ass Är Firma ee vun de Maartleit an der digitaler Produktnisch? Spotify, Yandex, Uber sinn Firmen déi elo um Héichpunkt vum technologesche Fortschrëtt sinn.

Stellt Iech selwer dës Froen, a wann all d'Äntwerten nee sinn, da sollt Dir vläicht net DevOps bei dëser Firma maachen. Wann d'Thema vun DevOps Iech wierklech interessant ass, vläicht ... sollt Dir an eng aner Firma plënneren? Wann Är Firma wëll an DevOps goen, awer Dir hutt "Nee" op all d'Froen geäntwert, dann ass et wéi dee schéine Rhinoceros deen ni wäert änneren.

Wat ass DevOps

Organisatioun

Wéi gesot, laut Conway's Law ännert sech d'Organisatioun vun enger Firma. Ech fänken un mat deem wat verhënnert datt DevOps aus der organisatorescher Siicht an der Firma penetréiert.

De Problem vun "Wunnen"

D'englesch Wuert "Silo" gëtt hei op Russesch als "gutt" iwwersat. De Punkt vun dësem Problem ass dat et gëtt keen Informatiounsaustausch tëscht Équipen. All Team gräift déif a seng Expertise, ouni eng gemeinsam Kaart ze bauen fir ze navigéieren.

Op e puer Manéieren erënnert mech un eng Persoun déi just zu Moskau ukomm ass an nach net weess wéi d'Metrokaart navigéiert. Muscovites kennen hir Géigend normalerweis ganz gutt, a ganz Moskau kënne se mat der Metro Kaart navigéieren. Wann Dir fir d'éischte Kéier zu Moskau kommen, Dir hutt dës Fäegkeet net, an Dir sidd just disorientéiert.

DevOps proposéiert Iech duerch dëse Moment vun Desorientéierung ze kommen an all Departementer schaffen zesummen fir eng gemeinsam Interaktiounskaart ze bauen.

Zwee Faktore behënneren dëst.

Konsequenz vum Corporate Management System. Et ass an getrennten hierarcheschen "Wellen" gebaut. Zum Beispill ginn et gewësse KPIs an Firmen déi dëse System ënnerstëtzen. Op der anerer Säit sinn d'Gehirer vun enger Persoun, déi et schwéier fannen iwwer d'Grenze vun hirer Expertise ze goen an de ganze System ze navigéieren, am Wee. Et ass einfach onwuel. Stellt Iech vir datt Dir um Bangkok Fluchhafen sidd - Dir fannt de Wee net séier ronderëm. DevOps ass och schwéier ze navigéieren, an dofir soen d'Leit datt Dir e Guide muss fannen fir dohinner ze kommen.

Awer déi wichtegst Saach ass datt de Problem vu "Wellen" fir en Ingenieur, dee mam Geescht vun DevOps duerchgesat ass, de Fowler an eng Rëtsch aner Bicher gelies huet, an der Tatsaach ausgedréckt ass datt "Wells" erlaben Iech net "offensichtlech" Saachen ze maachen. Mir kommen dacks no DevOps Moskau zesummen, schwätzen mateneen, a Leit beschwéieren:

- Mir wollten just CI starten, awer et huet sech erausgestallt datt d'Gestioun et net brauch.

Dat geschitt genee well CI и Kontinuéierlech Liwwerung Prozess sinn op der Grenz vu villen Examen. Einfach ouni de Problem vun "Well" um organisatoreschen Niveau ze iwwerwannen, wäert Dir net fäeg sinn weiderzekommen, egal wat Dir maacht an egal wéi traureg et ass.

Wat ass DevOps

All Participant am Prozess an der Gesellschaft: Backend an Frontend Entwéckler, Testen, DBA, Operatioun, Netz, gräift an hir eege Richtung, a keen huet eng gemeinsam Kaart ausser de Manager, deen iergendwéi iwwerwaacht se a geréiert se mat der "Divisioun" an eroberen" Method.

D'Leit kämpfen fir e puer Stären oder Fändelen, jidderee gravt hir Expertise.

Als Resultat, wann d'Aufgab entsteet all dëst zesummen ze verbannen an eng gemeinsam Pipeline ze bauen, an et ass net méi néideg fir Stären a Fändelen ze kämpfen, stellt sech d'Fro - wat iwwerhaapt ze maachen? Mir mussen eis iergendwéi eens ginn, awer keen huet eis geléiert wéi dat an der Schoul ze maachen. Mir ginn zënter der Schoul geléiert: aachte Schouljoer - wow! - am Verglach mam siwente Schouljoer! Et ass d'selwecht hei.

Ass et d'selwecht an Ärer Firma?

Fir dëst z'iwwerpréiwen, kënnt Dir Iech déi folgend Froen stellen.

Benotzt Teams gemeinsam Tools an droen zu Ännerunge vun deenen gemeinsamen Tools bäi?

Wéi oft reorganiséieren d'Equipen - e puer Spezialisten aus engem Team plënneren an en anert Team? Et ass an engem DevOps Ëmfeld datt dëst normal gëtt, well heiansdo kann eng Persoun einfach net verstoen wat en anert Gebitt vun der Expertise mécht. Hien plënnert an en anert Departement, schafft do zwou Wochen fir sech eng Kaart vun Orientéierung an Interaktioun mat dësem Departement ze schafen.

Ass et méiglech e Changement Comité ze grënnen an Saachen ze änneren? Oder brauch et déi staark Hand vun der héchster Gestioun a Richtung? Ech hunn viru kuerzem op Facebook geschriwwen wéi eng wéineg bekannt Bank Tools duerch Bestellungen implementéiert: mir schreiwen eng Bestellung, mir implementéieren se fir e Joer a kucke wat geschitt. Dëst ass natierlech laang an traureg.

Wéi wichteg ass et fir Manager perséinlech Leeschtungen ze kréien ouni d'Leeschtunge vun der Firma ze berücksichtegen?

Wann Dir dës Froen fir Iech selwer beäntwert, gëtt et méi kloer ob Dir esou e Problem an Ärer Firma hutt.

Infrastruktur als Code

Nodeems dëse Problem passéiert ass, ass déi éischt wichteg Praxis, ouni déi et schwéier ass weider an DevOps weiderzekommen Infrastruktur als Code.

Déi meescht Oft gëtt Infrastruktur als Code wéi follegt ugesinn:

— Loosst eis alles am Bash automatiséieren, iwwerdecken eis mat Scripten sou datt d'Administrateuren manner manuell Aarbecht hunn!

Mee dat stëmmt net.

Infrastruktur als Code bedeit datt Dir den IT System mat deem Dir schafft a Form vu Code beschreift fir stänneg säin Zoustand ze verstoen.

Zesumme mat aneren Teams erstellt Dir eng Kaart a Form vu Code, déi jidderee verstinn a kann navigéieren a navigéieren. Et ass egal wat et gemaach gëtt - Chef, Ansible, Salt, oder benotzt YAML Dateien a Kubernetes - et ass keen Ënnerscheed.

Op der Konferenz huet e Kolleg vun 2GIS erzielt wéi se hir eege intern Saach fir Kubernetes gemaach hunn, déi d'Struktur vun eenzelne Systemer beschreift. Fir 500 Systemer ze beschreiwen, brauche se en separaten Tool dat dës Beschreiwung generéiert. Wann et dës Beschreiwung ass, kann jidderee matenee kontrolléieren, Ännerungen iwwerwaachen, wéi se se änneren a verbesseren, wat fehlt.

Averstanen, eenzel Bash Scripte bidden normalerweis net dëst Verständnis. An enger vun de Firmen, wou ech geschafft hunn, gouf et souguer en Numm fir "nëmmen schreiwen" Skript - wann de Skript geschriwwe gëtt, awer et ass net méi méiglech ze liesen. Ech mengen dat ass Iech och vertraut.

Infrastruktur wéi Code ass Code deen den aktuellen Zoustand vun der Infrastruktur beschreift. Vill Produkt-, Infrastruktur- a Serviceteams schaffen un dësem Code zesummen, an am wichtegsten, si mussen all verstoen wéi dëse Code tatsächlech funktionnéiert.

De Code gëtt no beschte Code Praxis erhale gelooss: gemeinsam Entwécklung, Code review, XP-Programméiere, Testen, Pull Ufroen, CI fir Code Infrastrukturen - all dat ass gëeegent a kann benotzt ginn.

Code gëtt eng gemeinsam Sprooch fir all Ingenieuren.

D'Ännerung vun der Infrastruktur am Code brauch net vill Zäit. Jo, Infrastrukturcode kann och technesch Scholden hunn. Normalerweis treffen d'Equipen et an en halleft Joer nodeems se ugefaang hunn "Infrastruktur als Code" a Form vun enger Rëtsch Scripten oder souguer Ansible ëmzesetzen, déi se schreiwen wéi Spaghetti Code, a si werfen och Bash Scripten an d'Mëschung!

wichteg: Wann Dir dës Saachen nach net probéiert hutt, erënnert dat Ansible ass net bash! Liest d'Dokumentatioun virsiichteg, studéiert wat se doriwwer schreiwen.

Infrastruktur als Code ass d'Trennung vum Infrastrukturcode an getrennte Schichten.

An eiser Gesellschaft ënnerscheede mir 3 Basisschichten, déi ganz kloer an einfach sinn, awer et kënne méi vun hinnen sinn. Dir kënnt Ären Infrastrukturcode kucken a soen ob Dir dës Konditioun hutt oder net. Wa keng Schichten markéiert sinn, da musst Dir e bëssen Zäit huelen an e bëssen refactoréieren.
Wat ass DevOps

Basis Schicht - dëst ass wéi d'OS, d'Backups an aner Low-Level Saachen konfiguréiert sinn, zum Beispill, wéi Kubernetes um Basisniveau ofgebaut gëtt.

Service Niveau - dat sinn d'Servicer déi Dir dem Entwéckler ubitt: Logbicher als Service, Iwwerwaachung als Service, Datebank als Service, Balancer als Service, Schlaang als Service, Kontinuéierlech Liwwerung als Service - eng Rëtsch Servicer déi eenzel Teams Entwécklung kënne bidden. Dëst muss alles an eenzelne Moduler an Ärem Konfiguratiounsmanagementsystem beschriwwe ginn.

D'Schicht wou Uwendungen gemaach ginn a beschreift wéi se sech uewen op déi zwee virdrun Schichten entfalen.

Kontroll Froen

Huet Är Firma e gemeinsame Infrastrukturrepository? Géréiert Dir technesch Scholden an Ärer Infrastruktur? Benotzt Dir Entwécklungspraktiken an engem Infrastrukturrepository? Ass Är Infrastruktur a Schichten geschnidden? Dir kënnt de Base-service-APP Diagramm kucken. Wéi schwéier ass et eng Ännerung ze maachen?

Wann Dir erlieft hutt datt et annerhallwem Dag gedauert huet fir Ännerungen ze maachen, heescht dat datt Dir technesch Scholden hutt a mat deem muss schaffen. Dir sidd just op eng technesch Schold rake an Ärem Infrastrukturcode gestouss. Ech erënnere mech un esou vill Geschichten, wann een, fir e puer CCTL z'änneren, d'Halschent vum Infrastrukturcode muss ëmschreiwen, well d'Kreativitéit an de Wonsch alles ze automatiséieren hunn dozou gefouert datt alles iwwerall korrodéiert ass, all d'Griffe geläscht sinn, an et ass néideg ze refactor.

Kontinuéierlech Liwwerung

Loosst eis Debet mat Kreditt vergläichen. Als éischt kënnt eng Beschreiwung vun der Infrastruktur, déi ganz Basis ka sinn. Dir musst net alles am Detail beschreiwen, awer eng Basisbeschreiwung ass erfuerderlech fir datt Dir domat schaffe kënnt. Soss ass et net kloer wat mat der kontinuéierlecher Liwwerung nächste maache soll. All dës Praktiken entfalen gläichzäiteg wann Dir op DevOps kommt, awer et fänkt un mat ze verstoen wat Dir hutt a wéi Dir et verwalten. Dëst ass genau d'Praxis vun der Infrastruktur als Code.

Wann et kloer gëtt datt Dir et hutt a wéi Dir et verwalten, fänkt Dir erauszefannen wéi Dir den Entwécklercode sou séier wéi méiglech an d'Produktioun schéckt. Ech mengen zesumme mam Entwéckler - mir erënneren un de Problem vun "Well", dat ass, et ass net eenzel Leit, déi mat dëser kommen an, mä eng Equipe.

Wa mir mat Vanya Evtukhovich dat éischt Buch gesinn Jez Humble a Gruppen vun Auteuren "Kontinuéierlech Liwwerung", deen am Joer 2009 erauskomm ass, hu mir laang iwwerluecht wéi een säin Titel op Russesch iwwersetzt. Si wollten et als "Constantly deliver" iwwersetzen, awer leider gouf et als "Continuous delivery" iwwersat. Et schéngt mir, datt et eppes Russesch an eisem Numm ass, mat Drock.

Konstant liwweren heescht

Code deen am Produktrepository ass kann ëmmer op d'Produktioun erofgeluede ginn. Hien ass vläicht net entlooss, awer hien ass ëmmer prett dofir. Deementspriechend schreift Dir ëmmer Code mat engem schwéier z'erklären Gefill vun enger Angscht ënner Ärem Schwanz. Et erschéngt dacks wann Dir Infrastrukturcode ausrollt. Dëst Gefill vun e puer Besuergnëss soll präsent sinn - et Ausléiser Gehir Prozesser datt Dir Code e bëssen anescht ze schreiwen erlaabt. Dëst soll an de Regele bannent der Entwécklung opgeholl ginn.

Fir konsequent ze liwweren, braucht Dir en Artefaktformat deen iwwer eng Infrastrukturplattform leeft. Wann Dir "Liewensoffall" vu verschiddene Formater iwwer eng Infrastrukturplattform geheien, da gëtt et vereenegt, et ass schwéier ze erhalen, an de Problem vun der technescher Schold entsteet. D'Format vum Artefakt muss ausgeriicht ginn - dëst ass och eng kollektiv Aufgab: mir mussen all zesummekommen, eis Gehir raschelen a mat dësem Format kommen.

Den Artefakt gëtt kontinuéierlech verbessert a verännert sech fir d'Produktiounsëmfeld ze passen wéi et duerch d'Liwwerungspipeline beweegt. Wann en Artefakt laanscht d'Pipeline bewegt, begéint et dauernd e puer onbequem Saachen dofir, déi ähnlech sinn wéi den Artefakt, deen Dir an d'Produktioun setzt, begéint. Wann an der klassescher Entwécklung dëst vun engem Systemadministrator gemaach gëtt, deen d'Rollout mécht, da geschitt dat am DevOps Prozess déi ganzen Zäit: hei hu se et mat e puer Tester getest, hei hunn se et an e Kubernetes Cluster geheit, wat méi oder manner ähnlech ass op d'Produktioun, dunn hunn se op eemol ugefaang ze testen.

Dëst erënnert e bëssen un de Pac-Man Spill - den Artefakt geet duerch eng Aart Geschicht. Zur selwechter Zäit ass et wichteg ze kontrolléieren ob de Code tatsächlech duerch d'Geschicht geet an ob et iergendwéi mat Ärer Produktioun verbonnen ass. Geschichten aus der Produktioun kënnen an de Continuous Delivery Prozess geschleeft ginn: et war sou wéi eppes gefall ass, elo programméiere mer dëst Szenario am System. All Kéier geet de Code och duerch dëst Szenario, an Dir wäert dëse Problem d'nächst Kéier net begéinen. Dir léiert doriwwer vill méi fréi wéi et Äre Client erreecht.

Verschidde Deploymentstrategien. Zum Beispill benotzt Dir AB Testen oder Kanaresch Deployementer fir de Code anescht op verschiddene Clienten ze testen, Informatiounen iwwer wéi de Code funktionnéiert a vill méi fréi wéi wann et op 100 Millioune Benotzer ausgerullt gëtt.

"Konsistent liwweren" gesäit esou aus.

Wat ass DevOps

De Liwwerprozess Dev, CI, Test, PreProd, Prod ass net eng separat Ëmfeld, dëst sinn Etappen oder Statiounen mat feierfeste Zommen duerch déi Ären Artefakt passéiert.

Wann Dir Infrastrukturcode hutt deen als Base Service APP beschriwwe gëtt, da hëlleft et vergiesst net all Scripten, a schreift se als Code fir dësen Artefakt erof, artefakt förderen an änneren et wéi Dir gitt.

Froen fir Self Ënnersichung

D'Zäit vun der Featurebeschreiwung bis an d'Produktioun an 95% vun de Fäll ass manner wéi eng Woch? Verbessert d'Qualitéit vum Artefakt an all Etapp vun der Pipeline? Gëtt et eng Geschicht déi et duerchgeet? Benotzt Dir verschidden Deploymentstrategien?

Wann all d'Äntwerten jo sinn, da sidd Dir onheemlech cool! Schreift Är Äntwerten an de Kommentaren - ech wäert frou sinn).

Обратная связь

Dëst ass déi schwéierst Praxis vun allem. Op der DevOpsConf Konferenz war e Kolleg vum Infobip, deen doriwwer geschwat huet, e bëssen duercherneen a senge Wierder, well dëst ass wierklech eng ganz komplex Praxis iwwer d'Tatsaach datt Dir alles muss iwwerwaachen!

Wat ass DevOps

Zum Beispill viru laanger Zäit, wéi ech bei Qik geschafft hunn a mir gemierkt hunn datt mir alles musse iwwerwaachen. Mir hunn dat gemaach, a mir hunn elo 150 Artikelen an Zabbix, déi permanent iwwerwaacht ginn. Et war grujeleg, den techneschen Direkter huet de Fanger op säin Tempel gedréint:

- Kärelen, firwat vergewaltegt Dir de Server mat eppes Onkloer?

Awer dunn ass en Tëschefall geschitt deen gewisen huet datt dëst wierklech eng ganz cool Strategie ass.

Ee vun de Servicer huet ugefaang konstant ze Crash. Am Ufank ass et net gefall, wat interessant ass, de Code gouf net do bäigefüügt, well et e Basisbroker war, dee praktesch keng Geschäftsfunktionalitéit huet - et huet einfach Messagen tëscht eenzelne Servicer geschéckt. De Service huet fir 4 Méint net geännert, an op eemol huet et ugefaang mam Feeler "Segmentatiounsfehler" ze crashen.

Mir waren schockéiert, hunn eis Charts an Zabbix opgemaach, an et huet sech erausgestallt datt virun enger Woch an eng hallef d'Behuele vun Ufroen am API Service, deen dëse Broker benotzt, staark geännert huet. Als nächst hu mir gesinn datt d'Frequenz fir eng gewëssen Aart vu Message ze schécken geännert huet. Méi spéit hu mir erausfonnt datt dëst Android Cliente waren. Mir hu gefrot:

- Kärelen, wat ass mat Iech geschitt virun enger Woch annerhallef?

Als Äntwert hu mir eng interessant Geschicht héieren iwwer wéi se d'UI nei designt hunn. Et ass onwahrscheinlech datt iergendeen direkt wäert soen datt se d'HTTP-Bibliothéik geännert hunn. Fir Android Clienten ass et wéi Seef am Buedzëmmer z'änneren - si erënnere sech just net. Als Resultat, no 40 Minutte Gespréich, hu mir erausfonnt datt se d'HTTP-Bibliothéik geännert hunn, a seng Standard Timings hu geännert. Dëst huet dozou gefouert datt de Verkéiersverhalen um API Server geännert huet, wat zu enger Situatioun gefouert huet, déi eng Course am Broker verursaacht huet, an et huet ugefaang ze crashen.

Ouni déif Iwwerwaachung ass et allgemeng onméiglech dëst opzemaachen. Wann d'Organisatioun nach ëmmer de Problem vu "Brunnen" huet, wa jidderee Geld openee geheien, kann dat jorelaang liewen. Dir restart de Server einfach well et onméiglech ass de Problem ze léisen. Wann Dir iwwerwaacht, verfollegt, verfollegt all d'Evenementer déi Dir hutt, a benotzt d'Iwwerwaachung als Test - schreiwt Code a gitt direkt un wéi Dir et iwwerwaacht, och a Form vu Code (mir hu schonn d'Infrastruktur als Code), alles gëtt kloer wéi op der Handfläch. Och esou komplex Problemer ginn einfach verfollegt.

Wat ass DevOps

Sammelt all Informatioun iwwer wat mam Artefakt an all Etapp vum Liwwerungsprozess geschitt - net an der Produktioun.

Eroplueden d'Iwwerwaachung op CI, an e puer grondleeënd Saachen wäerte schonn do siichtbar sinn. Méi spéit gesitt Dir se am Test, PredProd, a Last Testen. Sammelt Informatioun an all Stadien, net nëmmen Metriken, Statistiken, awer och Logbicher: wéi d'Applikatioun ausgerullt ass, Anomalien - alles sammelen.

Soss wäert et schwéier ginn et erauszefannen. Ech hu scho gesot datt DevOps méi komplex ass. Fir dës Komplexitéit ze këmmeren, musst Dir normal Analyse hunn.

Froen fir Self-Kontroll

Ass Är Iwwerwaachung a Logbuch d'Entwécklungsinstrument fir Iech? Wann Dir Code schreiwt, denken Är Entwéckler, och Dir, iwwer wéi Dir et iwwerwaacht?

Héiert Dir iwwer Probleemer vu Clienten? Verstinn Dir de Client besser vu Iwwerwaachung a Logbuch? Verstinn Dir de System besser vu Iwwerwaachung a Logbuch? Ännert Dir de System einfach well Dir gesinn hutt datt den Trend am System wiisst an Dir versteet datt an enger anerer 3 Wochen alles stierft?

Wann Dir dës dräi Komponenten hutt, kënnt Dir iwwerdenken wéi eng Infrastrukturplattform Dir an Ärer Firma hutt.

Infrastruktur Plattform

De Punkt ass net datt et eng Rei vun ënnerschiddlechen Tools ass déi all Firma huet.

De Punkt vun enger Infrastrukturplattform ass datt all Teams dës Tools benotzen an se zesummen entwéckelen.

Et ass kloer datt et separat Teams sinn déi verantwortlech sinn fir d'Entwécklung vun eenzelne Stécker vun der Infrastrukturplattform. Awer gläichzäiteg dréit all Ingenieur Verantwortung fir d'Entwécklung, d'Leeschtung an d'Promotioun vun der Infrastrukturplattform. Op engem internen Niveau gëtt et e gemeinsamt Tool.

All Teams entwéckelen d'Infrastrukturplattform a behandelen se mat Suergfalt als hir eege IDE. An Ärer IDE installéiert Dir verschidde Plugins fir alles flott a séier ze maachen, an Hotkeys konfiguréieren. Wann Dir Sublime, Atom oder Visual Studio Code opmaacht, kommen Codefehler eran an Dir mierkt datt et iwwerhaapt onméiglech ass ze schaffen, fillt Dir Iech direkt traureg an Dir leeft fir Är IDE ze fixéieren.

Behandelt Är Infrastrukturplattform déiselwecht Manéier. Wann Dir verstitt datt et eppes falsch ass, loosst eng Ufro wann Dir et net selwer kann fixéieren. Wann et eppes einfach ass, ännert et selwer, schéckt eng Pull-Ufro, d'Jongen wäerten et berücksichtegen an et derbäisetzen. Dëst ass eng liicht aner Approche fir Ingenieursinstrumenter am Kapp vum Entwéckler.

D'Infrastrukturplattform garantéiert den Transfer vum Artefakt vun der Entwécklung op de Client mat kontinuéierlecher Verbesserung vun der Qualitéit. D'IP ass programméiert mat enger Rei vu Geschichten déi mam Code an der Produktioun geschéien. Iwwer d'Jore vun der Entwécklung ginn et vill vun dëse Geschichten, e puer vun hinnen sinn eenzegaarteg a bezéie sech nëmme mat Iech - se kënnen net Googled ginn.

Zu dësem Zäitpunkt gëtt d'Infrastrukturplattform Äre kompetitive Virdeel, well et eppes dran agebaut huet, wat net am Konkurrentinstrument ass. Wat méi déif Är IP ass, dest méi grouss ass Äre kompetitive Virdeel a punkto Time-to-Maart. Erscheint hei Verkeefer Spär Problem: Dir kënnt eng aner Plattform huelen, awer mat der Erfahrung vun engem aneren, Dir wäert net verstoen wéi relevant et fir Iech ass. Jo, net all Firma kann eng Plattform wéi Amazon bauen. Dëst ass eng schwiereg Linn wou d'Erfahrung vun der Firma relevant ass fir seng Positioun um Maart, an Dir kënnt net e Verkeeferschloss do benotzen. Dëst ass och wichteg ze denken.

De Schema

Dëst ass e Basisdiagramm vun enger Infrastrukturplattform déi Iech hëlleft all Praktiken a Prozesser an enger DevOps Firma opzestellen.

Wat ass DevOps

Loosst eis kucken wat et besteet.

Ressource Orchestratioun System, déi CPU, Erënnerung, Disk un Uwendungen an aner Servicer ubitt. Doriwwer eraus - nidderegen Niveau Servicer: Iwwerwachung, Logged, CI / CD Engine, Artefaktlagerung, Infrastruktur als Systemcode.

Méi héije Servicer: Datebank als Service, Schlaangen als Service, Load Balance als Service, Bildgréisst als Service, Big Data Fabréck als Service. Doriwwer eraus - Pipeline déi dauernd geännert Code un Äre Client liwwert.

Dir kritt Informatioun iwwer wéi Är Software fir de Client funktionnéiert, ännert se, liwwert dëse Code nach eng Kéier, kritt Informatioun - an esou entwéckelt Dir stänneg souwuel d'Infrastrukturplattform wéi och Är Software.

Am Diagramm besteet d'Liwwerungspipeline aus ville Etappen. Awer dëst ass e schemateschen Diagramm deen als Beispill uginn ass - net néideg et een nom aneren ze widderhuelen. Etappe interagéieren mat Servicer wéi wa se Servicer wieren - all Zillen vun der Plattform dréit seng eege Geschicht: wéi Ressourcen zougedeelt ginn, wéi d'Applikatioun lancéiert gëtt, funktionnéiert mat Ressourcen, gëtt iwwerwaacht a ännert.

Et ass wichteg ze verstoen datt all Deel vun der Plattform eng Geschicht dréit, a frot Iech selwer wéi eng Geschicht dës Mauer dréit, vläicht sollt et ewechgehäit ginn an duerch en Drëtt-Partei-Service ersat ginn. Zum Beispill, ass et méiglech Okmeter amplaz vun engem Ziegel installéiert? Vläicht hunn d'Jongen dës Expertise scho vill méi entwéckelt wéi mir. Awer vläicht net - vläicht hu mir eenzegaarteg Expertise, mir musse Prometheus installéieren an et weider entwéckelen.

Schafung vun der Plattform

Dëst ass e komplexe Kommunikatiounsprozess. Wann Dir Basispraktiken hutt, fänkt Dir un d'Kommunikatioun tëscht verschiddenen Ingenieuren a Spezialisten un, déi Ufuerderungen a Standarden entwéckelen, a stänneg op verschidden Tools an Approche änneren. D'Kultur déi mir an DevOps hunn ass hei wichteg.

Wat ass DevOps
Mat Kultur ass alles ganz einfach - et geet ëm Zesummenaarbecht a Kommunikatioun, dat heescht, de Wonsch an engem gemeinsame Beräich mat all aner ze schaffen, de Wonsch een Instrument zesummen ze widdert. Et gëtt keng Rakéitewëssenschaft hei - alles ass ganz einfach, banal. Zum Beispill, mir all liewen an der Entrée an halen et propper - esou engem Niveau vun Kultur.

Wat hues du?

Nach eng Kéier, Froen déi Dir Iech selwer stellen kënnt.

Ass d'Infrastrukturplattform gewidmet? Wien ass responsabel fir seng Entwécklung? Verstinn Dir d'kompetitiv Virdeeler vun Ärer Infrastrukturplattform?

Dir musst Iech ëmmer dës Froen stellen. Wann eppes op Drëtt-Partei-Servicer transferéiert ka ginn, sollt et transferéiert ginn; wann en Drëtt-Partei-Service ufänkt Är Bewegung ze blockéieren, da musst Dir e System an Iech selwer bauen.

Also, DevOps ...

... dëst ass e komplexe System, et muss hunn:

  • Digital Produkt.
  • Business Moduler déi dëst digitale Produkt entwéckelen.
  • Produit Équipë datt Code schreiwen.
  • Kontinuéierlech Liwwerung Praktiken.
  • Plattformen als Service.
  • Infrastruktur als Service.
  • Infrastruktur als Code.
  • Separat Praktiken fir Zouverlässegkeet z'erhalen, agebaut an DevOps.
  • Eng Feedback Praxis déi alles beschreift.

Wat ass DevOps

Dir kënnt dësen Diagramm benotzen, an et ervirhiewen wat Dir schonn an Ärer Firma an iergendenger Form hutt: huet et entwéckelt oder muss nach entwéckelt ginn.

Et ass an e puer Wochen eriwwer DevOpsConf 2019. als Deel vun RIT ++. Kommt op d'Konferenz, wou Dir vill cool Berichter iwwer kontinuéierlech Liwwerung, Infrastruktur als Code an DevOps Transformatioun fannt. Buch Är Ticketen, leschte Präisfrist ass den 20. Mee

Source: will.com

Setzt e Commentaire