Masoko hayatumi mialiko ya mikutano kabla hayajatikisika sana. Kupunguzwa kwa kiwango cha riba kwa kushtukiza, matokeo ya uchaguzi yasiyotarajiwa, au msuguano wa ghafla wa kijiopolitiki unaweza kusababisha bei za rasilimali kubadilika-badilika ndani ya sekunde chache. Wafanyabiashara hukimbilia kwenye skrini zao. Maagizo ya kununua na kuuza hujilundika. Miundombinu yako lazima iweze kuhimili mshtuko huo bila kukwama. Wakati ujazo unapoongezeka mara kumi ndani ya dakika chache, kasi ndogo, maagizo yanayofeli, na hitilafu za mfumo kabisa si usumbufu mdogo tu. Ni vifo vya uaminifu.
Kujenga jukwaa la biashara linaloweza kuhimili nyakati hizi kunamaanisha kufanya maamuzi ya usanifu mapema. Nguvu kubwa ya mashine pekee haitakuokoa ikiwa usanifu ni dhaifu. Hivi ndivyo unavyoweza kukabiliana na tatizo hili bila kuchukulia hali ya mabadiliko ya haraka (volatility) kama ongezeko la kawaida la trafiki tu.
Anza na Miundombinu ya Cloud Inayoweza Kutanuka kwa Urahisi
Vifaa visivyobadilika ni adui yako. Ukipanga seva kwa ajili ya ujazo wa wastani wa kila siku, utazama wakati wa ongezeko kubwa. Ukipanga kwa ajili ya hali mbaya zaidi kabisa, utapoteza pesa nyingi ukiwa na mashine zisizotumika kwa sehemu kubwa ya mwaka.
Miundombinu ya Cloud inatatua hili kwa kutumia auto-scaling. Uwezo wa kompyuta unapaswa kukua kiotomatiki kadiri mahitaji yanavyoongezeka. Wakati wa asubuhi tulivu ya Jumanne, unafanya kazi kwa gharama nafuu. Ripoti ya ajira inapowasilishwa na mtiririko wa maagizo ukiongezeka mara tatu, mifumo mipya inaanza kufanya kazi ili kugawana mzigo. Siri ni kuweka mipangilio ya upanuzi (scaling policies) inayofanya kazi kwa haraka ya kutosha. Weka viwango vyako kulingana na kina cha foleni ya maombi (request queue depth), matumizi ya CPU, na kasi ya mtandao (network throughput) badala ya kukisia. Pia, sambaza usanifu wako katika maeneo mbalimbali (regions). Wafanyabiashara katika saa tofauti hawapaswi kushindania rasilimali moja ya kompyuta ikiwa hawahitaji kufanya hivyo. Uwepo wa mifumo mbadala katika maeneo mbalimbali (regional redundancy) hupunguza ucheleweshaji (latency) na kutoa mbadala ikiwa kituo kimoja cha data kitapata matatizo.
Gawanya Jukwaa katika Microservices
Kuendesha kila kitu katika kanuni moja kubwa (massive codebase) ni kama kuweka mayai yote kwenye kikapu kimoja kisha kuanza kukimbia. Katika programu ya monolithic, hitilafu ya kumbukumbu (memory leak) katika zana yako ya kuchora michoro ya kwingineko (portfolio charting tool) inaweza kusababisha injini yako ya utekelezaji wa maagizo kusimama. Katika masoko yenye mabadiliko makubwa, muunganiko huo haukubaliki.
Gawanya jukwaa katika huduma zinazojitegemea. Shughulikia uthibitishaji wa mtumiaji (user authentication) kando na upokeaji wa data za soko. Tenga utekelezaji wa maagizo kutoka kwa usimamizi wa kwingineko na usindikaji wa malipo. Wakati sehemu moja inapokabiliwa na mzigo mkubwa, unaweza kuipanua bila kuingilia mfumo mwingine. Kwa mfano, ikiwa hisa ya "meme" itapata umaarufu mkubwa na kila mtu akitaka kuangalia bei, huduma yako ya data za soko inaweza kutanuka huku kundi lako la utekelezaji wa maagizo likibaki limehifadhiwa kwa ajili ya biashara halisi. Timu zinaweza kuweka marekebisho kwenye lango la malipo (payment gateway) mchana wa Jumanne bila kugusa injini ya upatanishi (matching engine).
Mgawanyo huu unahitaji nidhamu. Unahitaji API zilizo wazi, mifumo thabiti ya mawasiliano kati ya huduma, na sheria za kupunguza athari kwa utaratibu (graceful degradation). Ikiwa michoro ya kwingineko itachelewa wakati wa ongezeko la shinikizo, hiyo inakera. Ikiwa kitabu cha maagizo (order book) kitaganda, hiyo ni janga. Sanifu kwa ajili ya kutenga hitilafu tangu mwanzo.
Jenga kwa Kasi Isiyoyumbisha Usahihi
Ucheleweshaji mdogo (low latency) si anasa katika biashara za kielektroniki. Ikiwa uhakiki na ukaguzi wa hatari utaongeza ucheleweshaji usio wa lazima, wafanyabiashara watakosa fursa zao. Jukwaa litaonekana kama limeharibika hata kama kiufundi liko hewani.
Maagizo lazima yapite kwenye uhakiki na tathmini ya hatari kwa ucheleweshaji mdogo kabisa. Hii haimaanishi kufanya kazi kwa kusuasua. Inamaanisha kubuni ukaguzi ambao ni wenye ufanisi wa kihesabu (computationally efficient). Tumia mifumo ya data ya in-memory (in-memory data grids) kwa mipaka ya mikopo na ukaguzi wa nafasi (position checks) badala ya kuuliza hifadhidata ya uhusiano (relational database) kila wakati. Hakikisha mpangilio wa agizo (order syntax) unahakikiwa kwenye lango (gateway) kabla ya agizo hilo kufika kwenye injini ya upatanishi. Endesha sheria za kuzuia udanganyifu na uzingatiaji (compliance) kwa pamoja pale inapowezekana.
Usahihi ni upande wa pili wa fomula ambao hauwezi kujadiliwa. Kasi haipaswi kuathiri usahihi. Utekelezaji wa haraka lakini usio sahihi ni mbaya zaidi kuliko ule wa polepole. Mfumo wako lazima udumishe...
