Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

Afai e te fou i DevOps, vaʻai i lenei taʻiala e lima-laasaga i le fatuina o lau paipa muamua.

Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

DevOps ua avea ma vaifofo masani mo le faʻaleleia o le faʻagesegese, faʻalavelave poʻo le malepelepe faiga atinaʻe. O le fa'afitauli, afai e te fou i DevOps ma e te le iloa po'o fea e amata ai, atonu e te le malamalama i nei metotia. O lenei tusiga o le a talanoaina le faʻamatalaga o le DevOps pipeline ma o le a tuʻuina atu foʻi faʻatonuga e lima-laasaga mo le fatuina o se tasi. E ui o lenei aʻoaʻoga e leʻi maeʻa, e tatau ona tuʻuina atu ia te oe se faʻavae e amata ai lau malaga ma faʻalauteleina lou malamalama i le lumanaʻi. Ae tatou amata i le talafaasolopito.

La'u Malaga DevOps

Sa ou galue muamua i le Citi Group cloud team atia'e se Infrastructure-as-a-Service (IaaS) web application e pulea ai le cloud infrastructure a Citi, ae sa ou fiafia i taimi uma i le auala e faʻaleleia atili ai le atinaʻe ma aumaia suiga lelei faaleaganuu i le vaega atinae. Na ou mauaina le tali i se tusi na fautuaina e Greg Lavender, CTO o Cloud Architecture and Infrastructure i Citi. O le tusi na taʻua o le Phoenix Project (Le Phoenix Project), ma faʻamatalaina mataupu faavae o DevOps, ae e faitau pei o se tala.

O le laulau i tua o le tusi o loʻo faʻaalia ai le tele o kamupani eseese e faʻaogaina a latou faiga i se siosiomaga faʻasaʻoloto:

Amazon: 23 i le aso
Google: 5 i le aso
Netflix: 500 i le aso
Facebook: Ta'itasi i le aso
Twitter: 3 taimi i le vaiaso
Kamupani masani: Ta'i 9 masina

E fa'afefea ona fa'aogaina alaleo Amazon, Google ma Netflix? E mafua ona o nei kamupani ua latou iloa pe faʻapefea ona fausia se paipa DevOps toetoe lava atoatoa.

Na matou mamao ese mai lenei mea seia matou faʻatinoina DevOps i Citi. I le taimi lena, o laʻu 'au na i ai siʻosiʻomaga eseese, ae o le faʻapipiʻiina i luga o le atinaʻe server o le tusi lesona atoa. Na maua uma e le au atina'e na'o le tasi le atina'e server e fa'avae ile IBM WebSphere Application Server Community Edition. O le faʻafitauli o le a tapuni le 'auʻaunaga i soʻo se taimi e taumafai ai le tele o tagata faʻaoga e faʻapipiʻi i le taimi e tasi, o lea e tatau ai i le au atinaʻe ona faʻafesoʻotaʻi o latou faʻamoemoega i le tasi ma le isi, o se mea e sili ona tiga. E le gata i lea, o loʻo i ai faʻafitauli i le maualalo o tulaga faʻataʻitaʻiga tulafono faʻamaonia, faʻalavelave faʻapipiʻiina tusi lesona, ma le le mafai ona siaki le faʻapipiʻiina o code e fesoʻotaʻi ma se galuega patino poʻo se tala faʻaoga.

Na ou iloaina e iai se mea e tatau ona fai ma maua ai se uo e tutusa le mafaufau. Na matou filifili e galulue faʻatasi i le fausiaina o le laina muamua o le DevOps - na ia faʻatutuina se masini komepiuta Tomcat ma le faʻaogaina o le talosaga aʻo ou galue i Jenkins, faʻapipiʻi Atlassian Jira ma BitBucket, ma galue i luga ole suʻega code code. O lenei itu sa matua manuia lava: matou toetoe lava a faʻaaogaina le tele o faiga, ausia toetoe lava 100% uptime i luga o la matou atinaʻe server, tuʻuina atu le siakiina ma le faʻaleleia atili o le suʻega o le code, ma faʻaopoopoina le gafatia e faʻafesoʻotaʻi lala Git i mataupu a Jira poʻo faʻapipiʻiina. O le tele o mea faigaluega na matou faʻaaogaina e fausia ai le matou DevOps pipeline na tatala punaoa.

O lea ua ou malamalama i le faigofie o le matou DevOps pipeline: matou te leʻi faʻaogaina faʻaopoopoga e pei o Jenkins faila poʻo Ansible. Ae ui i lea, o lenei paipa faigofie na galue lelei, masalo ona o le mataupu Pareto (faʻapitoa foi o le 80/20 tulafono).

Ose Folasaga Puupuu i DevOps ma le CI/CD Pipeline

Afai e te fesili i nisi tagata, "O le a le DevOps?", Atonu o le ae mauaina ni tali eseese. DevOps, pei o Agile, ua tupu aʻe i le tele o aʻoga eseese, ae o le toʻatele o tagata o le a malilie i ni nai mea: DevOps o se faʻataʻitaʻiga faʻapipiʻi polokalama poʻo le atinaʻeina o polokalame o le olaga (SDLC) o lona autu autu o loʻo suia ai le aganuʻu o loʻo faʻatupuina ai ma tagata e le o. o loʻo iai tagata faʻapitoa i se siosiomaga lea:

O fa'agaioiga sa fa'atino muamua ma le lima ua fa'a-otosia;
E faia e tagata uma le mea sili latou te faia;
Ole numera o faʻatinoga ile taimi faʻapitoa e faʻateleina; Fa'ateleina le aofa'i;
Faʻateleina fetuutuunaʻi atinaʻe.

E ui o le i ai o mea faigaluega sa'o e le na o le pau lea o le mea e te manaʻomia e fausia ai se siosiomaga DevOps, o nisi meafaigaluega e taua. O se meafaigaluega autu o le faʻaauau pea ona tuʻufaʻatasia ma faʻaauau le faʻaogaina (CI / CD). I totonu o lenei paipa, o siosiomaga e eseese laʻasaga (eg DEV, INT, TST, QA, UAT, STG, PROD), e tele gaioiga e faʻaogaina, ma e mafai e le au atinaʻe ona tusia le code maualuga, ausia le atinaʻeina o le agility, ma le maualuga o le faʻatulagaina o fua faatatau.

O lenei tusiga o loʻo faʻamatalaina se auala e lima-laasaga i le fatuina o se paipa DevOps pei o le faʻaalia i le ata o loʻo i lalo e faʻaaoga ai meafaigaluega tatala.

Laasaga 1: Metotia CI/CD

O le mea muamua e te manaʻomia o se meafaigaluega CI / CD. Jenkins, o se meafaigaluega tatala punaoa faʻavae i luga o Java ma laiseneina i lalo o le laisene MIT, o le meafaigaluega na faʻalauiloaina DevOps ma ua avea ma tulaga masani.

O le a la le Jenkins? Mafaufau i ai o se ituaiga faʻamaʻi mamao mamao mamao e mafai ona talanoa ma faʻatulaga auaunaga eseese ma meafaigaluega. Na o ia lava, o se meafaigaluega CI / CD e pei o Jenkins e leai se aoga, ae o le a sili atu le mamana pe a fesoʻotaʻi atu i meafaigaluega eseese ma auaunaga.

Jenkins o se tasi o le tele o punaoa tatala CI / CD meafaigaluega e mafai ona e faʻaogaina e fausia ai lau paipa DevOps.

Jenkins: Creative Commons ma le MIT
Travis CI: MIT
CruiseControl:BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Kapi: GNU

O foliga ia o faiga DevOps i se meafaigaluega CI / CD:

Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

E iai sau meafaigaluega CI/CD o lo'o fa'aogaina i lau localhost, ae e le tele ni mea e mafai ona e faia i le taimi nei. Sei o tatou agai atu i le isi laasaga o le malaga a DevOps.

Laasaga 2: Puleaina Punaoa Pulea Faiga

O le auala sili (ma atonu e sili ona faigofie) e faʻamaonia ai e mafai e lau meafaigaluega CI / CD ona fai ana togafiti faʻapitoa o le tuʻufaʻatasia ma se mea e pulea ai le code source (SCM). Aisea e te mana'omia ai le pulea o puna'oa? Fa'apea o lo'o e atia'e se talosaga. Soo se taimi lava e te fatuina ai se talosaga, o loʻo e faʻapipiʻiina, ma e le afaina pe e te faʻaaogaina Java, Python, C++, Go, Ruby, JavaScript, poʻo soʻo se tasi o le zillions o gagana polokalame. O le code e te tusia e ta'ua o le source code. I le amataga, aemaise lava pe a e galue naʻo oe, atonu e lelei le tuʻuina o mea uma i totonu o se lisi faʻapitonuʻu. Ae a'o fa'ateleina le poloketi ma e vala'aulia isi tagata e galulue fa'atasi, e te mana'omia se auala e puipuia ai fete'ena'iga a'o fa'asoa lelei suiga. E te manaʻomia foʻi se auala e toe faʻafoʻi ai lomiga muamua, aua o le fatuina o faʻamaumauga ma kopi / faapipii i totonu ua le toe aoga. O oe (ma au 'au) e mana'omia se mea e sili atu.

O le mea lea e toetoe lava a mana'omia ai le pulea o code source. O lenei meafaigaluega e teu ai lau code i fale teu oloa, siaki faʻasologa, ma faʻamaopoopo galuega a tagata auai i le poloketi.

E ui o loʻo i ai le tele o mea faigaluega faʻatonutonu i fafo, Git o le tulaga masani, ma e saʻo. Ou te matua fautuaina le faʻaaogaina o Git, e ui lava e iai isi avanoa avanoa avanoa pe a e manaʻo ai.

Git: GPLv2 ma LGPL v2.1
Suiga: Apache 2.0
Faiga Fa'atasi Faiga (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+

O le mea lea e foliga mai ai le pipeline DevOps faʻatasi ai ma le faʻaopoopoina o faʻatonuga tulafono.

Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

E mafai e se meafaigaluega a le CI/CD ona fa'autometi le fa'agasologa o iloiloga, mauaina o fa'ailoga fa'apogai, ma le galulue fa'atasi o sui auai. E leai se leaga? Ae faʻafefea ona e faʻaliliuina i se talosaga galue ina ia mafai e le faitau piliona o tagata ona faʻaogaina ma talisapaia?

Laasaga 3: Fausia se Meafaigaluega Fausiaina

Matagofie! E mafai ona e toe iloilo le code ma fai suiga i le puleaina o punaoa, ma valaaulia au uo e galulue faʻatasi i le atinaʻe. Ae e te le'i faia se talosaga. Ina ia faia se 'upega tafaʻilagi, e tatau ona tuʻufaʻatasia ma faʻapipiʻiina i se faʻapipiʻi faʻapipiʻiina poʻo le taʻavale e fai ma faila faila. (Manatua e le manaʻomia ona tuʻufaʻatasia se gagana faʻapolokalame faʻamatalaina e pei o le JavaScript poʻo le PHP).

Fa'aoga se meafaigaluega fau masini. E tusa lava po o le a le mea e fausia ai meafaigaluega e te filifili e faʻaoga, e tutusa uma lava le sini: fausia le code source i se faʻatulagaga manaʻomia ma faʻaautomatika le galuega o le faʻamamaina, faʻapipiʻi, suʻega, ma faʻapipiʻiina i se siosiomaga patino. O mea faigaluega faufale o le a eseese e fa'atatau i lau gagana fa'apolokalame, ae o nisi nei o avanoa masani e tatala ai avanoa.

Ulutala
Laisene
Gagana fa'apolokalame

Mau
Apache 2.0
Java

Aneti
Apache 2.0
Java

Pipi
Apache 2.0
Java

Pasila
Apache 2.0
Java

fai
GNU
N / A

uaʻua
MIT
JavaScript

Gulp
MIT
JavaScript

Faufale
Apache
maʻa mū

Salu
MIT
maʻa mū

AAP
GNU
Python

SCons
MIT
Python

BitBake
GPLv2
Python

Kati
MIT
C#

ASDF
Tagata mai fafo (MIT)
LISP

Cabal
BSD
Haskell

Matagofie! E mafai ona e tuʻuina faila faʻapipiʻi meafaigaluega fau masini i totonu o lau faʻatonuga faʻaogaina ma tuʻu lau meafaigaluega CI / CD e tuʻu faʻatasi mea uma.

Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

E lelei mea uma, a ea? Ae o fea e faʻapipiʻi ai lau talosaga?

Laasaga 4: Web Application Server

Mo le taimi nei, o loʻo i ai sau faila faila e mafai ona faʻatinoina pe faʻapipiʻi. Mo soʻo se talosaga e aoga moni, e tatau ona tuʻuina atu se ituaiga o auaunaga poʻo se atinaʻe, ae e te manaʻomia se pusa e faʻafeiloaʻi ai lau talosaga.

O se 'upega tafaʻilagi' upega tafaʻilagi e naʻo se pusa. O lo'o tu'uina atu e le 'au'aunaga se si'osi'omaga e mafai ona fa'amalamalamaina ai le fa'atatau o le afifi o lo'o fa'apipi'iina. O lo'o tu'uina atu fo'i e le 'au'aunaga se feso'ota'iga ma ofo atu 'au'aunaga i luga ole laiga e ala i le fa'aalia o sockets ile lalolagi i fafo. E te manaʻomia se HTTP server, faʻapea foʻi ma nisi siosiomaga (pei o se masini masini) e faʻapipiʻi ai. Mo le taimi nei, tatou fa'apea o le a e a'oa'o atili e uiga i lenei mea (e ui o le a ou ufiufi pusa i lalo).

O lo'o i ai le tele o 'upega tafa'ilagi o lo'o maua ai sapalai.

Ulutala
Laisene
Gagana fa'apolokalame

Tomcat
Apache 2.0
Java

Jetty
Apache 2.0
Java

WildFly
GNU Lesser Public
Java

GlassFish
CDDL & GNU Laiti Fa'alaua'itele
Java

Django
3- Fuaiupu BSD
Python

Taaloga
Apache 2.0
Python

fana
MIT
Python

Python
MIT
Python

Faʻailoga
MIT
maʻa mū

Node.js
MIT
Javascript

Ua toeitiiti lava sauni lau paipa DevOps e faʻaaoga. Malo!

Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

E ui lava e mafai ona e tu iina ma faʻatautaia le tuʻufaʻatasia e oe lava, o le tulaga o le code o se mea taua mo le faʻapipiʻiina o mea e popole ai.

Laasaga 5: Fa'ailoga Su'ega Fa'ailoga

O le faʻatinoina o suʻega e mafai ona avea ma se isi faʻalavelave faigata, ae e tatau i tagata atiaʻe ona puʻeina soʻo se mea sese i le talosaga vave ma faʻaleleia le tulaga lelei o le code ina ia mautinoa ua faamalieina tagata faʻaoga. O le mea e laki ai, o loʻo i ai le tele o mea faigaluega faʻapitoa mo le suʻeina o lau code ma le faia o fautuaga mo le faʻaleleia o lona tulaga lelei. O le a le mea e sili atu ona lelei o le tele o meafaigaluega CI / CD e mafai ona faʻafesoʻotaʻi i nei meafaigaluega ma faʻaogaina le gaioiga.

O su'ega fa'ailoga e lua vaega: fa'asologa o su'ega fa'ailoga e fesoasoani ia te oe e tusi ma fa'atino su'ega, ma mea faigaluega fa'atonu e fesoasoani ia te oe e fa'aleleia atili le tulaga lelei o lau code.

faiga fa'ata'ita'i tulafono

Ulutala
Laisene
Gagana fa'apolokalame

JUnit
Lisi Laisene a le Malo
Java

EasyMock
Apache
Java

Mokito
MIT
Java

PowerMock
Apache 2.0
Java

Pytest
MIT
Python

Vaʻaiga
Mozilla
Python

tox
MIT
Python

Fautuaga faiga mo le fa'aleleia o tulafono

Ulutala
Laisene
Gagana fa'apolokalame

Cobertura
GNU
Java

CodeCover
Eclipse Public (EPL)
Java

Coverage.py
Apache 2.0
Python

Emma
Laisene lautele lautele
Java

JaCoCo
Lisi Laisene a le Malo
Java

Vaʻaiga
Mozilla
Python

tox
MIT
Python

Jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mocha
MIT
JavaScript

o loo i ai
MIT
JavaScript

Manatua o le tele o meafaigaluega ma auivi o loʻo taʻua i luga ua tusia mo Java, Python ma JavaScript, talu ai o C ++ ma C # o gagana faʻapitoa faʻapipiʻi (e ui o le GCC o se punaoa tatala).

I le taimi nei ua e faʻatinoina meafaigaluega faʻataʻitaʻiga, o lau pipeline DevOps e tatau ona foliga tutusa ma le ata o loʻo faʻaalia i le amataga o lenei aʻoaʻoga.

Laasaga Faaopoopo

Koneteina

E pei ona ou fai atu, e mafai ona e faʻafeiloaʻi lau 'auʻaunaga i luga o se masini komepiuta poʻo se 'auʻaunaga, ae o pusa o se fofo lauiloa.

O a pusa? O le faʻamatalaga puʻupuʻu e manaʻomia e se masini komepiuta se aofaʻiga tele o le faʻaogaina o le polokalama, e sili atu i le tele o le talosaga, ae o se pusa e manaʻomia naʻo ni nai faletusi ma faʻasalalauga e faʻatautaia ai le talosaga. E manino lava, o loʻo i ai pea faʻaoga taua mo se masini komepiuta, ae o se atigipusa o se fofo mama mo le faʻafeiloaʻi o se talosaga, e aofia ai se faʻaumau talosaga.

E ui o loʻo i ai isi pusa filifiliga, o le sili ona lauiloa o Docker ma Kubernetes.

Docker: Apache 2.0
Kubernetes: Apache 2.0

Mea faigaluega fa'aautomatika

O la matou paipa DevOps e taulaʻi muamua i le galulue faʻatasi ma le faʻatulagaina o talosaga, ae e tele isi mea e mafai ona faia i meafaigaluega DevOps. O se tasi oi latou o le faʻaaogaina o meafaigaluega e pei o le Code (IaC), lea e taʻua foi o meafaigaluega otometi middleware. O mea faigaluega nei e fesoasoani e fa'atosina fa'apipi'i, pulega, ma isi galuega mo middleware. O lea la, mo se faʻataʻitaʻiga, e mafai e se meafaigaluega faʻaautomatika ona suʻeina tusi talosaga e pei o se upega tafaʻilagi talosaga, se faʻamaumauga, ma se mea faigaluega mataʻituina ma faʻatonuga saʻo ma faʻapipiʻi i latou i le server application.

O nisi nei o meafaigaluega fa'aautomatika middleware open source:

Tali: GNU Public
SaltStack: Apache 2.0
Ta'ita'i: Apache 2.0
Papeti: Apache poʻo le GPL

Ta'iala mo Amata: Fausiaina o le DevOps Pipeline

Saili faʻamatalaga ile auala e maua ai se galuega sailia mai le maoaʻe poʻo le Level Up i tulaga o tomai ma totogi e ala i le suʻeina o aʻoaʻoga i luga ole laiga mai SkillFactory:

tele kosi

Aoga

puna: www.habr.com

Faaopoopo i ai se faamatalaga