Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

Mena he hou koe ki a DevOps, tirohia tenei aratohu e rima-taahiraa ki te hanga i to paipa tuatahi.

Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

Ko DevOps te otinga paerewa mo te whakatika i nga tukanga whanaketanga rorohiko puhoi, wehe, pakaru ranei. Ko te raru mena he hou koe ki a DevOps kaore koe e mohio ki hea ka tiimata, ka kore pea koe e mohio ki enei tikanga. Ka matapakihia e tenei tuhinga te whakamaramatanga o te paipa DevOps me te whakarato hoki i nga tohutohu e rima-taahiraa mo te hanga i tetahi. Ahakoa kaore i te tino pau tenei akoranga, me whai turanga koe ki te timata i to haerenga me te whakawhanui i to matauranga a muri ake nei. Engari me timata ki te hitori.

Taku Haerenga DevOps

I mahi ahau i mua i te roopu kapua a Citi Group ki te whakawhanake i tetahi tono tukutuku Infrastructure-as-a-Service (IaaS) hei whakahaere i nga hanganga kapua o Citi, engari i nga wa katoa ka pirangi ahau me pehea e pai ake ai te tukanga whanaketanga me te kawe mai i nga huringa ahurea pai ki te rōpū whanaketanga. I kitea e au te whakautu i roto i te pukapuka i taunakihia e Greg Lavender, CTO o Cloud Architecture and Infrastructure i Citi. I tapaina te pukapuka ko The Phoenix Project (Te Kaupapa Phoenix), me te whakamarama i nga maataapono o DevOps, engari he rite te panui.

Ko te tepu kei muri o te pukapuka e whakaatu ana i te maha o nga kamupene rereke e tuku ana i o raatau punaha ki roto i te taiao tuku:

Amazon: 23 ia ra
Google: 5 ia ra
Netflix: 500 ia ra
Pukamata: Kotahi ia ra
Twitter: 3 nga wa ia wiki
Kamupene angamaheni: Kia kotahi ia 9 marama

Me pehea e taea ai e Amazon, Google me Netflix nga waarangi? Ko tenei na te mea kua mohio enei kamupene me pehea te hanga i tetahi paipa DevOps tata tino pai.

I tawhiti matou i tenei tae noa ki te whakatinanatanga o DevOps i Citi. I tera wa, he rereke nga taiao o taku roopu, engari ko te tukunga i runga i te tuunga whanaketanga he tino a-ringa. Ko nga kaiwhakawhanake katoa i uru ki te kotahi anake te tūmau whanaketanga i runga i te IBM WebSphere Application Server Community Edition. Ko te raru ka tutakina te kaimau i nga wa katoa e ngana ana nga kaiwhakamahi maha ki te tuku i te wa kotahi, no reira me korero nga kaiwhakawhanake i o raatau whakaaro ki a raatau ano, he tino mamae. I tua atu, i puta nga take ki te kapinga tohu tohu whakamatautau taumata-iti, nga mahi toha a-ringa, me te kore e kaha ki te whai i te tukunga o te waehere e pa ana ki tetahi mahi motuhake, korero kaiwhakamahi ranei.

I mohio ahau me mahi tetahi mea ka kitea he hoa mahi rite te whakaaro. I whakatau matou ki te mahi tahi ki te hanga i te paipa DevOps tuatahi - i whakaturia e ia he miihini mariko Tomcat me te tūmau tono i a au e mahi ana i runga i a Jenkins, i whakauruhia a Atlassian Jira me BitBucket, me te mahi mo te whakamaarama tohu tohu. I tino angitu tenei kaupapa taha: kua tata ki te mahi aunoa i nga mahi maha, kua tutuki tata ki te 100% te wa mahi i runga i ta maatau tūmau whanaketanga, i whakarato i te aroturuki me te whakapai ake i te kapinga whakamatautau o te waehere, me te taapiri i te kaha ki te hono i nga manga Git ki nga take a Jira, ki te tuku ranei. Ko te nuinga o nga taputapu i whakamahia e matou ki te hanga i o maatau paipa DevOps he puna tuwhera.

Inaianei kua mohio au ki te ngawari o ta maatau pipeline DevOps: kaore matou i whakamahi i nga taapiri penei i nga konae Jenkins, Ansible ranei. Heoi, i pai te mahi o tenei paipa ngawari, na te kaupapa Pareto (e mohiotia ana ko te ture 80/20).

He Whakataki Poto mo DevOps me te CI/CD Pipeline

Mena ka patai koe ki etahi taangata, "He aha te DevOps?", He maha nga whakautu rereke ka whiwhi koe. Ko nga DevOps, penei i a Agile, kua huri ki te maha o nga momo kaupapa, engari ko te nuinga o nga tangata ka whakaae ki etahi mea: Ko DevOps he mahinga whanaketanga rorohiko, he huringa ora whanaketanga rorohiko ranei (SDLC) ko tana kaupapa matua kei te whakarereke i te ahurea kei roto i nga kaihanga me te kore- Kei te noho nga kaiwhakawhanake ki tetahi taiao e:

Ko nga mahi i mahia i mua ma te ringa kua mahi aunoa;
Ka mahia e ia tangata nga mea e pai ana ki a ia;
Ka piki ake te maha o nga whakatinanatanga mo tetahi waa; Ka piki ake te urunga;
Te kaha ake o te whakawhanaketanga ngawari.

Ahakoa ko nga taputapu rorohiko tika ehara i te mea anake hei hanga i tetahi taiao DevOps, he mea nui etahi taputapu. Ko te taputapu matua ko te whakauru tonu me te tuku tonu (CI/CD). I roto i tenei pipeline, he rereke nga waahanga o nga taiao (hei tauira, DEV, INT, TST, QA, UAT, STG, PROD), he maha nga mahi e mahi aunoa ana, ka taea e nga kaihanga te tuhi i te waehere kounga teitei, te whakatutuki i te kaha o te whakawhanaketanga, me te nui o nga reiti tuku.

Ko tenei tuhinga e whakaatu ana i te huarahi e rima-taahiraa ki te hanga i te paipa DevOps penei i te whakaatu i te hoahoa e whai ake nei ma te whakamahi i nga taputapu puna tuwhera.

Hipanga 1: Tikanga CI/CD

Ko te mea tuatahi e hiahia ana koe he taputapu CI/CD. Ko Jenkins, he taputapu puna tuwhera i runga i te Java me te raihana i raro i te raihana MIT, ko te taputapu i rongonui ai a DevOps a kua waiho hei paerewa pono.

Na he aha a Jenkins? Whakaarohia he momo mana mamao mo te ao makutu ka taea te korero me te whakarite i nga momo ratonga me nga taputapu. I a ia ake, he koretake te taputapu CI / CD penei i a Jenkins, engari ka kaha ake te kaha ka hono atu ki nga taputapu me nga ratonga rereke.

Ko Jenkins tetahi noa o nga taputapu CI/CD puna tuwhera ka taea e koe te whakamahi hei hanga i to paipa DevOps.

Jenkins: Creative Commons me MIT
Travis CI: MIT
CruiseControl:BSD
Kaihanga: GPL
Apache Gump: Apache 2.0
Kapi: GNU

Anei te ahua o nga tukanga DevOps me te taputapu CI/CD:

Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

Kei a koe he taputapu CI/CD kei runga i to localhost, engari he iti noa nga mea ka taea e koe i tenei wa. Me neke tatou ki te waahanga o muri o te haerenga DevOps.

Hipanga 2: Whakahaere Pūnaha Mana Puna

Ko te huarahi tino pai (me te ngawari pea) ki te manatoko ka taea e to taputapu CI/CD te mahi makutu ko te whakauru ki te taputapu mana waehere puna (SCM). He aha te take e hiahia ana koe ki te mana puna? Me kii kei te whakawhanake koe i tetahi tono. I nga wa katoa ka waihangahia e koe he tono, kei te whakamaarama koe, kaore he aha mena ka whakamahi koe i te Java, Python, C++, Haere, Ruby, JavaScript, me etahi o nga tini o nga reo hotaka. Ko te waehere ka tuhia e koe ka kiia ko te waehere puna. I te timatanga, ina koa kei te mahi koe ko koe anake, he pai ki te whakauru i nga mea katoa ki roto i te raarangi rohe. Engari i te mea ka nui haere te kaupapa, ka tono koe i etahi atu tangata kia mahi tahi, me whai huarahi koe ki te aukati i nga papā i te wa e tohatoha ana koe i nga whakarereketanga. Me whai huarahi ano koe ki te whakaora i nga putanga o mua, na te mea kei te ngaro haere te hanga taapiri me te kape/whakapiri ki roto. Kei te hiahia koe (me o hoa hoa) ki tetahi mea pai ake.

Koinei te waahi ka tino hiahiatia te mana waehere puna. Ko tenei taputapu kei te rongoa i to waehere ki roto i nga whare pupuri, ka pupuri i nga putanga, me te whakarite i nga mahi a nga kaiuru kaupapa.

Ahakoa he maha nga taputapu whakahaere puna kei reira, ko Git te paerewa, me te tika. Ka tino taunaki ahau ki te whakamahi i a Git, ahakoa he maha atu nga whiringa puna tuwhera ki te hiahia koe.

Git: GPLv2 me LGPL v2.1
Huringa: Apache 2.0
Pūnaha Putanga Tukutahi (CVS): GNU
Tohu: LGPL
Mercurial: GNU GPL v2+

Koinei te ahua o te paipa DevOps me te taapiri o nga mana waehere puna.

Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

Ka taea e tetahi taputapu CI/CD te whakaaunoa i nga tukanga o te arotake, te whiwhi waehere puna, me te mahi tahi i waenga i nga mema. Ehara i te kino? Engari me pehea e huri ai koe hei tono mahi kia taea ai e nga piriona taangata te whakamahi me te maioha?

Hipanga 3: Waihangahia he Utauta Hangaia Aunoa

Rawe! Ka taea e koe te arotake i te waehere me te whakarereke i te mana puna, me te tono i o hoa ki te mahi tahi mo te whanaketanga. Engari kaore ano koe kia hanga tono. Hei hanga i tetahi tono tukutuku, me whakahiato me te kii ki roto i te whakatakotoranga puranga ka taea te whakahaere, ka whakahaere ranei hei konae kawe. (Kia mahara kaore e tika kia whakahiatohia he reo whakamaori penei i te JavaScript, PHP ranei).

Whakamahia he taputapu hanga aunoa. Ahakoa he aha te hanga taputapu aunoa ka whakatauhia e koe ki te whakamahi, he rite tonu te whainga o te katoa: hanga i te waehere puna ki etahi whakatakotoranga e hiahiatia ana me te mahi aunoa i te mahi horoi, whakahiato, whakamatautau me te tuku ki tetahi taiao motuhake. Ka rereke nga taputapu hanga i runga i to reo kaupapa, engari koinei etahi o nga whiringa puna tuwhera noa.

Taitara
Raihana
Te reo hōtaka

Maven
Apache 2.0
Java

Ant
Apache 2.0
Java

Te potae
Apache 2.0
Java

paera
Apache 2.0
Java

hanga
GNU
N / He

Pakihi
MIT
JavaScript

Gulp
MIT
JavaScript

Kaihanga
Apache
Ruby

Hake
MIT
Ruby

AAP
GNU
nānati

SCons
MIT
nānati

BitBake
GPLv2
nānati

Te keke
MIT
C#

ASDF
Tangata (MIT)
KUPU

Cabal
BSD
Hōkoi

Rawe! Ka taea e koe te whakauru i nga konae whirihoranga taputapu hanga aunoa ki roto i to punaha whakahaere puna ka waiho ma to taputapu CI/CD kia whakakotahi nga mea katoa.

Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

He pai nga mea katoa, kaore? Engari kei hea te whakatakoto i to tono?

Hipanga 4: Tūmau Taupānga Tukutuku

I tenei wa, he konae kei a koe ka taea te kawe, te whakauru ranei. Kia tino whai hua tetahi tono, me whakarato etahi momo ratonga, atanga ranei, engari me whai ipu hei manaaki i to tono.

Ko te tūmau tono paetukutuku he ipu noa. Ka whakaratohia e te tūmau he taiao e taea ai te tautuhi i te arorau o te kete e tukuna ana. Ka whakaratohia ano e te tūmau he atanga me te tuku ratonga tukutuku ma te whakaatu i nga turanga ki te ao o waho. Kei te hiahia koe ki tetahi tūmau HTTP, me etahi taiao (penei i te miihini mariko) hei whakauru. Inaianei, me whakaaro ka ako koe mo tenei (ahakoa ka hipokina e au nga ipu kei raro).

He maha nga kaiwhakarato tono tukutuku puna tuwhera.

Taitara
Raihana
Te reo hōtaka

Tomcat
Apache 2.0
Java

Jetty
Apache 2.0
Java

WildFly
GNU Lesser Public
Java

KarāheHihi
CDDL & GNU He iti ake te iwi
Java

Django
3-Rarangi BSD
nānati

puahiohio
Apache 2.0
nānati

pūpuku
MIT
nānati

nānati
MIT
nānati

Rails
MIT
Ruby

Node.js
MIT
Javascript

Kua tata rite to paipa DevOps ki te whakamahi. Mahi pai!

Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

Ahakoa ka taea e koe te tu ki reira me te hapai i te whakaurunga i a koe ano, ko te kounga o te waehere he mea nui mo te kaiwhakawhanake taupānga hei awangawanga.

Hipanga 5: Waehere Whakamatau Kapi

Ko te whakatinana i nga whakamatautau he mea uaua ano, engari me hopu nga kaiwhakawhanake i nga pepeke i roto i te tono moata me te whakapai ake i te kounga o te waehere kia pai ai nga kaiwhakamahi mutunga. Waimarie, he maha nga taputapu puna tuwhera mo te whakamatautau i to waehere me te hanga tohutohu mo te whakapai ake i tona kounga. Ko te mea pai ake ko te nuinga o nga taputapu CI/CD ka taea te hono atu ki enei taputapu me te whakaaunoa i te mahi.

E rua nga wahanga o te whakamatautau waehere: nga anga whakamatautau waehere hei awhina i a koe ki te tuhi me te whakahaere i nga whakamatautau, me nga taputapu whakaaro hei awhina i a koe ki te whakapai ake i te kounga o to waehere.

Nga punaha whakamatautau waehere

Taitara
Raihana
Te reo hōtaka

JUnit
Ko te Raihana Raraunga Porohita
Java

EasyMock
Apache
Java

Mokito
MIT
Java

PowerMock
Apache 2.0
Java

Pytest
MIT
nānati

Hipopototanga
Mozilla
nānati

Toi
MIT
nānati

Nga punaha tohutohu mo te whakapai ake i te waehere

Taitara
Raihana
Te reo hōtaka

Cobertura
GNU
Java

Taupoki Waehere
Eclipse Public (EPL)
Java

Coverage.py
Apache 2.0
nānati

Emma
Raihana Tūmatanui
Java

JaCoCo
Ko te Raihana Raraunga Porohita
Java

Hipopototanga
Mozilla
nānati

Toi
MIT
nānati

Jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mocha
MIT
JavaScript

Tuhinga
MIT
JavaScript

Kia mahara ko te nuinga o nga taputapu me nga anga kua whakahuahia i runga ake nei kua tuhia mo Java, Python me JavaScript, na te mea ko C ++ me C # nga reo hotaka whenua (ahakoa he puna tuwhera a GCC).

Inaianei kua whakatinanahia e koe nga taputapu kapinga whakamatautau, me rite te ahua o to pipeline DevOps ki te hoahoa i whakaatuhia i te timatanga o tenei akoranga.

Nga taahiraa taapiri

Tuhinga

Ka rite ki taku korero, ka taea e koe te manaaki i to kaimau i runga i te miihini mariko, i te tūmau ranei, engari ko nga ipu he otinga rongonui.

He aha nga ipu? Ko te whakamaarama poto ko te miihini mariko me nui te mahara o te punaha whakahaere, nui atu i te rahi o te tono, engari he iti noa nga whare pukapuka me nga whirihoranga hei whakahaere i te tono. Ko te tikanga, he nui tonu nga whakamahinga mo te miihini mariko, engari ko te ipu he otinga mama mo te manaaki i tetahi tono, tae atu ki te tūmau tono.

Ahakoa etahi atu whiringa ipu, ko te mea rongonui ko Docker me Kubernetes.

Docker: Apache 2.0
Kubernetes: Apache 2.0

Nga taputapu aunoatanga takawaenga

Ko ta maatau pipeline DevOps e aro nui ana ki te hanga tono mahi tahi me te whakatakotoranga, engari he maha atu ano nga mea ka taea me nga taputapu DevOps. Ko tetahi o enei ko te whakamahi i nga taputapu Infrastructure as Code (IaC), e mohiotia ana ko nga taputapu automation middleware. Ka awhina enei taputapu ki te whakauru aunoa, te whakahaere, me etahi atu mahi mo te middleware. Na, hei tauira, ka taea e te taputapu automation te tango i nga tono penei i te tūmau tono tukutuku, te papaunga raraunga, me te taputapu aroturuki me nga whirihoranga tika ka tukuna ki te tūmau tono.

Anei etahi taputapu automation middleware puna tuwhera:

Ka taea: GNU Public
SaltStack: Apache 2.0
Kaitao: Apache 2.0
Karetao: Apache, GPL ranei

Aratohu a te Kaimatai: Te Waihanga i tetahi Raina DevOps

Rapua nga korero mo te whiwhi i tetahi umanga e rapuhia ana mai i te timatanga, i te Taumata ranei mo nga pukenga me nga utu ma te tango i nga akoranga ipurangi utu mai i SkillFactory:

atu akoranga

Whakamahi

Source: will.com

Tāpiri i te kōrero