ProHoster > Blog > Pulega > Ta'iala mo Amata: Fausiaina o le DevOps Pipeline
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.
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:
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.
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.
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!
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
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: