Arkitektura ng Microservice:
Mula sa aking , dapat ay nakuha mo ang isang pangunahing pag-unawa sa Microservice Architecture.Ngunit, pagiging isang propesyonal na kasama mangangailangan ng higit pa sa mga pangunahing kaalaman. Sa blog na ito, mapupunta ka sa lalim ng mga konsepto ng arkitektura at ipatupad ang mga ito gamit ang isang pag-aaral na UBER-case.
Sa blog na ito, malalaman mo ang tungkol sa mga sumusunod:
- Kahulugan Ng Microservice Architecture
- Pangunahing Mga Konsepto Ng Arkitektura ng Microservice
- Mga kalamangan at kahinaan ng arkitektura ng mikropono
- UBER - Pag-aaral ng Kaso
Maaari kang sumangguni sa , upang maunawaan ang mga pangunahing kaalaman at pakinabang ng Mga Mikrobyo.
Magiging patas lamang kung ibibigay ko sa iyo ang kahulugan ng mga Mikroservice.
Kahulugan Ng Mga Mikroserbisyo
Tulad ng naturan, walang tamang kahulugan ng Microservices aka Microservice Architecture, ngunit masasabi mo na ito ay isang balangkas na binubuo ng maliit, isa-isang na-deploy na serbisyo na nagsasagawa ng iba't ibang mga operasyon.
Nakatuon ang mga microservice sa isang domain ng negosyo na maaaring ipatupad bilang ganap na independiyenteng mga deployable na serbisyo at ipatupad ang mga ito sa iba't ibang mga stack ng teknolohiya.
Larawan 1: Pagkakaiba sa Pagitan ng Monolithic at Microservice Architecture - Arkitektura ng mikroskopyo
Sumangguni sa diagram sa itaas upang maunawaan ang pagkakaiba sa pagitan ng monolithic at microservice na arkitektura.Para sa isang mas mahusay na pag-unawa sa mga pagkakaiba sa pagitan ng parehong mga arkitektura, maaari kang mag-refer sa aking nakaraang blog
Upang maunawaan mo nang mas mahusay, hayaan mong sabihin ko sa iyo ang ilang mga pangunahing konsepto ng microservice architecture.
Pangunahing Mga Konsepto Ng Arkitektura ng Microservice
Bago ka magsimula sa pagbuo ng iyong sariling mga application gamit ang microservices kailangan mong maging malinaw tungkol sa saklaw, at mga pag-andar ng iyong aplikasyon.
Ang sumusunod ay ilang mga alituntunin na susundan habang tinatalakay ang mga microservices.
Mga Alituntunin Habang Nagdidisenyo ng Mga Mikropono
- Bilang isang developer, kapag nagpasya kang bumuo ng isang application na paghiwalayin ang mga domain at maging malinaw sa mga pagpapaandar.
- Ang bawat microservice na iyong dinisenyo ay dapat na ituon lamang sa isang serbisyo ng aplikasyon.
- Tiyaking naidisenyo mo ang application sa isang paraan na ang bawat serbisyo ay isa-isang nailalagay.
- Tiyaking ang komunikasyon sa pagitan ng microservices ay tapos na sa pamamagitan ng isang walang estado na server.
- Ang bawat serbisyo ay maaaring dagdagan refactored sa mas maliit na mga serbisyo, pagkakaroon ng kanilang sariling microservices.
Ngayon, na nabasa mo ang mga pangunahing alituntunin habang nagdidisenyo ng mga microservices, unawain natin ang arkitektura ng mga microservices.
Paano Gumagana ang Microervice Architecture?
Ang isang tipikal na Microservice Architecture (MSA) ay dapat na binubuo ng mga sumusunod na bahagi:
- Mga kliyente
- Mga Tagapagbigay ng pagkakakilanlan
- Gateway API
- Mga Format ng Pagmemensahe
- Mga database
- Static na Nilalaman
- Pamamahala
- Pagtuklas sa Serbisyo
Sumangguni sa diagram sa ibaba.
java date string hanggang sa petsa
Figure 2: Arkitektura Ng Mga Mikroservice - Arkitektura ng Mikroservice
Alam kong medyo kumplikado ang arkitektura, ngunit hayaanAkogawing simple para sa iyo.
1. Mga kliyente
Nagsisimula ang arkitektura sa iba't ibang uri ng mga kliyente, mula sa iba't ibang mga aparato na sumusubok na magsagawa ng iba't ibang mga kakayahan sa pamamahala tulad ng paghahanap, pagbuo, pag-configure atbp.
2. Mga Tagapagbigay ng pagkakakilanlan
Ang mga kahilingang ito mula sa mga kliyente ay ipinapasa sa mga nagbibigay ng pagkakakilanlan na nagpapatunay sa mga kahilingan ng mga kliyente at ipinaparating ang mga kahilingan sa API Gateway. Ang mga kahilingan ay naiparating sa mga panloob na serbisyo sa pamamagitan ng mahusay na natukoy na API Gateway.
3. API Gateway
Dahil hindi direktang tawagan ng mga kliyente ang mga serbisyo, ang API Gateway ay gumaganap bilang isang entry point para ipasa ng mga kliyente ang mga kahilingan sa mga naaangkop na microservices.
Ang mga kalamangan ng paggamit ng isang API gateway ay kinabibilangan ng:
- Ang lahat ng mga serbisyo ay maaaring ma-update nang hindi nalalaman ng mga kliyente.
- Maaari ring gumamit ang mga serbisyo ng mga protokol na pagmemensahe na hindi web-friendly.
- Maaaring gumanap ang API Gateway ng mga pag-andar na cross-cutting tulad ng pagbibigay ng seguridad, pagbabalanse ng load atbp.
Matapos matanggap ang mga kahilingan ng mga kliyente, ang panloob na arkitektura ay binubuo ng microservices na nakikipag-usap sa bawat isa sa pamamagitan ng mga mensahe upang hawakan ang mga kahilingan ng kliyente.
4. Mga Format ng Pagmemensahe
Mayroong dalawang uri ng mga mensahe kung saan sila nakikipag-usap:
- Mga Kasabay na Mensahe: Sa sitwasyon kung saan naghihintay ang mga kliyente para sa mga tugon mula sa isang serbisyo, karaniwang ginagamit ng mga microsoft REST (Paglipat ng Estado ng Kinatawan) dahil ito ay umaasa sa isang walang estado, client-server, at ang HTTP protocol . Ginagamit ang protokol na ito bilang isang pamamahagi ng kapaligiran bawat isa at bawat pag-andar ay kinakatawan ng isang mapagkukunan upang magsagawa ng mga pagpapatakbo
- Mga Hindi Magkasabay na Mga Mensahe: Sa sitwasyon kung saan hindi naghihintay ang mga kliyente para sa mga tugon mula sa isang serbisyo, kadalasang may posibilidad na gumamit ng mga protokol tulad ng AMQP, STOMP, MQTT . Ang mga protokol na ito ay ginagamit sa ganitong uri ng komunikasyon dahil ang likas na katangian ng mga mensahe ay tinukoy at ang mga mensaheng ito ay dapat na magkakaugnay sa pagitan ng mga pagpapatupad.
Ang susunod na tanong na maaaring isipin mo ay kung paano pinangangasiwaan ng mga application na gumagamit ng Mikroservices ang kanilang data?
5. Paghawak ng Data
Sa gayon, ang bawat mikroservice ay nagmamay-ari ng isang pribadong database upang makuha ang kanilang data at ipatupad ang kani-kanilang pagpapaandar sa negosyo. Gayundin, ang mga database ng mga Mikroservice ay na-update sa pamamagitan lamang ng kanilang serbisyong API. Sumangguni sa diagram sa ibaba:
Larawan 3: Representasyon Ng Data ng Pangangasiwa ng Mikroservices - Arkitektura ng Mikroservice
Ang mga serbisyong ipinagkakaloob ng mga mikroservice ay isinasagawa sa anumang malayuang serbisyo na sumusuporta sa komunikasyon sa pagitan ng proseso para sa iba't ibang mga stack ng teknolohiya.
6. Static na Nilalaman
Matapos makipag-usap ang mga Mikroservice sa loob ng kanilang sarili, inilalagay nila ang static na nilalaman sa isang cloud-based na serbisyo sa pag-iimbak na direktang maihahatid ang mga ito sa mga kliyente sa pamamagitan ng Mga Network ng Paghahatid ng Nilalaman (CDN) .
mga uri ng set sa java
Bukod sa mga nabanggit na bahagi, maraming mga iba pang mga sangkap ang lilitaw sa isang tipikal na Arkitektura ng mikroskopyo:
7. Pamamahala
Ang sangkap na ito ay responsable para sa pagbabalanse ng mga serbisyo sa mga node at pagkilala sa mga pagkabigo.
8. Pagtuklas sa Serbisyo
Gumagawa bilang isang gabay sa Mga Mikropono upang makita ang ruta ng komunikasyon sa pagitan nila dahil pinapanatili nito ang isang listahan ng mga serbisyo kung saan matatagpuan ang mga node.
Mag-subscribe sa aming youtube channel upang makakuha ng mga bagong update ..!
Ngayon, tingnan natin ang mga kalamangan at kahinaan ng arkitekturang ito upang makakuha ng isang mas mahusay na pag-unawa sa kung kailan gagamitin ang arkitekturang ito.
Mga kalamangan at kahinaan ng arkitektura ng mikropono
Sumangguni sa talahanayan sa ibaba.
Mga kalamangan Ng Arkitektura ng Mikroservice | Kahinaan Ng Microservice Arkitektura |
Kalayaan na gumamit ng iba`t ibang mga teknolohiya | Nagdaragdag ng mga hamon sa pag-troubleshoot |
Ang bawat microservice ay nakatuon sa solong kakayahan sa negosyo | Nagdaragdag ng pagkaantala dahil sa mga malayuang tawag |
Sinusuportahan ang mga indibidwal na na-deploy na yunit | Tumaas na pagsisikap para sa pagsasaayos at iba pang mga operasyon |
Pinapayagan ang madalas na paglabas ng software | Mahirap mapanatili ang kaligtasan ng transaksyon |
Tinitiyak ang seguridad ng bawat serbisyo | Mahirap upang subaybayan ang data sa iba't ibang mga hangganan ng serbisyo |
Maramihang mga serbisyo ay parallelly binuo at deploy | Mahirap ilipat ang code sa pagitan ng mga serbisyo |
Ipaalam sa amin na higit na maintindihan ang tungkol sa mga mikroskopyo sa pamamagitan ng paghahambing ng dating arkitektura ng UBER sa kasalukuyang isa.
Pag-aaral ng Kaso ng UBER
Nakaraang Arkitektura ng UBER
Tulad ng maraming mga pagsisimula, sinimulan ng UBER ang paglalakbay nito sa isang monolitikong arkitektura na itinayo para sa isang solong alok sa isang solong lungsod. Ang pagkakaroon ng isang codebase ay tila nalinis sa oras na iyon, at nalutas ang pangunahing mga problema sa negosyo ng UBER. Gayunpaman, sa pagsisimula ng paglawak ng UBER sa buong mundo mahigpit nilang hinarap ang iba`t ibang mga problema patungkol sa scalability at patuloy na pagsasama.
Larawan 4: Monolithic Architecture Of UBER - Arkitektura ng mikroskarte
Ang diagram sa itaas ay naglalarawan ng dating arkitektura ng UBER.
- Ang isang REST API ay naroroon kung saan kumokonekta ang pasahero at driver.
- Tatlong magkakaibang mga adaptor ang ginagamit sa API sa loob nila, upang magsagawa ng mga pagkilos tulad ng pagsingil, pagbabayad, pagpapadala ng mga email / mensahe na nakikita namin kapag nag-book kami ng taksi.
- Isang MySQL database upang maiimbak ang lahat ng kanilang data.
Kaya, kung napansin mo dito ang lahat ng mga tampok tulad ng pamamahala ng pasahero, pagsingil, mga tampok sa abiso, pagbabayad, pamamahala ng biyahe at pamamahala ng pagmamaneho ay binubuo sa loob ng isang solong balangkas.
Pahayag ng Suliranin
Habang nagsimula ang pagpapalawak ng UBER sa buong mundo ang ganitong uri ng balangkas ay nagpakilala ng iba't ibang mga hamon. Ang mga sumusunod ay ilan sa mga kilalang hamon
- Ang lahat ng mga tampok ay dapat na muling itayo, ipakalat at subukang muli at muli upang mag-update ng isang tampok.
- Ang pag-aayos ng mga bug ay naging napakahirap sa isang solong imbakan dahil kailangang baguhin ng mga tagabuo ang code nang paulit-ulit.
- Ang pag-scale ng mga tampok nang sabay-sabay sa pagpapakilala ng mga bagong tampok sa buong mundo ay medyo matigas upang hawakan nang magkasama.
Solusyon
Upang maiwasan ang mga ganitong problema ay nagpasya ang UBER na baguhin ang arkitektura nito at sundin ang iba pang mga kumpanya ng paglago na tulad ng Amazon, Netflix, Twitter at marami pang iba. Kaya, nagpasya ang UBER na sirain ang monolithic na arkitektura nito sa maraming mga codebases upang mabuo ang isang arkitektura ng microservice.
Sumangguni sa diagram sa ibaba upang tingnan ang arkitekturang microservice ng UBER.
Larawan 5: Ang Arkitektura ng Microservice Ng UBER - Arkitektura ng Microservice
- Ang pangunahing pagbabago na sinusunod namin dito ay ang pagpapakilala ng API Gateway na kung saan nakakonekta ang lahat ng mga driver at pasahero. Mula sa API Gateway, ang lahat ng mga panloob na puntos ay konektado tulad ng pamamahala ng pasahero, pamamahala ng driver, pamamahala sa paglalakbay at iba pa.
- Ang mga yunit ay indibidwal na magkakahiwalay na mga deployable na yunit na gumaganap ng magkakahiwalay na pagpapaandar.
- Halimbawa: Kung nais mong baguhin ang anuman sa pagsingil ng mga Mikropono, pagkatapos ay kailangan mo lamang i-deploy ang mga pagsingil lamang sa mga mikrobyo at hindi mo dapat i-deploy ang iba.
- Ang lahat ng mga tampok ay naisa-scale na ngayon nang isa-isa ie Ang pagkakaugnay sa pagitan ng bawat isa at ng tampok ay tinanggal.
- Halimbawa, alam nating lahat na ang bilang ng mga taong naghahanap ng mga taksi ay mas medyo kumpara sa mga tao na talagang nagbu-book ng taksi at nagbabayad. Nakuha sa amin ang isang hinuha na ang bilang ng mga proseso na nagtatrabaho sa microservice ng pamamahala ng pasahero ay higit sa bilang ng mga proseso na gumagana sa mga pagbabayad.
Dito saparaan, Ang UBER ay nakinabang sa paglilipatnitoarkitektura mula sa monolithic hanggang sa mga mikropono.
Inaasahan kong nasiyahan ka sa pagbabasa ng post na ito sa Microservice Architecture.Darating ako sa maraming mga blog, na maglalaman din ng hands-on.
Interesado sa Pag-aaral Nang Higit Pa Tungkol sa Mga Mikropono?
Kung nais mong malaman ang mga MicrosoftServices at bumuo ng iyong sariling mga application, pagkatapos ay tingnan ang aming na kasama ng live na pagsasanay na pinamunuan ng magtuturo at karanasan sa proyekto sa totoong buhay. Ang pagsasanay na ito ay makakatulong sa iyo na maunawaan ang malalim na mga Serbisyo at makakatulong sa iyo na makamit ang pagkontrol sa paksa.
May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng ” Arkitektura ng Microservice ”At babalikan kita.