Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Betsaka ny fanombohana no nandalo an'io: be dia be ny mpampiasa vaovao misoratra anarana isan'andro, ary ny ekipan'ny fampandrosoana dia miady mafy mba hitazonana ny serivisy.

Olana mahafinaritra izany, saingy tsy dia misy fampahalalana mazava tsara ao amin'ny tranonkala momba ny fomba fametahana amim-pitandremana ny fampiharana tranonkala iray amin'ny tsy misy ho an'ny mpampiasa an'hetsiny. Amin'ny ankapobeny dia misy vahaolana amin'ny afo na vahaolana amin'ny bottleneck (ary matetika izy roa). Noho izany, ny olona dia mampiasa teknika somary cliched mba hampitombo ny tetikasa am-panajana azy ho zavatra tena matotra.

Andeha isika hiezaka hanivana ny vaovao ary soraty ny raikipohy fototra. Hampitomboinay tsikelikely ny tranokala fifampizarΓ na sary vaovao Graminsta manomboka amin'ny mpampiasa 1 ka hatramin'ny 100.

Andeha hosoratana hoe inona ny hetsika manokana tokony hatao rehefa mitombo ho 10, 100, 1000, 10 ary 000 ny mpanatrika.

mpampiasa 1: milina 1

Saika ny fampiharana rehetra, na tranonkala na fampiharana finday, dia misy singa telo lehibe:

  • API
  • banky angona
  • mpanjifa (fampiharana finday na tranokala)

Ny tahiry dia mitahiry angona maharitra. Ny API dia manolotra fangatahana amin'ity data ity sy ny manodidina. Ny mpanjifa dia mamindra angona amin'ny mpampiasa.

Tonga tamin'ny fanatsoahan-kevitra aho fa mora kokoa ny miresaka momba ny fampitomboana ny fampiharana raha toa ka misaraka tanteraka ny mpanjifa sy ny sampana API amin'ny fomba fijery ara-javakanto.

Rehefa manomboka manangana rindranasa isika dia azo atao amin'ny lohamilina iray ihany ireo singa telo ireo. Amin'ny lafiny sasany, mitovy amin'ny tontolon'ny fampandrosoana misy antsika izany: injeniera iray no mitantana ny angona, API ary mpanjifa amin'ny milina iray ihany.

Raha ny teoria dia azontsika atao ny mametraka azy ao anaty rahona amin'ny ohatra iray DigitalOcean Droplet na AWS EC2, araka ny aseho eto ambany:
Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100
Miaraka amin'izany, raha misy mpampiasa mihoatra ny iray amin'ny tranokala iray, dia saika misy dikany foana ny fanokanana sosona database.

Mpampiasa 10: mamindra ny angon-drakitra mankany amin'ny ambaratonga samihafa

Ny fizarana ny angon-drakitra ho tolotra voatanisa toa ny Amazon RDS na Digital Ocean Managed Database dia hanompo antsika tsara mandritra ny fotoana maharitra. Somary lafo kokoa noho ny fampiantranoana tena amin'ny milina tokana na ohatra EC2 izany, fa miaraka amin'ireo serivisy ireo dia mahazo fanitarana mahasoa maro avy ao anaty boaty izay ho ilaina amin'ny ho avy: backup multi-faritra, mamaky kopia, mandeha ho azy backups, sy ny maro hafa.

Toy izao ny endriky ny rafitra:
Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Mpampiasa 100: mamindra ny mpanjifa mankany amin'ny ambaratonga samihafa

Soa ihany fa tena tian'ireo mpampiasa anay voalohany ny fampiharanay. Lasa milamina kokoa ny fifamoivoizana, ka izao no fotoana hamindrana ny mpanjifa amin'ny ambaratonga samihafa. Marihina fa FISINTAHANA Ny enti-manana dia lafin-javatra manan-danja amin'ny fananganana fampiharana azo scalable. Satria mahazo fifamoivoizana bebe kokoa ny ampahany amin'ny rafitra, dia azontsika zaraina izany mba hifehezana ny fomba fanombanana ny serivisy mifototra amin'ny lamin'ny fifamoivoizana manokana.

Izany no antony tiako hihevitra ny mpanjifa ho misaraka amin'ny API. Izany dia manamora ny fieritreretana momba ny fampivelarana sehatra maro: tranonkala, tranonkala finday, iOS, Android, fampiharana desktop, serivisy an'ny antoko fahatelo, sns. Mpanjifa mampiasa API iray ihany izy rehetra.

Ohatra, ankehitriny ny mpampiasa anay matetika mangataka ny hamoaka fampiharana finday. Raha manasaraka ny mpanjifa sy ny singa API ianao dia ho mora kokoa izany.

Toy izao ny endriky ny rafitra toy izany:

Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Mpampiasa 1000: ampio mpifandanja entana

Mijery ny zava-misy. Ireo mpampiasa Graminsta dia mampakatra sary bebe kokoa. Mitombo ihany koa ny fisoratana anarana. Ny mpizara API tokana anay dia sahirana amin'ny fanarahana ny fifamoivoizana rehetra. Mila vy bebe kokoa!

Hevitra tena mahery vaika ny load balancer. Ny hevi-dehibe dia ny fametrahana ny mpandanja entana eo anoloan'ny API, ary mizara ny fifamoivoizana amin'ny trangan'asa tsirairay. Toy izao ny fandrefesanay mitsivalana, midika izany fa manampy mpizara bebe kokoa miaraka amin'ny kaody mitovy izahay, mampitombo ny isan'ny fangatahana azonay atao.

Hametraka mpifandanja entana misaraka isika eo anoloan'ny mpanjifa tranonkala sy eo anoloan'ny API. Midika izany fa afaka mihazakazaka tranga maro ianao amin'ny alΓ lan'ny code API sy code client web. Ny mpandrindra entana dia hitarika ny fangatahana amin'ny mpizara izay tsy dia misy entana.

Eto isika dia mahazo tombony manan-danja iray hafa - redundancy. Rehefa tsy nahomby ny tranga iray (angamba be loatra na nianjera), dia tavela miaraka amin'ny hafa izay manohy mamaly ny fangatahana miditra. Raha ohatra iray ihany no miasa, dia ho rava ny rafitra manontolo raha sendra tsy fahombiazana.

Manome scaling mandeha ho azy koa ny load balancer. Azontsika atao ny manitsy azy io mba hampitomboana ny isan'ny tranga alohan'ny entana be indrindra, ary hampihena izany rehefa matory ny mpampiasa rehetra.

Miaraka amin'ny mpandanja entana, ny haavon'ny API dia azo ampitomboina amin'ny fotoana tsy voafetra, manampy tranga vaovao fotsiny rehefa mitombo ny isan'ny fangatahana.

Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Fanamarihana. Amin'izao fotoana izao dia mitovy amin'ny orinasa PaaS toa an'i Heroku na Elastic Beanstalk ao amin'ny AWS ny rafitra misy antsika (izay no mahatonga azy ireo ho malaza). Heroku dia mametraka ny angon-drakitra amin'ny mpampiantrano misaraka, mitantana mpandrindra entana mandeha ho azy, ary mamela anao hampiantrano ny mpanjifa tranonkala misaraka amin'ny API. Antony lehibe hampiasana an'i Heroku ho an'ny tetikasa na fanombohana dingana voalohany izany - azonao avy ao anaty boaty ny serivisy fototra rehetra.

Mpampiasa 10: CDN

Angamba tokony ho nataontsika hatrany am-boalohany izany. Ny fanodinana ny fangatahana sy ny fanekena sary vaovao dia manomboka manenjana be loatra ny lohamilina.

Amin'ity dingana ity dia mila mampiasa serivisy rahona ianao amin'ny fitehirizana votoaty static - sary, horonan-tsary ary maro hafa (AWS S3 na Digital Ocean Spaces). Amin'ny ankapobeny, ny API-nay dia tokony hisoroka ny fikarakarana zavatra toy ny fandefasana sary sy ny fandefasana sary amin'ny mpizara.

Ny tombony iray hafa amin'ny fampiantranoana rahona dia ny CDN (AWS dia miantso an'io add-on Cloudfront io, fa maro ny mpamatsy fitahirizana rahona no manolotra izany ivelan'ny boaty). Ny CDN dia mitahiry ho azy ny sarintsika any amin'ireo foibe angona isan-karazany manerana izao tontolo izao.

Na dia mety ho any Ohio aza no misy ny foibenay lehibe indrindra, raha misy olona mangataka sary avy any Japana, dia hanao dika mitovy ny mpamatsy rahona ary hitahiry izany ao amin'ny foibe angona Japoney. Ny olona manaraka izay mangataka ity sary ity any Japana dia hahazo izany haingana kokoa. Zava-dehibe izany rehefa miara-miasa amin'ny rakitra lehibe, toy ny sary na horonan-tsary, izay mila fotoana ela vao misintona sy mampita manerana ny planeta.

Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Mpampiasa 100: fampitomboana ny sosona angona

Nanampy betsaka ny CDN: mitombo haingana ny fifamoivoizana. Vao nisoratra anarana taminay ilay bilaogera lahatsary malaza Mavid Mobrick ary namoaka ny β€œtantarany”, araka ny filazan'izy ireo. Noho ny mpanelanelana entana, ny fampiasana ny CPU sy ny fitadidiana amin'ny mpizara API dia mijanona ho ambany (mihoatra ny tranga API folo), saingy manomboka mahazo fe-potoana be dia be amin'ny fangatahana isika ... avy aiza ireo fahatarana ireo?

Ny fandavahana kely amin'ny metrika dia hitantsika fa 80-90% ny CPU ao amin'ny server database. Efa eo amin'ny fetra isika.

Ny fanamafisam-peo ny sosona angon-drakitra angamba no ampahany sarotra indrindra amin'ny equation. Ny mpizara API dia manolotra fangatahana tsy misy fanjakana, noho izany dia manampy ohatra API bebe kokoa izahay. orona ny maro an'isa tsy afaka manao izany ny database. Hiresaka momba ny rafitra fitantanana angon-drakitra mifandraika malaza (PostgreSQL, MySQL, sns.).

Caching

Ny iray amin'ireo fomba mora indrindra hampitomboana ny fampandehanana ny angon-drakitray dia ny fampidirana singa vaovao: ny sosona cache. Ny fomba fitehirizana mahazatra indrindra dia fitahirizana firaketana an-tsoratra manan-danja ao anaty fitadidiana, toy ny Redis na Memcached. Ny ankamaroan'ny rahona dia manana dikan-teny voatanisa amin'ireto serivisy ireto: Elasticache amin'ny AWS sy Memorystore amin'ny Google Cloud.

Ny cache dia ilaina rehefa misy serivisy manao antso miverimberina amin'ny angon-drakitra mba haka vaovao mitovy. Amin'ny ankapobeny, indray mandeha ihany no miditra amin'ny angon-drakitra, mitahiry ny fampahalalana ao amin'ny cache, ary tsy hikasika azy intsony.

Ohatra, ao amin'ny serivisy Graminsta, isaky ny misy olona mankany amin'ny pejin'ny mombamomba ny kintana Mobrik, dia manontany ny angon-drakitra momba ny mombamomba azy ny mpizara API. Miverimberina foana izany. Satria ny mombamomba ny mombamomba an'i Mobrik dia tsy miova isaky ny fangatahana, dia tsara ho an'ny cache izany.

Hakasika ny valiny avy amin'ny angon-drakitra ao amin'ny Redis amin'ny alΓ lan'ny fanalahidy user:id miaraka amin'ny fe-potoana manankery 30 segondra. Ankehitriny, rehefa misy olona mankany amin'ny mombamomba an'i Mobrik, dia manamarina an'i Redis aloha isika, ary raha misy ny angon-drakitra dia mamindra azy mivantana avy amin'ny Redis. Amin'izao fotoana izao, ny fangatahana amin'ny mombamomba malaza indrindra amin'ny tranokala dia saika tsy mitondra ny angon-drakitray.

Ny tombony hafa amin'ny ankamaroan'ny serivisy caching dia ny mora kokoa ny mizana noho ny mpizara database. Redis dia manana mode Redis Cluster naorina. Mitovy amin'ny mpandrindra entana1, mamela anao hizara ny cache Rediso amin'ny milina maro (amin'ny lohamilina an'arivony raha ilaina).

Saika ny rindranasa midadasika rehetra dia mampiasa caching; ampahany tanteraka amin'ny API haingana izy io. Ny fanodinana fanontaniana haingana kokoa sy ny kaody mamokatra kokoa dia zava-dehibe avokoa, saingy tsy misy cache dia saika tsy azo atao ny manefa serivisy amin'ny mpampiasa an-tapitrisany.

Vakio Replika

Rehefa nitombo be ny isan'ny fanontaniana ao amin'ny angon-drakitra, zavatra iray hafa azontsika atao dia ny manampy dika mitovy amin'ny rafitra fitantanana ny angona. Miaraka amin'ireo serivisy voatanisa voalaza etsy ambony dia azo atao amin'ny tsindry iray izany. Ny kopia vakiana dia hijanona amin'izao fotoana izao ao amin'ny tahiry fototra ary azo alaina amin'ny fanambarana SELECT.

Izao ny rafitray:

Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Next Steps

Raha mbola mitombo ny fampiharana, dia hanohy hanasaraka ny serivisy izahay mba hanesorana azy ireo tsy miankina. Ohatra, raha manomboka mampiasa Websockets isika, dia misy dikany ny misintona ny kaody fanodinana Websockets ho serivisy manokana. Azontsika atao ny mametraka izany amin'ny tranga vaovao ao ambadiky ny mpifandanja entana, izay afaka miakatra sy midina mifototra amin'ny fifandraisana amin'ny Websockets misokatra ary na inona na inona ny isan'ny fangatahana HTTP.

Hitohy ihany koa ny ady amin'ny famerana eo amin'ny sehatry ny angon-drakitra. Amin'ity dingana ity no fotoana hianarana ny fizarazarana sy ny sharding. Ireo fomba roa ireo dia mitaky overhead fanampiny, saingy mamela anao hanatsara ny angon-drakitra saika mandritra ny fotoana tsy voafetra.

Te-hametraka serivisy fanaraha-maso sy fanadihadiana toy ny New Relic na Datadog ihany koa izahay. Izany dia hanampy anao hamantatra fanontaniana miadana sy hahatakatra hoe aiza no ilaina fanatsarana. Rehefa mihalehibe isika dia te hifantoka amin'ny fitadiavana ny bottleneck sy ny fanafoanana azy ireoβ€”matetika amin'ny fampiasana ny hevitra sasany avy amin'ny fizarana teo aloha.

loharanom-baovao

Ity lahatsoratra ity dia aingam-panahy avy amin'ny iray amin'ireo lahatsoratra ankafiziko momba ny scalability avo. Te-hanao manokana kely kokoa ny lahatsoratra ho an'ny dingana voalohany amin'ny tetikasa aho ary hamaha azy amin'ny mpivarotra iray. Aza hadino ny mamaky raha liana amin'ity lohahevitra ity ianao.

Fanamarihana ambany pejy

  1. Na dia mitovitovy amin'ny fizarana entana amin'ny tranga maro aza, ny fampiharana fototra amin'ny cluster Redis dia tsy mitovy amin'ny mpandrindra entana. [miverina]

Ahoana ny fampitomboana mpampiasa 1 ka hatramin'ny 100

Source: www.habr.com

Add a comment