Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Ma tha thu ùr do DevOps, thoir sùil air an stiùireadh còig-cheum seo mu bhith a’ cruthachadh a’ chiad loidhne-phìoban agad.

Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Tha DevOps air a thighinn gu bhith na fhuasgladh àbhaisteach airson pròiseasan leasachadh bathar-bog slaodach, neo-cheangailte no briste a chàradh. Is e an duilgheadas a th’ ann ma tha thu ùr do DevOps agus nach eil fios agad càite an tòisich thu, is dòcha nach eil tuigse agad air na dòighean sin. Bruidhnidh an artaigil seo air mìneachadh loidhne-phìoban DevOps agus bheir e seachad stiùireadh còig-ceum airson aon a chruthachadh. Ged nach eil an oideachadh seo coileanta, bu chòir dha bunait a thoirt dhut airson tòiseachadh air do thuras agus leudachadh air an eòlas agad san àm ri teachd. Ach tòisichidh sinn le eachdraidh.

An turas DevOps agam

Bha mi ag obair roimhe seo air sgioba sgòthan Citi Group a’ leasachadh prògram lìn Bun-structar-mar-a-Seirbheis (IaaS) gus bun-structar sgòthan Citi a riaghladh, ach bha ùidh agam a-riamh ann a bhith a’ dèanamh a’ phròiseas leasachaidh nas èifeachdaiche agus a’ toirt atharrachadh cultarail adhartach don sgioba leasachaidh. Lorg mi am freagairt ann an leabhar a mhol Greg Lavender, CTO de Cloud Architecture and Infrastructure at Citi. Chaidh an leabhar ainmeachadh mar The Phoenix Project (Pròiseact Phoenix), agus tha e a’ mìneachadh prionnsapalan DevOps, ach tha e a’ leughadh mar nobhail.

Tha an clàr aig cùl an leabhair a’ sealltainn cho tric sa bhios diofar chompanaidhean a’ cleachdadh an siostaman ann an àrainneachd fuasglaidh:

Amazon: 23 gach latha
Google: 5 gach latha
Netflix: 500 gach latha
Facebook: Aon uair san latha
Twitter: 3 tursan san t-seachdain
Companaidh àbhaisteach: Aon uair gach 9 mìosan

Ciamar a tha triceadan Amazon, Google agus Netflix eadhon comasach? Tha seo air sgàth gu bheil na companaidhean sin air faighinn a-mach mar a chruthaicheas iad loidhne-phìoban DevOps a tha cha mhòr foirfe.

Bha sinn fada bho seo gus an do chuir sinn DevOps an gnìomh aig Citi. Air ais an uairsin, bha àrainneachdan eadar-dhealaichte aig an sgioba agam, ach bha an cleachdadh air an fhrithealaiche leasachaidh gu tur làimhe. Cha robh cothrom aig a h-uile leasaiche ach air aon fhrithealaiche leasachaidh stèidhichte air IBM WebSphere Application Server Community Edition. B’ e an duilgheadas a bh’ ann gum biodh am frithealaiche a’ dùnadh nuair a dh’ fheuchadh ioma-chleachdaiche ri cleachdadh aig an aon àm, agus mar sin bha aig an luchd-leasachaidh ri na rùintean aca a chuir an cèill dha chèile, rud a bha gu math pian. A bharrachd air an sin, bha cùisean ann le còmhdach còd deuchainn ìre ìosal, pròiseasan cleachdadh làimhe trom, agus neo-chomas sùil a chumail air cleachdadh còd co-cheangailte ri gnìomh sònraichte no sgeulachd neach-cleachdaidh.

Thuig mi gu robh feum air rudeigin a dhèanamh agus lorg mi co-obraiche den aon seòrsa inntinn. Cho-dhùin sinn co-obrachadh gus a’ chiad loidhne-phìoban DevOps a thogail - stèidhich e inneal brìgheil Tomcat agus frithealaiche tagraidh fhad ‘s a bha mi ag obair air Jenkins, Atlassian Jira aonaichte agus BitBucket, agus dh’ obraich e air còmhdach còd deuchainn. Bha am pròiseact taobh seo air leth soirbheachail: cha mhòr nach do rinn sinn fèin-ghluasad air mòran phròiseasan, choilean sinn faisg air 100% uptime air an t-seirbheisiche leasachaidh againn, thug sinn seachad lorg agus craoladh deuchainn nas fheàrr air a’ chòd, agus chuir sinn ris a’ chomas meuran Git a cheangal ri cùisean no cleachdadh Jira. Bha a’ mhòr-chuid de na h-innealan a chleachd sinn airson ar loidhne-phìoban DevOps a thogail fosgailte.

A-nis tha mi a’ tuigsinn cho sìmplidh sa bha an loidhne-phìoban DevOps againn: cha do chleachd sinn leudachaidhean mar faidhlichean Jenkins no Ansible. Ach, dh'obraich an loidhne-phìoban sìmplidh seo gu math, is dòcha air sgàth prionnsabal Pareto (ris an canar cuideachd riaghailt 80/20).

Ro-ràdh goirid mu DevOps agus an loidhne-phìoban CI/CD

Ma dh’fhaighnicheas tu dha grunn dhaoine, “Dè a th’ ann an DevOps? ”, Is dòcha gum faigh thu grunn fhreagairtean eadar-dhealaichte. Tha DevOps, mar Agile, air a thighinn air adhart gu bhith a’ spangachadh iomadh cuspair eadar-dhealaichte, ach aontaichidh a’ mhòr-chuid air beagan rudan: Is e cleachdadh leasachadh bathar-bog no cearcall beatha leasachadh bathar-bog (SDLC) a th’ ann an DevOps aig a bheil prìomh phrionnsapal ag atharrachadh a’ chultair anns a bheil luchd-leasachaidh agus neo-. tha luchd-leasachaidh ann an àrainneachd anns a bheil:

Tha gnìomhachdan a chaidh a dhèanamh roimhe le làimh air a bhith fèin-ghluasadach;
Bidh a h-uile duine a 'dèanamh an rud as fheàrr a nì iad;
Tha an àireamh de bhuileachadh thar ùine sònraichte a 'meudachadh; Meudachadh trochur;
Meudachadh sùbailteachd leasachaidh.

Ged nach e na h-innealan bathar-bog ceart an aon rud a dh’ fheumas tu gus àrainneachd DevOps a chruthachadh, tha cuid de dh’ innealan riatanach. Is e prìomh inneal amalachadh leantainneach agus cleachdadh leantainneach (CI/CD). Anns an loidhne-phìoban seo, tha diofar ìrean aig àrainneachdan (me DEV, INT, TST, QA, UAT, STG, PROD), tha mòran obrachaidhean fèin-ghluasadach, agus faodaidh luchd-leasachaidh còd àrd-inbhe a sgrìobhadh, sùbailteachd leasachaidh a choileanadh, agus ìrean cleachdaidh àrd.

Tha an artaigil seo a’ toirt cunntas air dòigh-obrach còig-ceum airson loidhne-phìoban DevOps a chruthachadh mar an tè a chithear san dealbh a leanas a’ cleachdadh innealan stòr fosgailte.

Ceum 1: Dòighean CI / CD

Is e a’ chiad rud a dh’ fheumas tu inneal CI/CD. Is e Jenkins, inneal stòr fosgailte stèidhichte air Java agus le cead fo chead MIT, an inneal a chòrd ri DevOps agus a thàinig gu bhith na inbhe de facto.

Mar sin dè a th’ ann an Jenkins? Smaoinich air mar sheòrsa de smachd iomallach draoidheil uile-choitcheann as urrainn bruidhinn ri agus eagrachadh diofar sheirbheisean is innealan. Leis fhèin, tha inneal CI / CD mar Jenkins gun fheum, ach bidh e a ’fàs nas cumhachdaiche leis gu bheil e a’ ceangal ri diofar innealan agus seirbheisean.

Tha Jenkins dìreach mar aon de dh’ iomadh inneal CI / CD stòr fosgailte as urrainn dhut a chleachdadh gus do loidhne-phìoban DevOps a thogail.

Jenkins: Creative Commons agus MIT
Travis CI: MIT
Smachd turas-mara: BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Cabie: GNU

Seo cò ris a tha pròiseasan DevOps coltach le inneal CI / CD:

Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Tha inneal CI / CD agad a’ ruith air an localhost agad, ach chan eil mòran as urrainn dhut a dhèanamh an-dràsta. Gluaisidh sinn air adhart chun ath ìre de thuras DevOps.

Ceum 2: Stiùirich Source Control Systems

Is e an dòigh as fheàrr (agus is dòcha as fhasa) airson dearbhadh gun urrainn don inneal CI / CD agad a dhraoidheachd a dhèanamh a bhith ag amalachadh le inneal smachd còd stòr (SCM). Carson a tha feum agad air smachd stòr? Canaidh sinn gu bheil thu a’ leasachadh tagradh. Nuair a chruthaicheas tu tagradh, bidh thu a’ prògramadh, agus chan eil diofar a bheil thu a’ cleachdadh Java, Python, C ++, Go, Ruby, JavaScript, no gin de na zillions de chànanan prògramaidh. Canar còd stòr ris a’ chòd a sgrìobhas tu. Aig an toiseach, gu sònraichte nuair a tha thu ag obair leat fhèin, tha e coltach gu bheil e ceart gu leòr a h-uile càil a chuir ann an eòlaire ionadail. Ach mar a bhios am pròiseact a’ fàs nas motha agus gu bheil thu a’ toirt cuireadh do dhaoine eile co-obrachadh, feumaidh tu dòigh air casg a chuir air còmhstri fhad ‘s a bhios tu a’ roinn atharrachaidhean gu h-èifeachdach. Feumaidh tu cuideachd dòigh air dreachan a bh’ ann roimhe a thoirt air ais, oir tha cruthachadh cùl-taic agus leth-bhreacadh / pasgadh a-steach a’ dol à bith. Feumaidh tu fhèin (agus do cho-bhuillichean sgioba) rudeigin nas fheàrr.

Seo far a bheil smachd còd stòr cha mhòr riatanach. Bidh an inneal seo a’ stòradh do chòd ann an stòran, a’ cumail sùil air dreachan, agus a’ co-òrdanachadh obair chom-pàirtichean a’ phròiseict.

Ged a tha mòran innealan smachd stòr a-muigh an sin, is e Git an ìre àbhaisteach, agus gu ceart mar sin. Tha mi a’ moladh gu mòr a bhith a’ cleachdadh Git, ged a tha roghainnean stòr fosgailte eile ann mas fheàrr leat.

Git: GPLv2 agus LGPL v2.1
Fo-thionndadh: Apache 2.0
Siostam Tionndaidhean Co-aontach (CVS): GNU
Airson: LGPL
Mercurial: GNU GPL v2+

Seo cò ris a tha loidhne-phìoban DevOps coltach le bhith a’ cur a-steach smachdan còd stòr.

Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Faodaidh inneal CI/CD na pròiseasan ath-bhreithneachaidh, togail còd stòr, agus co-obrachadh am measg bhall a dhèanamh fèin-ghluasadach. Chan eil sin dona? Ach ciamar a thionndaidheas tu e gu bhith na thagradh obrach gus an urrainn dha billeanan de dhaoine a chleachdadh agus a mheas?

Ceum 3: Cruthaich Inneal Togail Automation

Sgoinneil! Faodaidh tu còd ath-sgrùdadh agus atharrachaidhean a dhèanamh air smachd stòr, agus cuireadh a thoirt dha do charaidean co-obrachadh air leasachadh. Ach chan eil thu air tagradh a chruthachadh fhathast. Gus tagradh lìn a dhèanamh, feumaidh e a bhith air a chur ri chèile agus air a phacaigeadh ann an cruth baidse a ghabhas cleachdadh no a ruith mar fhaidhle so-ghnìomhaichte. (Thoir an aire nach fheum cànan prògramadh eadar-mhìneachaidh leithid JavaScript no PHP a bhith air a chur ri chèile).

Cleachd inneal fèin-ghluasaid togail. Ge bith dè an inneal fèin-ghluasaid togail a cho-dhùnas tu a chleachdadh, tha an aon amas aca uile: tog an còd stòr gu cruth a tha thu ag iarraidh agus fèin-ghluasad a dhèanamh air a’ ghnìomh airson glanadh, cur ri chèile, deuchainn agus cleachdadh gu àrainneachd shònraichte. Bidh innealan togail ag atharrachadh a rèir do chànan prògramaidh, ach seo cuid de roghainnean stòr fosgailte cumanta.

Tiotal
Cead
Cànan prògramaidh

Maven
Apache 2.0
Java

Ant
Apache 2.0
Java

Gradle
Apache 2.0
Java

Bazel
Apache 2.0
Java

dèan
GNU
N / A

rùchd
MIT
JavaScript

Gulp
MIT
JavaScript

Fear-togail
Apache
Ruby

Rùsg
MIT
Ruby

AAP
GNU
Python

SCons
MIT
Python

BitBake
GPLv2
Python

Cèic
MIT
C#

asdf
Expat (MIT)
LISP

Cabal
BSD
Haskell

Sgoinneil! Faodaidh tu na faidhlichean rèiteachaidh inneal fèin-ghluasaid togail a chuir a-steach don t-siostam smachd stòr agad agus leigeil leis an inneal CI / CD agad a h-uile càil a chuir ri chèile.

Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Tha a h-uile rud gu math, nach eil? Ach càite an cuir thu an tagradh agad an sàs?

Ceum 4: Web Application Server

Airson a-nis, tha faidhle pacaichte agad a dh'fhaodar a chur an gnìomh no a stàladh. Airson tagradh sam bith a bhith dha-rìribh feumail, feumaidh e seirbheis no eadar-aghaidh de sheòrsa air choreigin a thoirt seachad, ach feumaidh tu soitheach gus an tagradh agad a chumail.

Is e dìreach inneal mar sin a th’ ann an frithealaiche tagradh lìn. Tha am frithealaiche a’ toirt seachad àrainneachd anns an urrainnear loidsig a’ phacaid a thathar a’ cleachdadh a mhìneachadh. Bidh am frithealaiche cuideachd a’ toirt seachad eadar-aghaidh agus a’ tabhann seirbheisean lìn le bhith a’ nochdadh socaidean don t-saoghal a-muigh. Feumaidh tu frithealaiche HTTP, a bharrachd air beagan àrainneachd (mar inneal brìgheil) airson a stàladh. Airson a-nis, leig leinn gun ionnsaich thu barrachd mu dheidhinn seo (ged a còmhdaichidh mi soithichean gu h-ìosal).

Tha grunn luchd-frithealaidh aplacaid lìn fosgailte ann.

Tiotal
Cead
Cànan prògramaidh

Tomcat
Apache 2.0
Java

Cidhe
Apache 2.0
Java

An ìomhaigheag airson WildFly
GNU Poblach nas lugha
Java

Iasg Glainne
CDDL & GNU Nas lugha poblach
Java

Django
3-Clause BSD
Python

Tornado
Apache 2.0
Python

gunicorn
MIT
Python

Python
MIT
Python

Rails
MIT
Ruby

Node.js
MIT
Javascript

Tha an loidhne-phìoban DevOps agad cha mhòr deiseil airson a chleachdadh. Deagh obair!

Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Fhad ‘s as urrainn dhut stad an sin agus an aonachadh a làimhseachadh thu fhèin, tha càileachd còd na rud cudromach dha leasaiche app a bhith draghail.

Ceum 5: Còmhdach Deuchainn Còd

Faodaidh buileachadh deuchainnean a bhith na riatanas duilich eile, ach feumaidh luchd-leasachaidh grèim fhaighinn air biastagan sam bith san tagradh tràth agus càileachd a’ chòd adhartachadh gus dèanamh cinnteach gu bheil an luchd-cleachdaidh deireannach riaraichte. Gu fortanach, tha mòran innealan fosgailte ann airson do chòd a dhearbhadh agus molaidhean a dhèanamh airson a chàileachd a leasachadh. Is e an rud a tha eadhon nas fheàrr gum faod a’ mhòr-chuid de dh’ innealan CI / CD ceangal ris na h-innealan sin agus am pròiseas a dhèanamh fèin-ghluasadach.

Tha dà phàirt ann an deuchainn còd: frèaman deuchainn còd a chuidicheas tu gus deuchainnean a sgrìobhadh agus a ruith, agus innealan molaidh a chuidicheas tu gus càileachd a’ chòd agad a leasachadh.

Siostaman deuchainn còd

Tiotal
Cead
Cànan prògramaidh

JUnit
Cead Poblach Eclipse
Java

EasyMock
Apache
Java

magadh
MIT
Java

CumhachdMock
Apache 2.0
Java

Pytest
MIT
Python

Brat-bheachd
Mozilla
Python

tùis
MIT
Python

Siostaman molaidhean airson leasachadh còd

Tiotal
Cead
Cànan prògramaidh

Cobertura
GNU
Java

Còmhdach còd
Eclipse Public (EPL)
Java

Còmhdach.py
Apache 2.0
Python

Emma
Cead Poblach Coitcheann
Java

JaCoCo
Cead Poblach Eclipse
Java

Brat-bheachd
Mozilla
Python

tùis
MIT
Python

Jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mocha
MIT
JavaScript

tha
MIT
JavaScript

Thoir an aire gu bheil a’ mhòr-chuid de na h-innealan agus na frèaman air an deach iomradh a thoirt gu h-àrd air an sgrìobhadh airson Java, Python agus JavaScript, leis gu bheil C ++ agus C # nan cànanan prògramadh seilbh (ged a tha GCC stòr fosgailte).

A-nis gu bheil thu air innealan còmhdach deuchainn a chuir an gnìomh, bu chòir don loidhne-phìoban DevOps agad coimhead coltach ris an dealbh a chithear aig toiseach an oideachaidh seo.

Ceumannan a bharrachd

Containers

Mar a thuirt mi, faodaidh tu aoigheachd a thoirt don t-seirbheisiche agad air inneal brìgheil no frithealaiche, ach tha soithichean mar fhuasgladh mòr-chòrdte.

Dè th' ann an soithichean? Is e am mìneachadh goirid gu bheil feum aig inneal brìgheil air tòrr mòr de chuimhne siostam obrachaidh, nas àirde na meud an tagraidh, fhad ‘s nach fheum inneal ach beagan leabharlannan agus rèiteachaidhean gus an tagradh a ruith. Gu dearbh, tha cleachdaidhean cudromach ann fhathast airson inneal brìgheil, ach tha inneal-gleidhidh na fhuasgladh aotrom airson a bhith a ’toirt aoigheachd do thagradh, a’ toirt a-steach frithealaiche tagraidh.

Ged a tha roghainnean soithichean eile ann, is e Docker agus Kubernetes an fheadhainn as mòr-chòrdte.

Docker: Apache 2.0
Stiùireadh: Apache 2.0

Innealan fèin-ghluasaid eadar-mheadhanach

Tha an loidhne-phìoban DevOps againn gu sònraichte ag amas air cruthachadh agus cleachdadh thagraidhean co-obrachail, ach tha mòran rudan eile ann a ghabhas dèanamh le innealan DevOps. Is e aon dhiubh a bhith a’ cleachdadh innealan Bun-structair mar Chòd (IaC), ris an canar cuideachd innealan fèin-ghluasaid midware. Bidh na h-innealan sin a’ cuideachadh le stàladh fèin-ghluasadach, riaghladh, agus gnìomhan eile airson bathar meadhanach. Mar sin, mar eisimpleir, faodaidh inneal fèin-ghluasaid tagraidhean leithid frithealaiche tagradh lìn, stòr-dàta, agus inneal sgrùdaidh leis na rèiteachaidhean ceart a thoirt a-mach agus an cur gu frithealaiche an tagraidh.

Seo cuid de dh’ innealan fèin-ghluasaid meadhan bathar fosgailte:

Freagarrach: GNU Public
SaltStack: Apache 2.0
Còcaire: Apache 2.0
Pupaid: Apache no GPL

Iùl luchd-tòiseachaidh: A’ cruthachadh loidhne-phìoban DevOps

Faigh a-mach mion-fhiosrachadh air mar a gheibh thu dreuchd air a bheil iarrtas bhon fhìor thoiseach no Ìre Suas a thaobh sgilean agus tuarastal le bhith a’ gabhail chùrsaichean pàighte air-loidhne bho SkillFactory:

barrachd chùrsaichean

Feumail

Source: www.habr.com

Cuir beachd ann