Upangiri wa Dummies: Kumanga Maunyolo a DevOps okhala ndi Zida Zotseguka
Kumanga unyolo wanu woyamba wa DevOps mumayendedwe asanu kwa oyamba kumene.
DevOps yakhala njira yochepetsera pang'onopang'ono, yosalumikizidwa komanso zovuta zina zachitukuko. Koma muyenera kudziwa pang'ono mu DevOps. Ifotokozanso malingaliro monga unyolo wa DevOps ndi momwe mungapangire imodzi mwamasitepe asanu. Ichi si chitsogozo chathunthu, koma "nsomba" yokha yomwe ingakulitsidwe. Tiyeni tiyambe ndi mbiri.
Chiyambi changa ku DevOps
Ndinkagwira ntchito ndi mitambo ku Citi Group ndikupanga pulogalamu ya intaneti ya IaaS kuti ndiyang'anire zomangamanga zamtambo za Citi, koma ndakhala ndikukhudzidwa ndi momwe mungakwaniritsire chitukuko cha chitukuko ndikusintha chikhalidwe pakati pa omanga. Greg Lavender, CTO wathu wa Cloud Architecture and Infrastructure, adandilimbikitsa bukuli. Ntchito "Phoenix". Imalongosola mfundo za DevOps mokongola ndipo imawerengedwa ngati buku.
Kodi Amazon, Google ndi Netflix amatha bwanji kutulutsa zochuluka chonchi? Ndipo ndizosavuta: adapeza momwe angapangire unyolo wa DevOps pafupifupi wangwiro.
Sizinali choncho ku Citi mpaka titasamukira ku DevOps. Ndiye gulu langa linali ndi malo osiyanasiyana, koma tinapereka ku seva yachitukuko pamanja. Madivelopa onse anali ndi mwayi wopeza seva imodzi yokha yachitukuko kutengera IBM WebSphere Application Server Community Edition. Ndi kuyesa panthawi imodzimodziyo, seva "inagwa", ndipo nthawi iliyonse tinkayenera "kukambirana mopweteka" pakati pathu. Tidakhalanso ndi ma code osakwanira ndi mayeso, njira yobweretsera pamanja yowononga nthawi, ndipo palibe njira yowonera kutumizidwa kwa ma code mothandizidwa ndi ntchito ina kapena zofunikira za kasitomala.
Zinali zoonekeratu kuti chinachake chiyenera kuchitika mwamsanga, ndipo ndinapeza mnzanga wamaganizo ofanana. Tinaganiza zopanga unyolo woyamba wa DevOps palimodzi - adakhazikitsa makina enieni ndi seva ya Tomcat, ndipo ndidasamalira Jenkins, kuphatikiza ndi Atlassian Jira ndi BitBucket, komanso kuphimba ma code ndi mayeso. Ntchitoyi idayenda bwino: tidapanga makina achitukuko, tidapeza nthawi yopitilira 100% pa seva yachitukuko, tidatha kuyang'anira ndikuwongolera kufalikira kwa ma code ndi mayeso, ndipo nthambi ya Git imatha kumangirizidwa ku kutumiza ndi nkhani ya Jira. Ndipo pafupifupi zida zonse zomwe tidagwiritsa ntchito pomanga unyolo wa DevOps zinali zotseguka.
M'malo mwake, unyolowo unali wosavuta, chifukwa sitinagwiritse ntchito masinthidwe apamwamba pogwiritsa ntchito Jenkins kapena Ansible. Koma tinapambana. Mwina izi ndi zotsatira za mfundoyi Pareto (aka lamulo la 80/20).
Kufotokozera Mwachidule za DevOps ndi CI/CD Chain
DevOps ili ndi matanthauzidwe osiyanasiyana. DevOps, monga Agile, imaphatikizapo maphunziro osiyanasiyana. Koma ambiri adzagwirizana ndi tanthauzo ili: DevOps ndi njira, kapena kayendetsedwe ka moyo, kakulidwe ka mapulogalamu, mfundo yaikulu yomwe ndi kupanga chikhalidwe chomwe omanga ndi antchito ena ali "pamtunda womwewo", ntchito yamanja ndi yodzichitira, aliyense amachita zomwe ali bwino, kuchuluka kwa zobereka kumawonjezeka, zokolola za ntchito zimawonjezeka, kusinthasintha kumawonjezeka.
Ngakhale zida zokha sizokwanira kupanga malo a DevOps, ndizofunikira. Chofunikira kwambiri mwa izi ndikuphatikizana kosalekeza komanso kutumiza mosalekeza (CI/CD). Pali magawo osiyanasiyana mu unyolo pa chilengedwe chilichonse (monga DEV (chitukuko), INT (kuphatikiza), TST (kuyesa), QA (chitsimikizo chamtundu), UAT (kuyesa kuvomereza kwa ogwiritsa ntchito), STG (kukonzekera), PROD (kugwiritsa ntchito)) , ntchito zamanja zimangochitika zokha, opanga amatha kupanga ma code abwino, kuwapereka, ndipo amatha kumanganso mosavuta.
Choyamba, muyenera CI/CD chida. Jenkins ndi chida cha MIT chokhala ndi chilolezo, chotseguka cha CI/CD cholembedwa ku Java chomwe chinatchuka ndi kayendetsedwe ka DevOps ndipo chakhala muyezo wa CICD.
Kodi Jenkins ndi chiyani? Tangoganizani kuti muli ndi gulu lamatsenga lowongolera mautumiki osiyanasiyana ndi zida. Payokha, chida cha CI / CD monga Jenkins ndichabechabe, koma ndi zida ndi mautumiki osiyanasiyana, chimakhala champhamvu kwambiri.
Kuphatikiza pa Jenkins, pali zida zina zambiri zotseguka, sankhani chilichonse.
Izi ndi momwe machitidwe a DevOps amawonekera ndi chida cha CI/CD
Muli ndi chida cha CI/CD mu localhost, koma palibe zambiri zoti muchite. Tiyeni tipitirire ku sitepe yotsatira.
Gawo 2: Kusintha
Njira yabwino kwambiri (komanso yosavuta) yoyesera matsenga a chida cha CI/CD ndikuchiphatikiza ndi chida chowongolera magwero (SCM). Chifukwa chiyani mukufunika kuwongolera mtundu? Tiyerekeze kuti mukufunsira. Mumalemba mu Java, Python, C++, Go, Ruby, JavaScript, kapena chilankhulo china chilichonse chomwe ndi ngolo ndi ngolo yaying'ono. Zomwe mumalemba zimatchedwa source code. Poyamba, makamaka ngati mukugwira ntchito nokha, mutha kusunga chilichonse ku bukhu lapafupi. Koma pamene polojekiti ikukula ndipo anthu ambiri amalowa nawo, mukufunikira njira yogawana zosintha zamakhodi koma pewani mikangano pophatikiza kusintha. Ndipo muyeneranso kubwezeretsanso mitundu yam'mbuyomu osagwiritsa ntchito zosunga zobwezeretsera ndikugwiritsa ntchito njira ya copy-paste yamafayilo a code.
Ndipo kuno popanda SCM kulikonse. SCM imasunga kachidindo m'malo osungirako zinthu, imayendetsa mitundu yake, ndikuyigwirizanitsa pakati pa omanga.
Pali zida zambiri za SCM, koma Git yakhala yoyenera kukhala muyezo wa de facto. Ndikukulangizani kuti mugwiritse ntchito, koma pali njira zina.
Izi ndi zomwe mapaipi a DevOps amawonekera atawonjezera SCM.
Chida cha CI/CD chimatha kutsitsa ndikutsitsa ma code source ndi mgwirizano wamagulu. Osayipa kwenikweni? Koma tsopano momwe mungapangire ntchito yogwira ntchito kuchokera ku izi, zokondedwa ndi mabiliyoni a ogwiritsa ntchito?
Chifukwa chake, muli ndi fayilo yosungidwa yomwe imatha kuchitidwa kapena kutulutsidwa. Kuti pulogalamuyo ikhale yothandiza, iyenera kukhala ndi mtundu wina wa ntchito kapena mawonekedwe, koma muyenera kuyiyika penapake.
Pulogalamu yapaintaneti imatha kuchitidwa pa seva ya pulogalamu yapaintaneti. Seva yogwiritsira ntchito imapereka malo omwe mungapangire malingaliro, kupereka zolumikizira, ndikuwonetsa mautumiki apaintaneti pa socket. Mufunika seva ya HTTP ndi malo ena ochepa (makina enieni, mwachitsanzo) kuti muyike seva yogwiritsira ntchito. Pakadali pano, tiyeni tiyerekeze kuti mukulimbana ndi zonsezi pamene mukupita (ngakhale ndilankhula za zotengera pansipa).
Pali ma seva angapo otseguka a intaneti.
Tili kale ndi unyolo wa DevOps womwe ukugwira ntchito. Ntchito yabwino!
M'malo mwake, mutha kuyima apa, ndiye mutha kuzigwira nokha, koma ndikofunikira kuyankhula za mtundu wa code.
Kuyesa kumagawidwa m'magawo awiri: zoyeserera zolembera ndi kuyesa mayeso, ndi zida zokhala ndi malingaliro owongolera ma code.
Mayeso Frameworks
Zida zokhala ndi malangizo abwino
Zambiri mwa zida izi ndi zomangira zimalembedwera Java, Python, ndi JavaScript chifukwa C ++ ndi C # ndi eni ake (ngakhale GCC ndi gwero lotseguka).
Tagwiritsa ntchito zida zoyeserera, ndipo tsopano mapaipi a DevOps akuyenera kuwoneka ngati chithunzi choyambirira cha phunziroli.
Njira Zowonjezera
Zotengera
Monga ndidanenera kale, seva yofunsira imatha kuchitidwa pamakina kapena seva, koma zotengera ndizodziwika kwambiri.
Kontena ndi chiyani? Mwachidule, mu makina enieni, makina ogwiritsira ntchito nthawi zambiri amatenga malo ochulukirapo kuposa momwe amagwiritsira ntchito, ndipo chidebe nthawi zambiri chimakwanira ndi malaibulale angapo ndi kasinthidwe. Nthawi zina, makina enieni ndi ofunikira, koma chidebecho chimatha kutengera pulogalamuyo pamodzi ndi seva popanda mtengo wowonjezera.
Iyi ndi nsonga chabe ya madzi oundana. Unyolo wa DevOps ukhoza kuchita zambiri. Yambani ndi chida cha CI/CD ndikuwona china chomwe mungasinthe kuti ntchito yanu ikhale yosavuta. Osayiwala za zida zoyankhulirana zotseguka kuti mugwirizane bwino.
Nawa zolemba zina zabwino za DevOps kwa oyamba kumene: