1. Gabatarwa & Bayyani
Wannan abun ciki ya samo asali ne daga wani sashe na shirin rediyon Software Engineering Radio (sashe na 213), wanda ya ƙunshi tattaunawa tsakanin Johannes Thönes da James Lewis kan batun microservices. Tattaunawar ta bincika ma'ana, dalilai, da la'akari na aiki game da wannan salon gine-gine, wanda ya sami babban sha'awa a farkon 2015 a matsayin martani ga ƙalubalen kula da manyan aikace-aikacen guda ɗaya (monolithic).
2. Ma'anar Microservices
Ana ɗaukar microservice a matsayin ƙaramin ɓangaren aikace-aikacen da aka mai da hankali.
2.1 Siffofi na Asali
Bisa ga tattaunawar, microservice yana da siffofi masu mahimmanci da yawa:
- Turawa Mai Zaman Kansa: Ana iya turawa ba tare da buƙatar canje-canje ga wasu ayyuka ba.
- Girma Mai Zaman Kansa: Ana iya girman shi a kwance ko a tsaye bisa ga nauyin da yake ɗauka.
- Gwaji Mai Zaman Kansa: Ana iya tabbatar da shi shi kaɗai.
- Alhaki Guda: Yana da dalili ɗaya na asali don canzawa ko maye gurbinsa. Yana aiwatar da aiki ɗaya mai haɗin kai kuma ana iya fahimtar sa cikin sauƙi.
2.2 Misalan Alhaki Guda
"Abu ɗaya" da microservice ke yi na iya zama na aiki ko na tsaka-tsaki (ba na aiki ba):
- Na Aiki:
- Na Tsaka-tsaki: Mai sarrafa jerin gwano wanda ke karanta saƙo, yana amfani da dabaru na kasuwanci, sannan ya wuce da shi. Alhakin takamaiman buƙatu mara aiki kamar ajiyar bayanai (caching) ko rubuta ayyuka (logging).
3. Tashin Microservices
3.1 Abubuwan Tura Shahararriyar
Shahararriyar microservices ana danganta ta da matsala mai yaduwa a masana'antar: aikace-aikacen guda ɗaya (monolith) wanda ba za a iya sarrafa shi ba. Ƙungiyoyi suna fuskantar aikace-aikacen da suka girma sama da shekaru 5-10, sun zama da wahalar gyara, turawa a matsayin SaaS, ko girman tasiri a cikin gajimare (cloud).
3.2 Magance Bashin Fasaha
Microservices sun fito ne a matsayin mafita don raba waɗannan monoliths zuwa ƙananan ɓangarorin haɗin gwiwa waɗanda ke gudana a waje da tsari. Wannan hanya, wanda kamfanoni kamar Netflix suka nuna a sikeli, yana ba da damar kulawa, girman, da maye gurbin su daban. Babban abin tura shi ne buƙatar isar da software cikin sauri da kuma amfani da ayyuka kamar ci gaba da isarwa (continuous delivery), waɗanda tsarin gine-ginen guda ɗaya ke hana su.
4. Tsare-tsaren Amfani & Aiwatarwa
4.1 Sabon Aiki (Greenfield) da Tsohon Aiki (Brownfield)
Wata muhimmiyar tambaya ita ce ko za a fara sabon aiki da microservices (greenfield) ko kuma a sake fasalin tsohon monolith zuwa cikinsu (brownfield). Tattaunawar ta lura cewa a zahiri, yawancin ƙungiyoyi suna farawa da monolith sannan daga baya suke sake fasali, suna fuskantar ƙalubalen gano iyakokin mahallin da kuma ɓangarorin haɗin kai a cikin tushen lambobin da ake da su.
4.2 Sarƙaƙƙiyar Aiki
An ambaci cewa ƙayyadaddun shirin rediyon ya hana cikakken tattaunawa kan sarƙaƙƙiyar aiki da tasirinsa akan DevOps. Wannan yana nuna cewa yayin da microservices ke magance matsalolin ci gaba da girman tasiri, suna haifar da sabbin ƙalubale a cikin sa ido, tsarin turawa, da amincin hanyar sadarwa.
5. Muhimman Bayanai & Nazari
Bayanin Asali
Microservices ba fasaha ce ta harsashi guda ba; martani ne na ƙungiya da tattalin arziki ga matsalar toshewar ci gaban monolith. Ainihin kimar da aka nuna ta misalin Netflix, ita ce ba da damar tsare-tsaren isar da ƙima masu zaman kansu, masu gudana tare. Wannan tsarin gine-gine yana kai hari kai tsaye ga farashin haɗin gwiwa da matsalolin turawa waɗanda ke addabar manyan ƙungiyoyin da ke aiki akan tushen lamba ɗaya, matsala da aka tsara ta hanyar karin magana na Melvin Conway cewa "ƙungiyoyin da ke ƙirƙirar tsarin... an takura su don samar da ƙira waɗanda su ne kwafin tsarin sadarwa na waɗannan ƙungiyoyin." Microservices suna ƙoƙarin juyar da wannan ta hanyar ƙirƙirar tsarin da ke tilasta tsarin sadarwa masu kyau.
Tsarin Ma'ana
Labarin yana bin sarkar dalili da sakamako mai ƙarfi: (1) Monoliths suna tara bashin fasaha kuma sun zama masu gurɓataccen canji. (2) Kasuwanci yana buƙatar girman tasiri na gajimare da ci gaba da isarwa. (3) Tsarin gine-ginen guda ɗaya bai dace da waɗannan manufofin ba saboda haɗin kai. (4) Mafita ita ce karya monolith tare da iyakokin mahallin, ƙirƙirar raka'o'in turawa masu zaman kansu. Wannan ma'ana tana da inganci amma ta wuce sarƙaƙƙiyar tsaka-tsaki mai girma—"yadda" ake karya.
Ƙarfi & Kurakurai
Ƙarfi: Mayar da hankali kan turawa mai zaman kansa a matsayin babban siffa daidai ne. Wannan shine maɓalli wanda ke buɗe 'yancin ƙungiyar da saurin sakewa. Haɗin kai da Dokar Conway da CQRS (wanda aka ambata a matsayin batutuwan da aka tsallake) yana nuna sanin zurfin tsare-tsaren fasaha da zamantakewa da ke faruwa.
Kurakurai: Ra'ayin na 2015 yana da kyakkyawan fata game da sauƙin ayyana "alhaki guda." Gwaninta na masana'antu daga baya ya bayyana wannan a matsayin mafi wahala—la'anar iyakokin sabis marasa kyau wanda ke haifar da monoliths masu rarrabuwa. Fassarar kuma ta yi watsi da nauyin aiki cikin haɗari. Kamar yadda babban labarin Fowler ya bayyana daga baya, kuna musayar sarƙaƙƙiyar ci gaba da sarƙaƙƙiyar aiki. Ambaton Docker a matsayin "wani sanannen yanki" shirin tarihi ne; tsarin kwantena shine mai ba da damar aiki wanda ya ɓace wanda ya sa microservices su zama masu amfani a sikeli.
Bayanai masu Aiki
Ga shugabanni: Kada ku fara da microservices saboda suna da kyan gani. Fara da auna lokacin jagorancin ku don canje-canje da mitar turawa. Idan sun yi muni saboda haɗin gwiwar tushen lamba, ku yi la'akari da microservices. Ga masu gine-gine: Babban kayan aikin ƙira ba jerin abubuwan fasaha ba ne amma taswirar mahallin da aka ƙaddamar da yanki (DDD). Ayyana iyakoki bisa damar kasuwanci, ba matakan fasaha ba. Ga ƙungiyoyi: Saka hannun jari a cikin injiniyan dandamali da farko—turawa ta atomatik, gano sabis, da lura ba abubuwan da za a yi tunani ba ne; su ne tushe. Hanyar da aka ba da shawarar—sake fasalin daga monolith—har yanzu ita ce mafi hikima. Yi amfani da Tsarin Strangler Fig don maye gurbin sassan monolith da ayyuka a hankali, yayin da wannan ke sarrafa haɗari kuma yana ba da damar koyo.
6. Tsarin Fasaha & Ƙirar Lissafi
Duk da yake shirin rediyon tattaunawa ne, ana iya tsara ƙa'idodin asali. Wani muhimmin samfuri shine alaƙar tsakanin girman ƙungiyar (N), hanyoyin sadarwa, da haɗin gwiwar gine-gine.
A cikin tsarin gine-ginen guda ɗaya tare da ƙungiyoyi N, hanyoyin sadarwa masu yuwuwa suna sikeli tare da $O(N^2)$, saboda canje-canje a cikin wani tsarin na iya shafar wasu da yawa. Wannan yana haifar da nauyin haɗin gwiwa. Microservices suna nufin rage wannan ta hanyar tilasta iyakokin mahallin da APIs. Manufar ita ce sanya farashin sadarwar tsakanin sabis, $C_{comm}$, ya zama babba a fili ta hanyar kiran hanyar sadarwa, ta haka yana ƙarfafa ƙaƙƙarfan tsari a cikin sabis inda farashin canji, $C_{internal}$, ya yi ƙasa.
Samfurin da aka sauƙaƙa don yuwuwar yaduwar canji ($P_{prop}$) zai iya zama:
$P_{prop} \approx \frac{C_{comm}}{C_{comm} + C_{internal}}$
Inda kyakkyawan tsarin gine-ginen microservices yana rage $P_{prop}$ don canje-canjen da ba su da alaƙa ta hanyar sanya $C_{comm}$ (jinkirin hanyar sadarwa, sigar API) ya zama babban abin da ke haifar da canje-canjen iyaka.
7. Sakamakon Gwaji & Nazarin Lamura
Shirin rediyon ya ambaci Netflix a matsayin babban nazarin lamari. A shekara ta 2015, Netflix ya shahara da rarraba tsarin bayansa guda ɗaya zuwa ɗaruruwan microservices, wanda ya ba da damar:
- Girma Mai Zaman Kansa: Ayyuka kamar shawarar fim ko lissafin kuɗi za su iya girma su kaɗai yayin ƙalubalen kololuwa.
- Ƙirƙira Mai Sauri: Ƙungiyoyi za su iya turawa ayyukansu sau da yawa a rana ba tare da cikakken haɗin gwiwar dandamali ba.
- Bambancin Fasaha: Ana iya rubuta ayyuka daban-daban a cikin harshen da ya fi dacewa da aikinsu (misali, Java, Node.js).
Bayanin Jadawali (Hasashe): Jadawali mai sanduna wanda ke kwatanta aikace-aikacen guda ɗaya da tsarin gine-ginen microservices akan ginshiƙai biyu: (1) Mitar Turawa (Turawa/Rana): Monolith yana nuna ƙaramin sandar (misali, 0.1), Microservices suna nuna babban sandar (misali, 50+). (2) Matsakaicin Lokacin Dawowa (MTTR) daga gazawa: Monolith yana nuna babban sandar (misali, sa'o'i 4), Microservices suna nuna ƙaramin sandar (misali, mintuna 30), saboda ana iya ware gazawar zuwa takamaiman ayyuka.
Nazarin daga baya, kamar waɗanda aka ambata a cikin Rahoton Yanayin DevOps, sun haɗa tsarin gine-ginen da aka sassauta, masu alaƙa da sabis tare da mafi girman aikin isar da software.
8. Tsarin Nazari: Misali na Aiki
Yanayi: Wani monolith na kasuwanci na kan layi yana fama da sabuntawa. Canje-canjen fasalin "duba" suna buƙatar cikakken gwajin koma baya kuma suna cin karo da sabuntawa zuwa "katalog na samfur."
Aiwatar Tsarin:
- Gano Iyakokin Mahalli: Ta amfani da Ƙirar da aka Ƙaddamar da Yanki (DDD), gano yankuna na asali: Oda, Katalog, Kaya, Gudanar da Mai Amfani, Biya.
- Ayyana Iyakokin Sabis: Ƙirƙiri microservice ga kowane mahalli. Sabis na Oda yana da dabaru na duba da bayanan oda.
- Kafa Kwangiloli: Ayyana APIs masu bayyanawa. Sabis na Oda zai kira API na
processPayment(orderId, amount)na Sabis na Biya da API nareserveStock(itemId, quantity)na Sabis na Kaya. - Mallakar Bayanai: Kowane sabis yana da bayanansa. Sabis na Oda yana da teburin "odars" nasa; ba ya bincika bayanan Kaya kai tsaye.
- Turawa & Lura: Kowane sabis an sanya shi cikin kwantena, an turawa shi da kansa, kuma yana buga ma'auni (jinkiri, ƙimar kuskure) zuwa babban allon.
Sakamako: Ƙungiyar duba yanzu za ta iya turawa sabuntawa zuwa Sabis na Oda ba tare da haɗa ƙungiyoyin katalog ko kaya ba, yana rage nauyin haɗin gwiwa sosai kuma yana ƙara yawan turawa.
9. Aiwatarwa na Gaba & Hanyoyin Bincike
Juyin halittar microservices yana ci gaba bayan ra'ayin na 2015:
- Ragunan Sabis (Service Meshes): Fasahohi kamar Istio da Linkerd sun fito don sarrafa abubuwan da suka shafi tsaka-tsaki (tsaro, lura, sarrafa zirga-zirga) a matakin kayayyakin more rayuwa, suna rage nauyin lamba akan ayyuka ɗaya.
- Maras Uwar Garken & FaaS: Ayyuka-a matsayin-Sabis (misali, AWS Lambda) suna wakiltar mafi ƙarancin nau'in microservices, suna tura sarƙaƙƙiyar aiki gabaɗaya ga mai ba da gajimare kuma suna ba da damar girman ma'ana mafi kyau.
- Haɗin AI/ML: Microservices suna zama tsarin da aka saba da shi don turawa samfuran ML a matsayin ayyukan hasashe masu zaman kansu, suna ba da damar gwajin A/B da saurin maimaita algorithms.
- Ƙididdiga na Gefe (Edge Computing): Turawa microservices masu sauƙi zuwa na'urorin gefe don sarrafa jinkiri ƙasa a cikin yanayin IoT da nazari na ainihin lokaci.
- Mayar da Hankali Bincike: Ana buƙatar bincike na gaba a cikin kayan aikin rarraba sabis ta atomatik, hasashen kuskure mai hankali a cikin tsarin rarrabuwa, da tabbatar da hulɗar a cikin raye-rayen sabis.
10. Nassoshi
- Lewis, J., & Fowler, M. (2014). Microservices. MartinFowler.com. An samo daga https://martinfowler.com/articles/microservices.html
- Newman, S. (2015). Building Microservices. O'Reilly Media.
- Forsgren, N., Humble, J., & Kim, G. (2018). Accelerate: The Science of Lean Software and DevOps. IT Revolution Press.
- Conway, M. E. (1968). How Do Committees Invent? Datamation, 14(5), 28-31.
- Google Cloud. (2019). The 2019 Accelerate State of DevOps Report. DORA.
- Netflix Technology Blog. (Various). https://netflixtechblog.com/