Snapchat inajulikana sana kati ya vijana na vijana. Labda uko juu ya 25 ikiwa huwezi kujua jinsi inavyofanya kazi. Snapchat, mojawapo ya programu maarufu za mitandao ya kijamii, huwapa watoto na vijana kile hasa wanachotaka: mbinu rahisi ya kushiriki matukio ya kawaida huku pia ikifanya yaonekane kuwa nzuri.
Tofauti na Facebook na Twitter, ambazo hurekodi na kuchapisha kila kitu unachofanya, Snapchat hutumia jumbe ambazo zinapaswa kutoweka (angalia jinsi hazifanyi).
Kuna mengi kuhusu Snapchat, na kama wewe ni msanidi programu ni mengi zaidi. Kwa hivyo, chapisho hili litakupa mtazamo wa hali ya juu wa Snapchat muundo wa mfumo na ufahamu mwingi zaidi.
kuanzishwa
Snapchat ni ya Marekani mitandao ya kijamii programu ambayo huruhusu watumiaji kuunganishwa mara moja, kushiriki picha, na zaidi.
- Ujumbe na picha (au midundo) zina kikomo cha saa cha saa 24. Huhimiza watu kushiriki hadithi zao katika vikundi.
- Ramani ya Snap inaruhusu watumiaji kuona kwenye ramani marafiki zao wako.
- Kumbukumbu huwakumbusha watumiaji picha walizohifadhi au kushiriki mwaka mmoja baadaye.
- Snapchat ni maarufu sana kwa vizazi vichanga, haswa vijana. Kuna watumiaji milioni 319 wanaofanya kazi kwenye programu, na vijipicha bilioni 5.4 vinatumwa kila siku.
Masharti Muhimu ya Kubuni
Usanifu wa Monolithic - Programu ya ngazi moja ambayo hufanya kazi bila kutegemea programu zingine inajulikana kama monolith (usanifu wa monolithic). Monolith imeundwa kutekeleza na kushughulikia shughuli zote zinazohitajika ili kukamilisha kazi. Programu hufanya kazi zote kutoka mwanzo hadi mwisho.
Microservices - Ni kinyume cha polar ya monoliths. Microservices ni mbinu ya usanifu ambayo hupanga maombi kama mkusanyiko wa huduma. Huduma hizi hutumiwa kudhibiti vipengele vingi vya programu. Mteja anaagiza, mhudumu huchukua na kupeleka, na mpishi anaitayarisha. Katika mfano huu, kila sehemu hufanya kazi kwa kujitegemea na tofauti na wengine; hakuna anayejua hasa wengine wanafanya nini, na hakuna anayeweza kupata taarifa sawa.
JSON: Ni umbizo linalotegemea maandishi ambalo linaweza kutumika kuonyesha vipengee vya JavaScript, maandishi, mkusanyiko na data. Umbizo hili la msingi wa maandishi linakusudiwa kuwa rahisi kusoma na kuandika, na pia kusagwa na programu. JSON hutumiwa kwa kawaida kuhamisha data na taarifa kati ya seva na programu za mtandaoni.
Uchezaji: Mbinu ya kufanya shughuli nyingi kiotomatiki inajulikana kama orchestration. Kazi hizi ni pamoja na mfumo wa kompyuta na usanidi wa programu, uratibu, na utawala.
Wakala: Wakala hufanya kazi kama njia kati ya mteja anayetafuta rasilimali na seva inayoitoa.
Mesh: Wavu wa huduma ni muundo wa usanifu wa programu unaoongeza safu kwenye safu ya miundombinu ili kuruhusu mawasiliano yanayodhibitiwa, yanayoonekana na salama kati ya huduma kupitia seva mbadala.
Ubunifu wa hali ya juu
Matatizo ya Monolithic
Snapchat ilianzishwa kama monolith inayotegemea wingu kulingana na Injini ya Programu ya Google. Walakini, jinsi programu ilikua maarufu na kupata watumiaji zaidi na data, uboreshaji ukawa suala.
Zaidi ya hayo, kwa radius kubwa ya mlipuko ndani ya monolith, usumbufu wa mfumo mzima uliwezekana zaidi. Moja ya matatizo ya Snapchat ilifafanuliwa kama "janga la commons," ambapo vipengele vilishindana kupata rasilimali; vipengele vilikuwa vikipakiwa wakati wa uzinduzi wa programu, hivyo kuruhusu vipengele fulani kupakia haraka lakini vingine kupakia polepole.
Wahandisi pia walitafuta mwonekano wazi, utengano na umiliki wa vijenzi vyao kutoka kwa mtazamo wa ukuzaji, ili huduma iweze kunyumbulika na ufanisi.
Mabadiliko
Snapchat ilipopanuka, kampuni iligundua kuwa ilihitaji kuvunja miundombinu yake ya monolithic katika vipande vidogo, vyema zaidi. Ili kutoa muda uliopungua, shirika liliamua kuunda muundo wa msingi wa huduma ndogo.
Ili kutimiza malengo hayo, Snapchat ilichagua kusasisha programu yake kwa kutumia Amazon DynamoDB, huduma hatari ya hifadhidata ya NoSQL. Kampuni iliweza kupunguza latency ya wastani kwa 20% kama matokeo ya juhudi zake.
Programu iliandikwa upya katika programu nyingi ndogo na shirika. Snapchat ilianza na programu nyingi, ikiwa ni pamoja na kamera, gumzo, kumbukumbu, uhariri wa picha, matumizi ya maudhui na ramani. Ingawa kuunganisha programu hizi katika monolith moja ilikuwa rahisi kwa watumiaji, ilileta suala kubwa la kiufundi katika suala la kudumisha utendakazi mzuri.
Ili kuandika upya, shirika liliweka sheria nyingi za msingi. Usipakie mapema; kila kipengele kinapaswa kuwa programu yake mwenyewe, na inapaswa kuwa ya haraka. Snapchat ilisitisha marekebisho katika sehemu kadhaa ili kuwezesha kuandika upya, na kuifanya kuwa kazi ya kiufundi kabisa.
Ujumuishaji wa vipengele vya ziada
Programu ya kamera ya Snapchat ina lenzi, vichungi, bitmoji, na uwezo wa kuongeza uhuishaji wa ukweli uliodhabitiwa, miongoni mwa mambo mengine. Programu ya gumzo ya Snapchat pia inaruhusu watumiaji kuhifadhi picha, kuhifadhi mazungumzo, kuongeza vikaragosi na zaidi.
Ramani ya Snapchat, miongoni mwa mambo mengine, hukuruhusu kufuatilia marafiki ikiwa wanataka ufanye hivyo. Kumbukumbu, uhariri wa picha, na utumiaji wa yaliyomo zote ni programu tofauti za Snapchat na uwezo wao wa kipekee.
Kumbukumbu hukuruhusu kuhifadhi au kurekebisha picha au video kwa matumizi ya baadaye, na pia kuzipakia au kuzituma. Watumiaji wanaweza pia kutumia uhariri wa picha kukata filamu, kuongeza maandishi, kuongeza vibandiko na zaidi.
Matumizi ya maudhui ya nje ya Snapchat hurejelea kile inachoonyesha watumiaji kulingana na anuwai ya vigezo.
Microservices
Mpango ulitegemea sana JSON kutekeleza hoja za mtandao wakati huo. Walakini, uchanganuzi wa JSON ulikuwa unatumia wakati na haukufaa. Snapchat ilitumia API ya usimamizi wa mtandao wa kati kuficha matumizi ya JSON kama maelezo ya utekelezaji ili kutatua tatizo hili.
Huduma ndogo huanzisha changamoto za usimamizi wa hali ya matumizi, mawasiliano ya huduma, na usimamizi wa kutofaulu. Snapchat ilitumia teknolojia huria kama vile Temporal kushinda matatizo ya uimbaji ili kuunda mfumo thabiti na unaotegemewa.
Matokeo yake, shirika liliamua kutumia muundo wa muundo wa mesh ya huduma. Snapchat ilitumia Mjumbe, zana nyingine huria ambayo hufanya kazi kama wakala, kufikia muundo huu. Mjumbe alisimamia mtiririko wa trafiki ya huduma kupitia miundombinu, na kuwapa wasanidi programu mwonekano katika matatizo yanayoweza kutokea.
Snapchat iliunda programu ya ndani inayoitwa Switchboard ndani ya matundu ya huduma. Switchboard ilitumika kama paneli kidhibiti cha huduma za Snap, inayowaruhusu watumiaji kuhamisha trafiki, kudhibiti utegemezi wa huduma (kipengele kinachoruhusu huduma moja kudhibitiwa kulingana na hali ya zingine), na kuondoa maeneo.
Ili kurahisisha utata wa usanidi unaowezekana ndani ya huduma, Switchboard ilitumika badala ya kufichua API nzima ya Mjumbe. Snap ina mtandao wa kawaida wa ndani na wa kikanda kwa huduma zake ndogo ndogo kwa shukrani kwa matundu ya huduma.
Huduma ndani ya eneo moja zinaweza kuunganishwa bila kutumia mtandao wa umma, na hakuna trafiki ya mtandao wa nje ingeweza kuwasiliana na sehemu za mtandao za ndani.
Lango pekee ndilo lingeidhinishwa kujionyesha kwenye mtandao kwa sababu za kiusalama. Lango la API, kwa mfano, linaweza kutumika kama milango ya mbele kwa urahisi, kushughulikia maombi kutoka kwa wateja/watumiaji na kuyaelekeza pamoja na mtandao.
Lango la Mtandao na API
Hoja zote kutoka kwa mteja wa Snapchat huja kupitia API Gateway. Inatumia picha ile ile ya Mjumbe na inaunganishwa kwa Njia ya Kudhibiti sawa na huduma zetu ndogo za ndani. Ndege Yetu ya Kudhibiti huturuhusu kuwezesha vichujio maalum vya Wajumbe.
Mifumo ya uthibitishaji ya Snapchat, pamoja na teknolojia zetu za kupunguza kasi na kupunguza upakiaji, hushughulikiwa na vichujio hivi. Mjumbe hutumia Mesh ya Huduma kuelekeza maombi kwa huduma ndogo inayofaa baada ya msururu wa kichujio kukamilika.
Hitimisho
Lango la API la Snapchat huelekeza trafiki ya nje kwa utendaji kazi mwingi wa programu. Maombi ya watumiaji kurekebisha hali ya usanidi yanasimamiwa na seva, ambazo basi kutoa data na taarifa nyuma kwa huduma mbalimbali za programu.
Kwa ujumla, muundo wa sasa wa Snapchat unaweza kulinganishwa na programu kadhaa zinazoendesha mfumo mmoja wa uendeshaji, ambao katika kesi hii ni programu ya Snapchat. Nilijaribu sana kukupa muhtasari wa hali ya juu wa muundo wa mfumo wa Snapchat. Natumaini umepata manufaa.
Acha Reply