Agile at DevOps
Upang mas mahusay na maunawaan ang pagkakaiba sa pagitan ng dalawa, tingnan natin ang pre-Agile era.
Habang ang pareho ay ang mga pinaka-karaniwang terminolohiya na ginagamit sa pag-unlad ng software, hindi sila ang lahat ng parehong, ngunit hindi sila foes alinman.
Sa simula nang ang pag-unlad ng software ay isang medyo bagong termino at walang tinukoy na diskarte ay naroon upang kunin ang larangan ng pag-develop ng software. Kaya ang "Waterfall" na diskarte ay nangunguna na nagpakilala ng isang bagong pamamaraan na hinimok ng plano na sinundan ng sunud-sunod na proseso ng disenyo sa pag-unlad ng software.
Gayunpaman, sa teknolohiya din ay nagbago ang mga pangangailangan ng mga customer na nagpakita ng mga bagong hamon at ang diskarte ng talon ay hindi sapat upang gawin ang lahat ng mga proseso ng matimbang.
Ano ang Agile?
Ito ay kung saan ang mas sopistikadong "Agile" na diskarte ay dumating sa larawan na bumuo ng pakikipagtulungan sa pagitan ng mga koponan at sa mga end user, na nagpapahintulot sa kanila na pamahalaan ang progreso ng proyekto sa buong cycle ng pag-unlad.
Ginawa nito ang pag-aayos ng software ng isang mas maraming mas madali sa incremental diskarte na kung saan ay ang pangunahing ideya ng Agile diskarte sa unang lugar. Ito ay dinisenyo upang buwagin ang proyekto sa mga maliliit na module na nagpapahintulot sa mga developer na magtrabaho nang kahanay sa mga patuloy na feedbacks kasama ang proseso na garantiya ng isang makinis na daloy ng trabaho.
Pinapayagan ng nababaluktot na pamamaraan ang mga developer na tumugon sa mga pangangailangan ng mga kliyente sa buong ikot ng pag-unlad. Pagkatapos ay dumating ang "DevOps" na modelo na tulay ang puwang sa pagitan ng mga developer at mga operasyon ng koponan.
Ano ang DevOps?
Upang mapagtagumpayan ang mga pagkukulang sa modelo ng Agile tulad ng nawawalang mga deadline at mga layunin sa badyet, ang DevOps ay nagdudulot ng higit na kakayahang umangkop sa ibabaw ng Agile na diskarte.
Agile ay naging isang lifesaver para sa mga developer na nais ng isang mas umuulit na diskarte upang umangkop sa mabilis na pagbabago ng mga pangangailangan ng mga customer, ngunit Agile ay may mga pagkukulang din masyadong.
Ang mga karaniwang mga kakulangan sa modelo ng Agile ay kinabibilangan ng mga hindi katugma na mga bahagi ng software pagkatapos makumpleto, nawawalang mga deadline, at mga bagong tampok na paglabag sa mga lumang function.
Bukod dito, nagkaroon ng kakulangan ng koordinasyon sa pagitan ng pangkat ng pag-unlad at pagpapatakbo. Ito ay kung saan ang DevOps ay dumating sa larawan. Pinupuno nito ang agwat sa pagitan ng mga koponan ng mga nag-develop at operasyon, na nagpapahintulot sa kanila na makipagtulungan upang mapabuti ang dalas ng pag-deploy para sa mas mabilis at mas mahusay na mga resulta.
Ang modelo ng DevOps ay nagbibigay-daan sa tuloy-tuloy at mas mabilis na paghahatid ng software na minus ang mga pagkakumplikado.
Pagkakaiba sa pagitan ng Agile at DevOps
- Ang DevOps ay ang supling ng modelo ng Agile na gumagana sa kabila ng software team. Parehong ang mga methodologies umakma sa bawat isa para sa mas mabilis na produksyon at pinabilis na paghahatid, ngunit ginagawa nila ito nang ibang naiiba. Agile tumatagal ng isang incremental diskarte upang malutas ang mga kumplikadong mga gawain sa pamamagitan ng paghahati ng mga ito sa mas maliit na sub-gawain na tinatawag na modules. Ang DevOps, sa kabilang banda, ay isang pilosopiya ng pagpapatakbo na pinagsasama ang mga kasanayan sa kultura at mga kasangkapan upang makamit ang mas mabilis na paghahatid.
- Agile modelo ay batay sa Lean pag-iisip na emphasizes sa tuloy-tuloy na pag-ulit para sa incremental paghahatid. Ito ay pakikipagtulungan sa pagitan ng pangkat ng pag-unlad at mga end user. Ang DevOps ay isang kolektibong pakikipagtulungan sa pagitan ng pangkat ng pag-unlad at pagpapatakbo, kaya ang pangalan. Sa halip na magtrabaho lamang sa software, binibigyang diin nito ang mga serbisyo at software upang mapabilis ang proseso ng paghahatid.
- Agile ay isang modernong diskarte sa pag-unlad na naghihikayat sa pagbabago. Sa halip na isaalang-alang ang pag-unlad bilang isang kabuuan, nagpapalaganap ito ng mas maliit na mga pagbabago na maaaring o hindi maaaring humantong sa mas malaking pagbabago sa paglipas ng panahon. Sa kabaligtaran, ang DevOps ay isang kumbinasyon ng mga gawi sa kultura na nagpapataas sa kakayahan ng samahan upang maghatid ng mga serbisyo at mga application sa mas mabilis na bilis. Ang mga koponan ng pag-unlad at operasyon ay nagtutulungan bilang bahagi ng isang pangkat ng DevOps, sa halip na isang koponan ng Agile.
- Agile naniniwala sa maliit at maigsi; mas maliit ang koponan, mas mabilis ang maibibigay nila sa mas kaunting mga pagkakumplikado. Ang ideya ay upang manatili maliit at mabilis na gumagana. Ang DevOps, sa kabilang banda, ay naniniwala sa bilang na nangangahulugan na mas malaki ang mas mahusay. Maraming mga koponan ay nagtutulungan bilang isang koponan upang gumana sa iba't ibang mga teorya.
- Agile modelo ay isang pamamaraan na revolves sa paligid ng iba't-ibang mga pulong at impormal na mga pulong ay sa core ng Agile. Naniniwala ang agile sa patuloy na mga feedbacks at araw-araw na mga pulong ng koponan upang gumawa ng mga koponan ng pag-unlad na mas produktibo at mahusay. Pinapayagan nito ang koponan na pangasiwaan ang kanilang pag-unlad at maging pamilyar sa mga potensyal na hamon at iba pang mga isyu upang matiyak ang patuloy na daloy ng trabaho na may mas kaunting mga pagkakumplikado. Ang DevOps, sa kabilang banda, ay sumusunod sa isang modernong dokumentasyon na diskarte upang makipag-ugnayan sa lahat ng mga may-katuturang mga koponan, sa halip na pagsasagawa ng mga araw-araw na pagpupulong.
- Ang pag-i-automate ay magkasingkahulugan sa pamamaraan ng DevOps dahil ang ideya ay upang ma-maximize ang kahusayan at mabawasan ang pagkagambala, pagdating sa pag-deploy ng software. Agile ay din ng isang modernong diskarte sa software development ngunit hindi ito anticipates automation. Naniniwala ang DevOps sa pinakamataas na produktibo at pagiging maaasahan upang matiyak ang naaangkop na deployment.
Maliksi kumpara sa DevOps: Tsart ng Paghahambing
Buod ng Agile Vs. DevOps
Ang masiglang modelo ay nagbibigay diin sa pagpapaunlad ng software, samantalang ang DevOps ay nakatuon sa parehong pag-unlad at pag-deploy ng software sa pinaka maaasahan at pinakamabilis na paraan na posible. Agile ay batay sa Lean Thinking na naghihikayat sa pag-aalis ng mga di-halaga na idinagdag na gawain upang maghatid ng mga proyekto ng software. Gayunpaman, ang Agile ay may mga kakulangan din nito, na sa kalaunan ay nagbigay ng DevOps, na ang mga supling ng pag-unlad ng Agile software. Ang mga pagsulong sa teknolohiya at patuloy na pagpapalit ng mga pangangailangan ng mga mamimili ay nakalantad sa pangangailangan para sa isang mas naaangkop na diskarte na mapabilis ang proseso ng paghahatid ng software. Pareho silang mga pamamaraan sa pag-unlad ng software na may pangkaraniwang pangitain; iyon ay upang hikayatin ang mga koponan na makipagtulungan at gumawa ng mga desisyon na magkakasama sa isang paraan upang makinabang mula sa kanilang pinagsamang mga kasanayan.