Video: Microservices Full Course - Learn Microservices in 4 Hours | Microservices Tutorial | Edureka (Nobyembre 2024)
Ang landscape ng software ng enterprise ay littered na may mga teknolohiya ng buzzy. Nasulat namin ang tungkol sa maraming mga ito, maging blockchain, mababang pag-unlad ng code, o iba pang mga umuusbong na uso na nagbabago sa paraan ng pagtatrabaho namin. Ang isang bagong buzzword na maaaring hindi mo pa naririnig noon ay "microservice."
Iyon ay sa pamamagitan ng disenyo. Ang Microservices ay isang kakaibang paraan sa software ng arkitektura batay sa isang hanay ng mga magkasanib na mga modular na sangkap kaysa sa tradisyonal na ideya ng isang "monolith" - isang application na binubuo ng isang patuloy na lumalagong bundok ng code. Ang mga apps na nakabase sa Microservice ay hindi mukhang ibang naiiba sa panig ng interface ng gumagamit (UI), maging sa isang kumplikadong data center app o isang web o mobile app na nai-host sa nasusukat na imprastrakturang ulap.
Ang dahilan ng mga negosyo ay dapat alalahanin ang tungkol sa microservice ay na, sa likod ng mga eksena, makakatulong ang arkitektura sa iyong pag-unlad at ang mga koponan ng IT ay gumana at magbago nang mas mabilis, pamahalaan ang imprastraktura, at bawasan ang gastos at pagiging kumplikado ng pagdaragdag ng mga bagong tampok at pag-andar sa isang app. Al Hilwa, Director Director ng Application Development Software Research sa IDC, ipinaliwanag kung paano niya itatampok ang mga microservice sa isang exec habang isinasaalang-alang ang mga hamon sa kultura at tech.
"Kapag nagtatayo ng mga bagong sistema, marahil ang pangunahing punto ay upang makilala na ang isang solong microservice ay dapat itayo ng isang maliit na koponan, " sabi ni Hilwa. "Pangalawa, ang isang pagpapaubaya ng pagkakaiba-iba sa mga wika ng programming at mga daloy ng daloy ng developer ay madalas na ipinahiwatig ng independyenteng kalikasan ng isang pangkalahatang kultura ng microservice. Ang pangunahing pitch sa isang exec ay ang pagbuo ng software na dumadagdag gamit ang mga maliliit na koponan, sa bawat gusali ng isang magkakaugnay na module na may nai-publish na interface. Ang kalamangan ay ang independiyenteng mga module ay maaaring umunlad sa mas mabilis na bilis nang nakapag-iisa hangga't ang nai-publish na mga API ay pinamamahalaan sa isang maayos na paraan. "
Ano ang Talagang Microservice?
Sinulat ni Hilwa ang isang ulat ng 2015 IDC na pinamagatang, "Ang Pag-usbong ng Microservice bilang isang Bagong Diskarte sa Arkitektura sa Pagbuo ng mga Bagong Software System." Sa ulat, tinukoy niya ang mga microservice bilang isang arkitektura ng butil ng software na kung saan ang mga bahagi ng app ay dinisenyo at umusbong nang nakapag-iisa upang matugunan ang mga iniaatas na tinukoy ng API (nangangahulugang, nakatali pabalik sa app bilang isang buo). Ang microservice ay hindi umiiral sa isang vacuum, bagaman. Ang isang bagong arkitektura ay nangangailangan ng malakas na suporta sa organisasyon at isang paglipat sa kultura ng IT.
Ang Microservices ay hindi din tinukoy ng anumang isang tiyak na teknolohiya ngunit bilang ebolusyon ng matagal na konsepto ng serbisyo oriented arkitektura (SOA) na pinalaki ng pagdating ng mga lalagyan at ang pagtaas ng automation sa pamamagitan ng mga diskarte sa pag-unlad tulad ng patuloy na paghahatid (CD) at patuloy na pagsasama (CI).
"Ang mga organisasyon na gumagamit ng mga microservice ngayon ay karaniwang hinikayat ng pagnanais para sa isang mas mabilis na tulin ng ebolusyon ng serbisyo, " sabi ni Hilwa. "Kaya, sa karamihan ng mga kaso, ang microservice ay gumagamit ng CI / CD automation sa isang mahusay na degree. Gayunpaman, ang lakad ng aktwal na pag-deploy ay maaaring magkakaiba sa pagitan ng mga serbisyo. Sa palagay ko ang susi ay upang tingnan ang panloob na kultura at maging siguraduhin na handa kang magparaya sa higit na desentralisasyon at pagkakaiba-iba sa stack ng teknolohiya. "
Sa pamamagitan ng "internal culture" ang Hilwa ay higit na tumutukoy sa DevOps, isang pilosopiya na pinagsasama ang pag-unlad ng software, operasyon ng IT, at katiyakan ng kalidad (QA) sa isang solong, nagtutulungan na daloy ng trabaho. Ang startup ng software ng DevOps na HashiCorp at ang mga tagapagtatag nito ay matagal nang naging mga tagataguyod ng microservices. Ang kumpanya, na kamakailan ay nakakuha ng isang $ 24 milyong pag-ikot ng pagpopondo ng Series B, binibilang ang mga kumpanya tulad ng Cisco, DigitalOcean, Mozilla, at Stripe kasama ng mga bukas na mapagkukunan nito at mga customer ng enterprise.
Ang mga microservice ay pangunahing sa kung paano lumapit ang HashiCorp sa pagpapaunlad ng imprastruktura ng DevOps at mga workflows ng app sa buong sikat na open-source tool at lumalagong suite ng produkto ng negosyo. Si Armon Dadgar, CTO at co-founder ng HashiCorp, sinira ang pagkakaiba sa pagitan ng mga monoliths at microservice sa pamamagitan ng paggamit ng isang simpleng pagkakatulad: ang Amazon at eBay.
"Isipin ang tungkol sa Amazon at eBay bilang isang solong application. Mula sa pananaw ng end end, mukhang pareho sila ngunit, sa likuran ng mga eksena, ang mga kumpanya ay sumang-ayon sa mga diskarte sa kung paano nila binuo at nai-archive ang kanilang mga aplikasyon, " sabi ni Dadgar. "Ang Amazon mula sa simula ay isang bundle ng mga microservice; kumikilos ito bilang isang solong app. Ngunit kung kukuha ka ng paghahanap, katalogo ng produkto, shopping cart, invoice, daloy ng order, at hatiin ang mga pag-andar na ito, ang dalawang aplikasyon ay tumatakbo sa iba't ibang mga makina. "
Ang pagkakatulad ng Amazon ay umaabot din sa kung paano nakaayos ang Amazon mismo. Ipinaliwanag ni Dadgar ang mga diskarte sa teknolohiya tulad ng microservice bilang mga tool upang suportahan ang mas malaking paggalaw ng proseso patungo sa DevOps. Gumagawa ang "Two Pizza Rule" ni Jeff Bezos upang sa pagitan lamang ng lima at walong tao ang nasa anumang naibigay na koponan sa Amazon. Kung ang koponan ay makakakuha ng mas malaki, pagkatapos ay hatiin ito sa dalawa.
Ang hierarchy ng organisasyon ng Amazon ay nagsisimula sa pagma-map sa kung ano ang inilarawan ni Dadgar bilang isang "agnas ng pag-andar." Hiwalay sa parehong isang samahan at isang modular na antas ng arkitektura, ang bawat koponan pagkatapos ay may kakayahang makabuo at mag-eksperimento nang mas malaya, nang hindi kinakailangang mag-coordinate sa bawat pagbabago - habang gumagana pa rin bilang bahagi ng isang solong cohesive app.
"kinuha ng eBay ang monolitikong diskarte; itinayo nila ang lahat ng eBay bilang isang haba, 50-milyong linya ng aplikasyon ng code, " sabi ni Dadgar. "Ang diskarte sa microservices ay mas masakit sa simula dahil ang mga problema ng modularity at interoperability ay ang mga hindi umiiral sa isang monolith. Ngunit ang mga bagay ay nagsisimula nang masira kapag ang app ay lumalaki nang malaki. Sa isang monolith, walang pagkabulok.
"Mag-isip tungkol sa daan-daang o libu-libong mga developer na nakikipagtulungan sa isang solong codebase at sinusubukang mag-coordinate. Ang isang QA team na nagdaragdag ng pag-andar sa isang panig ng application ay maaaring masira ang isang bagay sa kabilang panig dahil walang malinaw na paghihiwalay ng mga tungkulin at responsibilidad. ito, nagsisimula kang nangangailangan ng higit pa at higit na koordinasyon sa pagitan ng mga tagapamahala ng proyekto at isang proseso ng QA na maaaring tumagal ng mga linggo at pag-unlad ng bottleneck, kahit gaano kabilis ang koponan na iyon. Masyadong maraming mga lutuin sa kusina. "
Mga lalagyan at Microservice Sa isang DevOps World
Ang paraan kung saan ang iyong negosyo ay nagpapatupad ng isang arkitektura ng microservices ay pupunta sa isang mahabang paraan upang matukoy kung nagbabayad ba o hindi ang pamumuhunan. Ang Microservice ay maraming trabaho sa harapan, lalo na sa pagsasama ng API na kinakailangan upang matiyak na ang lahat ng mga serbisyo ay nakikipag-usap sa bawat isa. Ipinaliwanag ni Hilwa na mas kumplikado ito kapag sinusubukan mong pagsamahin ang mga microservice sa isang umiiral na sistema; Inirerekumenda niya na ang mga negosyo ay magtatayo ng mga bagong sistema hangga't maaari sa halip na muling pag-arkitekto ng isang legacy monolith app para sa microservice.
"Ang mga tradisyunal na arkitektura ng system ay karaniwang nagsasangkot ng malaki, kumplikadong mga sistema ng database ng tala na may detalyadong mga normal na iskema, " sabi ni Hilwa. "Ang pagsasagawa ng mga naturang sistema sa mas maliit na mga sangkap na may kanilang sariling mga independiyenteng mga sistema ay nangangailangan ng maraming gawain sa disenyo ng database at epektibong muling pagsulat ng karamihan sa lohika ng aplikasyon ng core. Sa pangkalahatan ito ay gastos- at pagbabawal sa oras sa karamihan ng mga kaso."
Kung gumawa ka muli ng arkitektura ng isang legacy app, pagkatapos ay ipinapayo ng Hilwa na gawin mo ito ng dagdag. Kahit na mas mahalaga kaysa sa pagsasama ng API, ang microservice ay hindi gumagana nang walang kultura ng DevOps. Sinabi ni Dadgar ng HashiCorp na, pagdating sa mas malaking payong ng DevOps, ang mga microservice ay naging isang tool upang mapadali ang isang mas malaking proseso ng paglipat patungo sa panimulang pagbabago ng mga daloy ng trabaho kung saan naghahatid kami ng mga apps. Tinuro niya ang Tao ng HashiCorp na inilatag nang siya at ang co-founder na si Mitchell Hashimoto ay nagsimula sa kumpanya: simple, modular, at composable.
"Ang mga DevOps sa ilang kahulugan ay isang mas labis na sobrang termino kaysa sa mga microservice, " sabi ni Dadgar. "Ngunit ang isang negosyo ay binubuo ng mga taong may iba't ibang mga specialty ng kaalaman: mga developer, operator, security officer. At pagkatapos ay mayroon kang proseso, ang paraan na iyong ayusin ang mga taong iyon. Pagkatapos ay mayroon kang mga tool upang suportahan ang proseso, na kung saan ay kung saan ang mga microservice at lalagyan. pasok ka."
Ang mga lalagyan, na pinapalakas ng open-source pagsabog ng Docker, ay malayo sa pagiging tanging mga negosyo na kasangkapan na maaaring magamit upang mapadali ang mga microservice. Sinabi ng Hilwa ng IDC na ang mga lalagyan ay ginagamit sa mga modernong apps bilang bahagi ng CI / CD na mga daloy ng trabaho at, sa ilang mga kaso, habang nagtatagal sa paggawa. Ngunit sinabi niya na ang microservice ay maaaring magamit ang mga virtual machine (VM) din, nang hindi nangangailangan ng mga lalagyan.
Iyon ay sinabi, pagdating sa mga paraan kung saan umuusbong ang mga ulap sa negosyo, ang mga lalagyan ng Docker at microservice ay isang malakas na kombinasyon ng tooling na niyakap ng negosyo ng lahat ng mga hugis at sukat - mula sa mga startup tulad ng HashiCorp hanggang sa mga higanteng pang-negosyo tulad ng Oracle. Sinabi ni Dadgar ng HashiCorp na ang mga lalagyan ay ang maginhawang paraan sa pamamagitan ng kung saan ang Dev at Ops (at, sa pamamagitan ng samahan, iba't ibang mga koponan at serbisyo) ay nakikipag-usap sa isa't isa.
"Ano ang artifact na ipinapasa namin sa pagitan ng mga developer at operator? Ano ang aming dumadaloy nang lubusan at gusali sa paligid? Ang mga lalagyan ay isang maginhawang yunit na ipapasa, " sabi ni Dadgar. "Mag-isip tungkol sa isang pandaigdigang produkto ng pagpapadala ng negosyo sa buong mundo. Kung ito man ay isang freight ship, isang kargamento ng tren, o isang trak, ito ay ang parehong yunit na dumadaloy sa buong sistema."
Ang mga DevOps at microservice ay malayo pa rin sa malawakang pag-aampon ng enterprise ngunit lumalaki lamang ang merkado. Ayon sa ulat ng IDC, ang arkitektura ng microservices ay magpasok ng isang yugto ng pagkahinog sa susunod na limang taon. Ang kapanahunan na ito ay mangyayari sa takong ng kultura ng DevOps na umaabot sa 50 porsyento ng mga organisasyon sa pamamagitan ng 2020, ang patuloy na ebolusyon ng mga tool sa automation ng software, at ang pangingibabaw ng murang, nasusukat na imprastrakturang ulap na ibinigay ng mga kagustuhan ng Amazon Web Services (AWS) at Microsoft Azure.
Sinabi ni Dadgar na, kahit na sa maliit na bahagi ng mga negosyo na yumakap sa DevOps at microservice sa ngayon, ang HashiCorp ay labis na na-oversubscribe. Naabot nito ang una nitong pitong-figure na kita pagkatapos lamang ng siyam na buwan ng mga benta ng negosyo, sa tuktok ng isang bukas na mapagkukunan na komunidad sa GitHub ng ilang milyong buwanang aktibong gumagamit. Ang mga microservice ay bahagi lamang ng toolline na gumagana sa pipeline ng HashiCorp at mas malaking roadmap infrastructure infrastructure. Ngunit ang modularity at interoperability sa ilalim ng lahat ng itinatayo ng kumpanya ay nag-fuel sa pagtaas ng meteoric ng isa sa mga pinakamainit na startup ng software sa Silicon Valley.
"Apat na taon na ang nakalilipas noong nagsimula kami, pupunta kami sa mga pagpupulong at magtatakda ng aming pangitain kung paano pinamamahalaan ang imprastraktura, " sabi ni Dadgar. "Hindi kami eksaktong natawa sa labas ng silid; alam namin na maaga pa. Ngunit ngayon ang aming mga tool tulad ng Terraform ay papunta sa pagiging pamantayan ng industriya. Ang makikita natin ay isang domino na epekto ng mapagkumpitensyang presyon at, sa pangmatagalang, ang aming papel ay makikipagtulungan sa mga CIO at CTO upang maunawaan ang proseso ng shift na kailangan nilang gawin.
"Mag-isip tungkol sa Toyota noong araw, " patuloy ni Dadgar. "Nagkaroon ka ng isang bungkos ng mga kumpanya ng kotse na nagtatayo ng mga produkto ngunit mas mataas ang gastos kaysa sa nararapat. Ang Toyota ay hindi muling muling pinangalagaan kung ano ang isang kotse; sila ay mas mahigpit at nadagdagan tungkol sa proseso, at umalis mula sa pagtatawanan hanggang sa powerhouse, pagpilit sa natitirang bahagi ng industriya upang magpatibay ng parehong hanay ng mga kasanayan upang manatiling mapagkumpitensya.Sa ngayon, mayroon kaming mga pinuno ng industriya na nagtatanong kung paano sila makakakuha ng isang mapagkumpitensyang gilid, at ang kanilang sagot ay ang pag-ampon ng mga gawi ng Googles at Amazons ng merkado. point, tatamaan ito ng isang kritikal na misa. "