Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

Haeba u sa tsoa qala ho sebelisa DevOps, sheba tataiso ena ea mehato e mehlano ea ho theha pipeline ea hau ea pele.

Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

DevOps e fetohile tharollo e tloaelehileng ea ho lokisa mekhoa ea ntlafatso ea software butle, e sa kopane kapa e robehileng. Bothata ke hore haeba u le mocha ho DevOps 'me u sa tsebe hore na u qale hokae, u ka' na ua hloka kutloisiso ea mekhoa ena. Sengoliloeng sena se tla tšohla tlhaloso ea pipeline ea DevOps hape e tla fana ka litaelo tsa mehato e mehlano bakeng sa ho theha e le 'ngoe. Leha thuto ena e sa fella, e lokela ho u fa motheo oa ho qala leeto la hau le ho holisa tsebo ea hau nakong e tlang. Empa a re qaleng ka histori.

Leeto laka la DevOps

Ke kile ka sebetsa sehlopheng sa maru sa Citi Group ho nts'etsapele ts'ebeliso ea marang-rang ea Infrastructure-as-a-Service (IaaS) ho laola lisebelisoa tsa maru tsa Citi, empa ke ne ke lula ke thahasella mokhoa oa ho etsa hore ts'ebetso ea nts'etsopele e atlehe haholoanyane le ho tlisa phetoho e ntle ea setso ho sehlopha sa ntshetsopele. Ke fumane karabo bukeng e khothaletsoang ke Greg Lavender, CTO oa Cloud Architecture le Infrastructure ho Citi. Buka eo e ne e bitsoa The Phoenix Project (Morero oa Phoenix), 'me e hlalosa melao-motheo ea DevOps, empa e baleha joaloka buka.

Tafole e ka morao ea buka e bonts'a hore na lik'hamphani tse fapaneng li sebelisa litsamaiso tsa tsona hangata hakae sebakeng sa tokollo:

Amazon: 23 ka letsatsi
Google: 5 ka letsatsi
Netflix: 500 ka letsatsi
Facebook: Hang ka letsatsi
Twitter: makhetlo a 3 ka beke
Khamphani e tloaelehileng: Hang ka mor'a likhoeli tse 9

Maqhubu a Amazon, Google le Netflix a khoneha joang? Lebaka ke hobane lik'hamphani tsena li fumane mokhoa oa ho theha phala e batlang e nepahetse ea DevOps.

Re ne re le hole le sena ho fihlela re kenya tšebetsong DevOps ho Citi. Ka nako eo, sehlopha sa ka se ne se e-na le libaka tse fapaneng, empa ho romelloa ho seva sa nts'etsopele e ne e le ka ho feletseng. Bahlahisi bohle ba ne ba na le phihlello ea seva e le 'ngoe feela ea nts'etsopele e thehiloeng ho IBM WebSphere Application Server Community Edition. Bothata e ne e le hore seva se ne se koala nako le nako ha basebelisi ba bangata ba leka ho sebelisa ka nako e le 'ngoe, kahoo bahlahisi ba ne ba tlameha ho buisana ka sepheo sa bona, e leng ntho e bohloko haholo. Ho feta moo, ho ne ho e-na le litaba tse amanang le ts'ebetso ea khoutu ea teko ea boemo bo tlaase, mekhoa e boima ea ho romelloa ka letsoho, le ho sitoa ho latela mokhoa oa ho romelloa ha khoutu e amanang le mosebetsi o itseng kapa pale ea mosebedisi.

Ke ile ka hlokomela hore ho na le ntho e lokelang ho etsoa ’me ka fumana mosebetsi-’moho ea nang le kelello e tšoanang. Re ile ra etsa qeto ea ho sebelisana 'moho ho aha phala ea pele ea DevOps - o ile a theha mochine o sebetsang oa Tomcat le seva sa kopo ha ke ntse ke sebetsa ho Jenkins, ke kopantseng Atlassian Jira le BitBucket,' me ke sebetsa ho koahela khoutu ea teko. Morero ona oa lehlakore o atlehile haholo: re ile ra batla re iketsetsa mekhoa e mengata ka ho feletseng, re fihletse nako e ka bang 100% ho seva sa rona sa nts'etsopele, re fane ka ho latela le ho ntlafatsa tlhahlobo ea tlhahlobo ea khoutu, 'me ra eketsa bokhoni ba ho hokahanya makala a Git le litaba tsa Jira kapa li-deployments. Boholo ba lisebelisoa tseo re li sebelisitseng ho aha lipeipi tsa rona tsa DevOps e ne e le mohloli o bulehileng.

Joale kea utloisisa hore na pipeline ea rona ea DevOps e ne e le bonolo hakae: ha rea ​​ka ra sebelisa li-extensions tse kang lifaele tsa Jenkins kapa Ansible. Leha ho le joalo, pipeline ena e bonolo e ile ea sebetsa hantle, mohlomong ka lebaka la molao-motheo oa Pareto (o tsejoang hape e le molao oa 80/20).

Kenyelletso e Khutšoanyane ho DevOps le Pipeline ea CI/CD

Haeba u botsa batho ba 'maloa, "DevOps ke eng?", Mohlomong u tla fumana likarabo tse fapaneng tse fapaneng. DevOps, joalo ka Agile, e bile teng ho latela mekhoa e mengata e fapaneng, empa batho ba bangata ba tla lumellana ka lintho tse 'maloa: DevOps ke ts'ebetso ea nts'etsopele ea software kapa software development cycle (SDLC) eo sepheo sa eona se ka sehloohong se fetolang setso seo bahlahisi le bao e seng bahlahisi ba teng tikolohong eo:

Lits'ebetso tse neng li etsoa pele ka letsoho li entsoe ka boiketsetso;
E mong le e mong o etsa seo a se etsang ka ho fetisisa;
Palo ea ts'ebetsong ka nako e itseng ea eketseha; Phallo e eketseha;
Ho fetoha ha maemo a ntlafatso.

Le ha ho ba le lisebelisoa tse nepahetseng tsa software e se eona feela ntho eo u e hlokang ho theha tikoloho ea DevOps, lisebelisoa tse ling lia hlokahala. Sesebelisoa sa bohlokoa ke ho kopanya ho tsoelang pele le ho tsamaisoa ho tsoelang pele (CI / CD). Liphaepheng tsena, libaka li na le mekhahlelo e fapaneng (mohlala, DEV, INT, TST, QA, UAT, STG, PROD), ts'ebetso e mengata e iketsetsa, 'me bahlahisi ba ka ngola khoutu ea boleng bo phahameng, ba finyella katleho ea tsoelo-pele, le litekanyetso tse phahameng tsa ho tsamaisoa.

Sengoliloeng sena se hlalosa mokhoa oa mehato e mehlano ea ho theha pipeline ea DevOps joalo ka e bontšitsoeng setšoantšong se latelang ho sebelisa lisebelisoa tse bulehileng.

Mohato oa 1: Mekhoa ea CI/CD

Ntho ea pele eo u e hlokang ke sesebelisoa sa CI/CD. Jenkins, sesebelisoa sa mohloli o bulehileng o thehiloeng ho Java le laesense tlas'a laesense ea MIT, ke sesebelisoa se tummeng DevOps mme e fetohile tekanyetso ea de facto.

Joale Jenkins ke eng? E nahane e le mofuta o mong oa taolo e hole ea boselamose e ka buang le ho hlophisa lits'ebeletso le lisebelisoa tse fapaneng. Ka boeona, sesebelisoa sa CI / CD se kang Jenkins ha se na thuso, empa se ba matla le ho feta ha se hokahanya lisebelisoa le litšebeletso tse fapaneng.

Jenkins ke e 'ngoe ea lisebelisoa tse ngata tse bulehileng tsa CI/CD tseo u ka li sebelisang ho aha lipeipi tsa hau tsa DevOps.

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

Mona ke hore na lits'ebetso tsa DevOps li shebahala joang ka sesebelisoa sa CI/CD:

Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

U na le sesebelisoa sa CI/CD se sebetsang sebakeng sa heno, empa ha ho na lintho tse ngata tseo u ka li etsang hajoale. Ha re feteleng mohatong o latelang oa leeto la DevOps.

Mohato oa 2: Laola Litsamaiso tsa Taolo ea Mohloli

Mokhoa o motle ka ho fetisisa (mme mohlomong o bonolo) oa ho netefatsa hore sesebelisoa sa hau sa CI/CD se ka etsa boselamose ke ho hokahana le sesebelisoa sa taolo ea khoutu ea mohloli (SCM). Hobaneng o hloka taolo ea mohloli? Ha re re u ntse u etsa kopo. Nako le nako ha o theha sesebelisoa, oa etsa lenaneo, 'me ha ho na taba hore na u sebelisa Java, Python, C++, Go, Ruby, JavaScript, kapa tse ling tsa li-zillion tsa lipuo tsa lenaneo. Khoutu eo o e ngolang e bitsoa khoutu ea mohloli. Qalong, haholo-holo ha u sebetsa u le mong, mohlomong ho lokile ho beha tsohle bukeng ea lehae. Empa ha morero o ntse o hola mme o mema batho ba bang ho sebelisana, o hloka mokhoa oa ho thibela likhohlano ha o ntse o arolelana liphetoho ka katleho. U boetse u hloka mokhoa oa ho khutlisa liphetolelo tse fetileng, hobane ho theha li-backups le ho li kopitsa / ho li beha ho tsona ha li sa sebetsa. Uena (le basebetsi-'moho le uena) le hloka ho hong ho betere.

Mona ke moo taolo ea khoutu ea mohloli e batlang e le tlhokahalo. Sesebelisoa sena se boloka khoutu ea hau libakeng tsa polokelo, se boloka tlaleho ea liphetolelo, 'me se hokahanya mosebetsi oa bankakarolo ba projeke.

Leha ho na le lisebelisoa tse ngata tsa taolo ea mohloli kantle moo, Git ke maemo, 'me ho joalo. Ke khothaletsa haholo ho sebelisa Git, leha ho na le likhetho tse ling tsa mohloli o bulehileng haeba u khetha.

Git: GPLv2 le LGPL v2.1
Phetolelo: Apache 2.0
Sistimi ea Liphetolelo tse Tšoanang (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+

Sena ke seo pipeline ea DevOps e shebahalang ka eona ka kenyelletso ea li-control tsa khoutu ea mohloli.

Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

Sesebelisoa sa CI / CD se ka iketsetsa lits'ebetso tsa tlhahlobo, ho fumana khoutu ea mohloli, le tšebelisano har'a litho. Ha e mpe? Empa u e fetola joang hore e be sesebelisoa se sebetsang e le hore batho ba libilione ba ka e sebelisa le ho e ananela?

Mohato oa 3: Theha Sesebelisoa sa ho Iketsa

E kholo! U ka hlahloba khoutu 'me ua etsa liphetoho taolong ea mohloli,' me u meme metsoalle ea hau ho sebelisana le nts'etsopele. Empa ha o so etse kopo. Ho etsa ts'ebeliso ea webo, e tlameha ho hlophisoa le ho pakoa ka sebopeho sa batch kapa ho tsamaisoa joalo ka faele e ka phethisoang. (Hlokomela hore puo ea lenaneo e fetoletsoeng joalo ka JavaScript kapa PHP ha e hloke ho hlophisoa).

Sebelisa sesebelisoa sa ho iketsetsa. Ho sa tsotelehe hore na u nka qeto ea ho sebelisa sesebelisoa sefe sa othomathike, kaofela ba na le sepheo se le seng: aha khoutu ea mohloli ka sebopeho se lakatsehang ebe o etsa mosebetsi oa ho hloekisa, ho bokella, ho lekola le ho fetisetsa tikolohong e itseng. Lisebelisoa tsa ho aha li tla fapana ho latela puo ea hau ea lenaneo, empa mona ke likhetho tse ling tse tloaelehileng tsa mohloli o bulehileng.

Sehlooho
License
Puo ea lenaneo

Maven
Apache 2.0
Java

Ant
Apache 2.0
Java

Sekhetho
Apache 2.0
Java

bazel
Apache 2.0
Java

etsa
GNU
N / A

Ho korotla
med
Javascript

Ho korotla
med
Javascript

Sehahi
Apache
Ruby

rakes
med
Ruby

AAP
GNU
python

Mekhahlelo
med
python

BitBake
GPLv2
python

Cake
med
C#

ASDF
Expat (MIT)
LISP

Cabal
BSD
Haskell

E kholo! U ka kenya lifaele tsa tlhophiso ea lisebelisoa tsa mochini ho sistimi ea hau ea taolo ea mohloli 'me u lumelle sesebelisoa sa hau sa CI / CD ho kopanya tsohle.

Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

Tsohle di lokile, na haho jwalo? Empa o ka isa kopo ea hau hokae?

Mohato oa 4: Seva ea Ts'ebeliso ea Marang-rang

Hajoale, u na le faele e pakiloeng e ka phethisoang kapa ea kengoa. Hore ts'ebeliso efe kapa efe e ka ba molemo e le kannete, e tlameha ho fana ka mofuta o itseng oa ts'ebeletso kapa sebopeho, empa o hloka setshelo ho amohela kopo ea hau.

Seva ea kopo ea webo ke setshelo se joalo feela. Seva e fana ka tikoloho eo ho eona logic ea sephutheloana e sebelisoang e ka hlalosoang. Seva e boetse e fana ka sebopeho mme e fana ka lits'ebeletso tsa webo ka ho pepesa li-sockets ho lefatše le kantle. U hloka seva sa HTTP, hammoho le tikoloho e itseng (joaloka mochini o sebetsang) ho e kenya. Hajoale, ha re nke hore u tla ithuta haholoanyane ka sena (le hoja ke tla koahela lijana tse ka tlase).

Ho na le li-server tse 'maloa tse bulehileng tsa ts'ebeliso ea webo.

Sehlooho
License
Puo ea lenaneo

Tomcat
Apache 2.0
Java

Jetty
Apache 2.0
Java

BOPHELO
GNU Lesser Public
Java

GlassFish
CDDL & GNU Hase Sechaba
Java

Django
3-Molao oa BSD
python

ekumbaki
Apache 2.0
python

sethunya
med
python

python
med
python

Li-rails
med
Ruby

Node.js
med
Javascript

Peipi ea hau ea DevOps e se e loketse ho sebelisoa. Mosebetsi o motle!

Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

Ha u ntse u ka emisa moo 'me u sebetsana le ho kopanya ka bouena, boleng ba khoutu ke ntho ea bohlokoa eo moqapi oa app a ka tšoenyehang ka eona.

Mohato oa 5: Ts'ebetso ea Tlhahlobo ea Khoutu

Ho etsa liteko e ka ba tlhoko e 'ngoe e boima, empa bahlahisi ba tlameha ho ts'oara liphoso life kapa life ts'ebelisong pele le ho ntlafatsa boleng ba khoutu ho netefatsa hore basebelisi ba ho qetela ba khotsofetse. Ka lehlohonolo, ho na le lisebelisoa tse ngata tse bulehileng tsa ho leka khoutu ea hau le ho etsa likhothaletso bakeng sa ho ntlafatsa boleng ba eona. Ho hotle le ho feta ke hore lisebelisoa tse ngata tsa CI/CD li ka hokela lisebelisoa tsena le ho iketsetsa ts'ebetso.

Teko ea khoutu e na le likarolo tse peli: meralo ea tlhahlobo ea khoutu e u thusang ho ngola le ho etsa liteko, le lisebelisoa tsa tlhahiso tse u thusang ho ntlafatsa boleng ba khoutu ea hau.

Sistimi ea tlhahlobo ea khoutu

Sehlooho
License
Puo ea lenaneo

JUnit
Eclipse License ea Sechaba
Java

EasyMock
Apache
Java

mockito
med
Java

PowerMock
Apache 2.0
Java

Pytest
med
python

Khopolo-taba
Mozilla
python

Chefo
med
python

Litsamaiso tsa likhothaletso bakeng sa ntlafatso ea khoutu

Sehlooho
License
Puo ea lenaneo

Cobertura
GNU
Java

CodeCover
Eclipse Public (EPL)
Java

Kakaretso.py
Apache 2.0
python

Emma
License e Tloaelehileng ea Sechaba
Java

JaCoCo
Eclipse License ea Sechaba
Java

Khopolo-taba
Mozilla
python

Chefo
med
python

Jasmine
med
Javascript

Karma
med
Javascript

Mocha
med
Javascript

ho na le
med
Javascript

Hlokomela hore boholo ba lisebelisoa le meralo e boletsoeng ka holimo e ngoletsoe Java, Python le JavaScript, kaha C++ le C # ke lipuo tsa mananeo a beng ba matlo (le hoja GCC e le mohloli o bulehileng).

Kaha joale u se u kentse lisebelisoa tsa tlhahlobo ea liteko, lipeipi tsa hau tsa DevOps li lokela ho shebahala joalo ka setšoantšo se bontšitsoeng qalong ea thuto ena.

Mehato e Eketsehileng

Lijana

Joalo ka ha ke boletse, o ka amohela seva ea hau mochining o sebetsang kapa seva, empa lijana ke tharollo e tsebahalang.

Linkho ke eng? Tlhaloso e khuts'oane ke hore mochini o sebetsang o hloka palo e kholo ea memori ea sistimi e sebetsang, e fetang boholo ba ts'ebeliso, athe setshelo se hloka lilaebrari le litlhophiso tse 'maloa ho tsamaisa ts'ebeliso. Ho hlakile hore ho ntse ho e-na le lisebelisoa tsa bohlokoa bakeng sa mochine oa sebele, empa setshelo ke tharollo e bobebe bakeng sa ho amohela kopo, ho kenyeletsa le seva sa kopo.

Leha ho na le likhetho tse ling tsa lijana, tse tsebahalang haholo ke Docker le Kubernetes.

Docker: Apache 2.0
Kubernetes: Apache 2.0

Lisebelisoa tsa boiketsetso tse mahareng

Pipe ea rona ea DevOps e tsepamisitse maikutlo ho thehoeng ha likopo tse kopanetsoeng le phepelong, empa ho na le lintho tse ling tse ngata tse ka etsoang ka lisebelisoa tsa DevOps. E 'ngoe ea tsona ke ts'ebeliso ea lisebelisoa tsa Infrastructure as Code (IaC), tse tsejoang hape e le lisebelisoa tsa boits'oaro tsa middleware. Lisebelisoa tsena li thusa ho kenya, tsamaiso, le mesebetsi e meng bakeng sa middleware. Kahoo, ho etsa mohlala, sesebelisoa sa othomathike se ka ntša lits'ebetso joalo ka seva sa ts'ebeliso ea webo, database, le sesebelisoa sa ho beha leihlo se nang le litlhophiso tse nepahetseng ebe se li romella ho seva ea kopo.

Mona ke tse ling tsa lisebelisoa tse otlolohileng tsa middleware automation:

E utloahalang: GNU Public
SaltStack: Apache 2.0
Chef: Apache 2.0
Popi: Apache kapa GPL

Tataiso ea ba qalang: Ho theha Pipeline ea DevOps

Fumana lintlha tse mabapi le mokhoa oa ho fumana mosebetsi o batloang ho tloha qalong kapa Level Up ho latela litsebo le moputso ka ho nka lithuto tse lefelloang tsa inthanete ho tsoa SkillFactory:

lithuto tse ling

E sebelisoa

Source: www.habr.com

Eketsa ka tlhaloso