DevOps tau dhau los ua tus qauv kev daws teeb meem rau kev txhim kho cov txheej txheem tsim kho software qeeb, tsis sib xws lossis tawg. Qhov teeb meem yog tias koj yog tus tshiab rau DevOps thiab tsis paub yuav pib qhov twg, koj yuav tsis nkag siab txog cov tswv yim no. Kab lus no yuav tham txog lub ntsiab lus ntawm DevOps pipeline thiab tseem yuav muab tsib-kauj ruam cov lus qhia rau kev tsim ib qho. Txawm hais tias qhov kev qhia no tsis yog tag nrho, nws yuav tsum muab lub hauv paus rau koj pib koj txoj kev taug thiab nthuav koj txoj kev paub yav tom ntej. Tab sis cia peb pib nrog keeb kwm.
Kuv DevOps Taug Kev
Yav dhau los kuv tau ua haujlwm ntawm Citi Group huab pab pawg tsim kho Infrastructure-as-a-Service (IaaS) lub vev xaib los tswj Citi cov huab vaj tse, tab sis kuv ib txwm xav paub yuav ua li cas ua kom txoj kev loj hlob zoo dua thiab coj cov kev hloov pauv kev coj noj coj ua zoo rau lub pab neeg txhim kho. Kuv pom cov lus teb hauv ib phau ntawv pom zoo los ntawm Greg Lavender, CTO ntawm Huab Architecture thiab Infrastructure ntawm Citi. Phau ntawv hu ua The Phoenix Project (Phoenix Project), thiab nws piav qhia cov ntsiab lus ntawm DevOps, tab sis nws nyeem zoo li ib qho tshiab.
Cov lus nyob tom qab ntawm phau ntawv qhia tias ntau npaum li cas cov tuam txhab sib txawv siv lawv cov tshuab hauv qhov chaw tso tawm:
Amazon, Google thiab Netflix zaus txawm ua tau li cas? Qhov no yog vim tias cov tuam txhab no tau txheeb xyuas yuav ua li cas los tsim ib lub raj xa dej DevOps yuav luag zoo meej.
Peb nyob deb ntawm qhov no mus txog thaum peb siv DevOps ntawm Citi. Rov qab thaum ntawd, kuv pab neeg muaj ib puag ncig sib txawv, tab sis kev xa mus rau kev txhim kho server yog phau ntawv qhia tag nrho. Txhua tus neeg tsim khoom tau nkag mus rau tsuas yog ib qho kev txhim kho server raws li IBM WebSphere Application Server Community Edition. Qhov teeb meem yog tias tus neeg rau zaub mov yuav kaw thaum twg ntau tus neeg siv sim siv tib lub sijhawm, yog li cov neeg tsim khoom yuav tsum sib txuas lus lawv cov kev xav rau ib leeg, uas yog qhov mob heev. Tsis tas li ntawd, muaj teeb meem nrog cov lej ntsuas qis qis, cov txheej txheem ntawm kev xa tawm cov txheej txheem cumbersome, thiab tsis muaj peev xwm taug qab kev xa tawm ntawm cov lej cuam tshuam nrog cov haujlwm tshwj xeeb lossis cov neeg siv dab neeg.
Kuv pom tau hais tias ib yam dab tsi yuav tsum tau ua thiab nrhiav tau ib tug zoo li-minded colleague. Peb tau txiav txim siab los koom tes hauv kev tsim qhov pib DevOps raj xa dej - nws teeb tsa Tomcat virtual tshuab thiab daim ntawv thov server thaum kuv ua haujlwm ntawm Jenkins, kev koom ua ke Atlassian Jira thiab BitBucket, thiab ua haujlwm ntawm cov lej xeem. Qhov kev ua haujlwm sab no tau ua tiav zoo: peb yuav luag tag nrho cov txheej txheem ntau lawm, ua tiav yuav luag 100% uptime ntawm peb cov neeg rau zaub mov kev loj hlob, muab kev taug qab thiab txhim kho kev sim ntawm cov cai, thiab ntxiv lub peev xwm los txuas Git ceg rau Jira teeb meem lossis kev xa tawm. Feem ntau ntawm cov cuab yeej peb siv los tsim peb lub raj xa dej DevOps yog qhib qhov chaw.
Tam sim no kuv nkag siab qhov yooj yim npaum li cas peb cov raj xa dej DevOps yog: peb tsis tau siv txuas ntxiv xws li Jenkins cov ntaub ntawv lossis Ansible. Txawm li cas los xij, cov kav dej yooj yim no ua haujlwm tau zoo, tej zaum vim yog txoj cai Pareto (tseem hu ua txoj cai 80/20).
Qhia luv luv rau DevOps thiab CI/CD Pipeline
Yog tias koj nug ntau tus neeg, "DevOps yog dab tsi?", koj yuav tau txais ntau cov lus teb sib txawv. DevOps, zoo li Agile, tau hloov zuj zus mus rau ntau qhov kev qhuab qhia sib txawv, tab sis cov neeg feem coob yuav pom zoo rau ob peb yam: DevOps yog kev txhim kho software lossis software txhim kho lub neej voj voog (SDLC) uas nws lub ntsiab lus tseem ceeb yog hloov cov kab lis kev cai uas cov tsim tawm thiab tsis yog. developers muaj nyob rau hauv ib puag ncig uas:
Cov haujlwm uas yav tas los ua manually tau ua haujlwm;
Txhua tus ua qhov lawv ua tau zoo tshaj plaws;
Tus naj npawb ntawm kev siv nyob rau hauv ib lub sij hawm ntawm lub sij hawm nce; Kev nce ntxiv;
Ntxiv kev txhim kho yooj.
Thaum muaj cov cuab yeej software zoo tsis yog qhov koj xav tau los tsim ib puag ncig DevOps, qee cov cuab yeej tseem ceeb. Ib qho cuab yeej tseem ceeb yog kev sib koom ua ke thiab kev xa mus tas li (CI / CD). Nyob rau hauv cov kav dej no, ib puag ncig muaj ntau theem (xws li DEV, INT, TST, QA, UAT, STG, PROD), ntau qhov kev ua haujlwm yog automated, thiab cov neeg tsim khoom tuaj yeem sau cov lej zoo, ua tiav kev txhim kho agility, thiab kev xa tawm siab.
Kab lus no piav qhia txog tsib kauj ruam los tsim kom muaj DevOps cov raj xa dej zoo li ib qho uas pom hauv daim duab hauv qab no siv cov cuab yeej qhib.
Kauj Ruam 1: Txoj Kev CI/CD
Thawj qhov koj xav tau yog lub cuab yeej CI / CD. Jenkins, lub cuab yeej qhib raws li Java thiab tau tso cai raws li MIT daim ntawv tso cai, yog lub cuab yeej uas nrov DevOps thiab tau dhau los ua tus qauv de facto.
Yog li Jenkins yog dab tsi? Xav tias nws yog ib yam ntawm tej yam yees siv universal tswj chaw taws teeb uas muaj peev xwm tham nrog thiab npaj ntau yam kev pab cuam thiab cov cuab yeej. Ntawm nws tus kheej, lub cuab yeej CI / CD zoo li Jenkins tsis muaj txiaj ntsig, tab sis nws muaj zog dua vim nws txuas rau cov cuab yeej sib txawv thiab cov kev pabcuam.
Jenkins tsuas yog ib qho ntawm ntau qhov qhib CI / CD cov cuab yeej uas koj tuaj yeem siv los tsim koj lub raj xa dej DevOps.
Jenkins: Creative Commons thiab MIT
Travis CI: MIT
CruiseControl: BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Cabie: GNU
Nov yog dab tsi DevOps cov txheej txheem zoo li nrog CI / CD cuab yeej:
Koj muaj lub cuab yeej CI / CD khiav ntawm koj lub localhost, tab sis tsis muaj ntau yam koj tuaj yeem ua tam sim no. Cia peb mus rau theem tom ntej ntawm DevOps taug kev.
Kauj ruam 2: Tswj Qhov Chaw Tswj Systems
Qhov zoo tshaj plaws (thiab tej zaum yooj yim tshaj) txoj hauv kev los xyuas kom meej tias koj lub cuab yeej CI / CD tuaj yeem ua nws cov khawv koob yog kev koom ua ke nrog cov cai tswj hwm (SCM) cov cuab yeej. Vim li cas koj thiaj xav tau qhov chaw tswj? Wb hais tias koj tab tom tsim ib daim ntawv thov. Thaum twg koj tsim ib daim ntawv thov, koj tab tom programming, thiab nws tsis muaj teeb meem txawm tias koj siv Java, Python, C ++, Mus, Ruby, JavaScript, lossis ib qho ntawm ntau lab ntawm cov lus programming. Tus lej koj sau yog hu ua qhov chaws. Thaum pib, tshwj xeeb tshaj yog thaum koj ua haujlwm ib leeg, nws yog qhov zoo rau muab txhua yam rau hauv cov npe hauv zos. Tab sis raws li qhov project loj dua thiab koj caw lwm tus neeg los koom tes, koj xav tau ib txoj hauv kev los tiv thaiv kev tsis sib haum xeeb thaum sib koom kev hloov kho kom zoo. Koj kuj xav tau ib txoj hauv kev los kho cov ntawv dhau los, vim tias tsim cov thaub qab thiab luam / muab tso rau hauv lawv tau dhau los lawm. Koj (thiab koj cov phooj ywg) xav tau qee yam zoo dua.
Git: GPLv2 thiab LGPL v2.1
Subversion: Apache 2.0
Concurrent Versions System (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+
Qhov no yog dab tsi DevOps pipeline zoo li nrog qhov sib ntxiv ntawm cov cai tswj hwm.
Ib lub cuab yeej CI/CD tuaj yeem ua haujlwm rau cov txheej txheem ntawm kev tshuaj xyuas, qhov chaw tau txais cov cai, thiab kev sib koom tes ntawm cov tswv cuab. Tsis phem? Tab sis koj yuav ua li cas hloov nws mus rau hauv daim ntawv thov ua haujlwm kom ntau txhiab tus neeg tuaj yeem siv thiab txaus siab rau nws?
Kauj Ruam 3: Tsim Cov Khoom Siv Automation
Zoo heev! Koj tuaj yeem tshuaj xyuas cov cai thiab hloov pauv rau kev tswj hwm qhov chaw, thiab caw koj cov phooj ywg los koom tes hauv kev txhim kho. Tab sis koj tseem tsis tau tsim ib daim ntawv thov. Txhawm rau ua ib daim ntawv thov web, nws yuav tsum tau muab tso ua ke thiab ntim rau hauv ib qho kev xa tawm batch los yog khiav ua cov ntaub ntawv executable. (Nco ntsoov tias cov lus txhais lus xws li JavaScript lossis PHP tsis tas yuav muab tso ua ke).
Siv cov cuab yeej tsim automation. Txawm hais tias tsim cov cuab yeej automation uas koj txiav txim siab siv, lawv txhua tus muaj lub hom phiaj tib yam: tsim cov cai hauv qee hom ntawv uas xav tau thiab ua kom lub luag haujlwm ntawm kev tu, sau, sim, thiab xa mus rau ib puag ncig tshwj xeeb. Tsim cov cuab yeej yuav sib txawv nyob ntawm koj cov lus programming, tab sis ntawm no yog qee qhov kev xaiv qhib.
Lub npe
Daim ntawv tso cai
Programming lus
Maven
Apache 2.0
Java
Ntsaum
Apache 2.0
Java
Khub
Apache 2.0
Java
Npauj Npaim
Apache 2.0
Java
ua
GNU
N / A
Ntxhoo
MIT
JavaScript
Gulp
MIT
JavaScript
Tus tsim
Apache
Ruby
Lub ncuav
MIT
Ruby
AAP
GNU
Nab hab sej
SCons
MIT
Nab hab sej
BitBake
GPLv2
Nab hab sej
Ncuav mog qab zib
MIT
C#
ASDF
Expat (MIT)
LISP
Cabal
BSD
Haskell
Zoo heev! Koj tuaj yeem muab cov cuab yeej tsim cov cuab yeej teeb tsa rau hauv koj qhov kev tswj hwm qhov system thiab cia koj cov cuab yeej CI / CD tso txhua yam ua ke.
Txhua yam zoo, puas yog? Tab sis qhov twg yuav xa koj daim ntawv thov?
Kauj ruam 4: Web Application Server
Txog tam sim no, koj muaj cov ntaub ntawv ntim uas tuaj yeem ua tiav lossis nruab tau. Rau txhua daim ntawv thov kom muaj txiaj ntsig zoo, nws yuav tsum muab qee yam kev pabcuam lossis kev sib txuas, tab sis koj xav tau lub thawv los tuav koj daim ntawv thov.
Lub web thov server tsuas yog lub thawv zoo li no xwb. Tus neeg rau zaub mov muab ib puag ncig uas lub logic ntawm lub pob raug xa tawm tuaj yeem txhais tau. Tus neeg rau zaub mov tseem muab kev sib txuas thiab muab cov kev pabcuam hauv lub vev xaib los ntawm kev nthuav tawm cov qhov (socket) rau lub ntiaj teb sab nraud. Koj xav tau HTTP server, nrog rau qee qhov chaw (zoo li lub tshuab virtual) los nruab nws. Txog tam sim no, cia peb xav tias koj yuav kawm ntxiv txog qhov no (txawm tias kuv yuav npog cov ntim hauv qab).
Muaj ntau qhov chaw qhib web thov servers.
Lub npe
Daim ntawv tso cai
Programming lus
Tomcat
Apache 2.0
Java
Jetty
Apache 2.0
Java
WildFly
GNU Lesser Public
Java
Cawv iav
CDDL & GNU Less Public
Java
Django
3-Clause BSD
Nab hab sej
cua daj cua dub
Apache 2.0
Nab hab sej
Phom nyoom
MIT
Nab hab sej
Nab hab sej
MIT
Nab hab sej
Ntsia
MIT
Ruby
node.js
MIT
Javascript
Koj lub raj xa dej DevOps yuav luag npaj siv. Ua haujlwm zoo!
Thaum koj tuaj yeem nres qhov ntawd thiab tswj kev sib koom ua ke koj tus kheej, cov lej zoo yog qhov tseem ceeb rau tus tsim tawm app txhawj txog.
Kauj Ruam 5: Kev Xeem Kev Pabcuam Code
Kev siv cov kev ntsuam xyuas tuaj yeem yog lwm qhov yuav tsum tau ua, tab sis cov neeg tsim khoom yuav tsum ntes cov kab laum hauv daim ntawv thov ntxov thiab txhim kho qhov zoo ntawm cov cai kom ntseeg tau tias cov neeg siv kawg txaus siab. Luckily, muaj ntau cov cuab yeej qhib rau kev sim koj cov cai thiab ua cov lus pom zoo los txhim kho nws qhov zoo. Dab tsi yog qhov zoo dua yog tias cov cuab yeej CI / CD feem ntau tuaj yeem txuas rau cov cuab yeej no thiab ua kom cov txheej txheem automate.
Nco ntsoov tias feem ntau ntawm cov cuab yeej thiab lub moj khaum uas tau hais los saum no yog sau rau Java, Python thiab JavaScript, txij li C ++ thiab C# yog hom lus programming (txawm tias GCC yog qhov qhib).
Tam sim no koj tau siv cov cuab yeej ntsuas ntsuas, koj lub raj xa dej DevOps yuav tsum zoo ib yam li daim duab qhia thaum pib ntawm qhov kev qhia no.
Cov kauj ruam ntxiv
Ntim
Raws li kuv tau hais, koj tuaj yeem tuav koj cov neeg rau zaub mov ntawm lub tshuab virtual lossis lub server, tab sis cov thawv ntim yog cov tshuaj nrov.
Cov thawv ntim khoom yog dab tsi? Cov lus piav qhia luv luv yog tias lub tshuab virtual xav tau ntau qhov kev ua haujlwm nco, tshaj qhov loj ntawm daim ntawv thov, thaum lub thawv tsuas xav tau ob peb lub tsev qiv ntawv thiab teeb tsa los khiav daim ntawv thov. Pom tseeb, tseem muaj kev siv tseem ceeb rau lub tshuab virtual, tab sis lub thawv yog lub teeb yuag rau hosting daim ntawv thov, suav nrog daim ntawv thov server.
Ansible: GNU Public
SaltStack: Apache 2.0
Kws ua zaub mov: Apache 2.0
Puppet: Apache lossis GPL
Tshawb nrhiav cov ntsiab lus ntawm yuav ua li cas thiaj li tau txais txoj haujlwm nrhiav haujlwm los ntawm kos lossis Qib Up raws li kev txawj thiab nyiaj hli los ntawm kev kawm online them nyiaj los ntawm SkillFactory: