Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Batho ba bangata ba qalang ba fetile ho sena: matšoele a basebelisi ba bacha ba ngolisa letsatsi le leng le le leng, 'me sehlopha sa nts'etsopele se sokola ho boloka tšebeletso e ntse e sebetsa.

Ke bothata bo botle ho ba le bona, empa ho na le lintlha tse fokolang tse hlakileng ho web mabapi le mokhoa oa ho lekanya ts'ebeliso ea webo ka hloko ho tloha ho letho ho isa ho basebelisi ba likete tse makholo. Hangata ho na le tharollo ea mollo kapa tharollo ea botlolo ('me hangata ka bobeli). Ka hona, batho ba sebelisa mekhoa e metle ho theola morero oa bona oa boits'oaro hore e be ntho e tebileng haholo.

Ha re leke ho sefa litaba ebe re ngola foromo ea mantlha. Re tlo holisa sebaka sa rona se secha sa ho arolelana linepe sa Graminsta mohato ka mohato ho tloha ho basebelisi ba 1 ho isa ho 100.

Ha re ngole hore na ke mehato efe e tobileng e lokelang ho nkoa ha bamameli ba eketseha ho fihla ho batho ba 10, 100, 1000, 10 le 000.

Mosebelisi a le mong: mochini o le mong

Hoo e batlang e le sesebelisoa se seng le se seng, ekaba sebaka sa marang-rang kapa sesebelisoa sa mohala, se na le likarolo tse tharo tsa bohlokoa:

  • API
  • database
  • moreki (sesebelisoa sa mohala ka boeona kapa sebaka sa marang-rang)

Database e boloka data e tsitsitseng. API e fana ka likopo ho le ho potoloha data ena. Moreki o fetisetsa data ho mosebelisi.

Ke fihletse qeto ea hore ho bonolo haholo ho bua ka ho lekanya kopo haeba, ho ea ka pono ea meralo, mekhatlo ea bareki le ea API e arohane ka ho feletseng.

Ha re qala ho theha kopo, likarolo tsohle tse tharo li ka tsamaisoa ho seva se le seng. Ka litsela tse ling, sena se tšoana le tikoloho ea rona ea nts'etsopele: moenjiniere a le mong o tsamaisa database, API, le moreki mochining o le mong.

Ka khopolo, re ka e sebelisa marung ka mohlala o le mong oa DigitalOcean Droplet kapa AWS EC2, joalo ka ha ho bonts'itsoe ka tlase:
Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100
Ha ho se ho boletsoe, haeba ho tla ba le basebelisi ba fetang a le mong sebakeng sa marang-rang, hoo e ka bang kamehla hoa utloahala ho nehelana ka database.

Basebelisi ba 10: ho tsamaisa database ho ea boemong bo arohaneng

Ho arola database ho lits'ebeletso tse laoloang joalo ka Amazon RDS kapa Digital Ocean Managed Database ho tla re thusa ka nako e telele. E bitsa chelete e ngata ho feta ho iketsetsa mochine o le mong kapa mohlala oa EC2, empa ka lits'ebeletso tsena u fumana lisebelisoa tse ngata tse molemo ka ntle ho lebokose tse tla ba molemo nakong e tlang: bekapo ea libaka tse ngata, bala likopi, othomathike. backups, le tse ling.

Sena ke kamoo tsamaiso e shebahalang kateng hona joale:
Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Basebelisi ba 100: ho isa moreki boemong bo fapaneng

Ka lehlohonolo, basebelisi ba rona ba pele ba ratile haholo kopo ea rona. Sephethephethe se ntse se tsitsa, kahoo ke nako ea ho isa moreki sebakeng se fapaneng. Ho lokela ho hlokomeloa hore karohano mekhatlo ke karolo ea bohlokoa ea ho aha ts'ebeliso e mpe. Ha karolo e 'ngoe ea tsamaiso e fumana sephethephethe se eketsehileng, re ka se arola ho laola hore na sekala sa tšebeletso se itšetlehile ka mekhoa e itseng ea sephethephethe.

Ke ka lebaka lena ke ratang ho nahana ka moreki a arohane le API. Sena se etsa hore ho be bonolo haholo ho nahana ka ho nts'etsapele liforomo tse ngata: web, mobile web, iOS, Android, lik'homphieutha tsa lik'homphieutha, litšebeletso tsa mekhatlo ea boraro, joalo-joalo kaofela ke bareki ba sebelisang API e tšoanang.

Mohlala, joale basebelisi ba rona hangata ba kopa ho lokolla sesebelisoa sa mehala. Haeba u arola moreki le mekhatlo ea API, sena se ba bonolo.

Sena ke kamoo tsamaiso e joalo e shebahalang kateng:

Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Basebelisi ba 1000: eketsa tekanyo ea mojaro

Lintho li tsamaea hantle. Basebelisi ba Graminsta ba kenya linepe tse ngata le ho feta. Palo ea batho ba ingolisang le eona e ntse e eketseha. Seva ea rona e le 'ngoe ea API e thatafalloa ke ho tsamaisana le sephethephethe sohle. U hloka tšepe e eketsehileng!

Load balancer ke mohopolo o matla haholo. Taba ea bohlokoa ke hore re beha balancer ea mojaro ka pel'a API, 'me e aba sephethephethe ho maemo a ts'ebeletso ea motho ka mong. Ena ke tsela eo re lekanyang ka eona ka mokhoa o otlolohileng, ho bolelang hore re eketsa li-server tse ngata ka khoutu e ts'oanang, re eketsa palo ea likopo tseo re ka li etsang.

Re tla beha li-balancers tsa mojaro tse arohaneng ka pel'a moreki oa marang-rang le ka pel'a API. Sena se bolela hore o ka tsamaisa maemo a mangata o sebelisa khoutu ea API le khoutu ea bareki ba webo. Balancer ea mojaro o tla lebisa likopo ho seva e sa laoloang haholo.

Mona re fumana molemo o mong oa bohlokoa - redundancy. Ha ketsahalo e 'ngoe e hloleha (mohlomong e imetsoe kapa e soahlamane), re sala le tse ling tse tsoelang pele ho arabela likopo tse tlang. Haeba ho ne ho e-na le ketsahalo e le 'ngoe feela e sebetsang, joale haeba ho hlōleha, tsamaiso eohle e ne e tla senyeha.

The mojaro balancer e boetse e fana ka othomathiki scaling. Re ka e hlophisa ho eketsa palo ea liketsahalo pele ho ts'ebetso e phahameng, le ho e fokotsa ha basebelisi bohle ba robetse.

Ka tekanyo ea mojaro, boemo ba API bo ka fokotsoa ka nako e sa lekanyetsoang, ho eketsa maemo a macha ha palo ea likopo e ntse e eketseha.

Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Hlokomela. Hona joale tsamaiso ea rona e tšoana haholo le seo lik'hamphani tsa PaaS tse kang Heroku kapa Elastic Beanstalk ho AWS li fanang ka tsona ka ntle ho lebokose (ke ka lebaka leo li tummeng haholo). Heroku e beha database ho moamoheli ea arohaneng, e laola sekala sa boima ba auto-scaling, mme e u lumella ho amohela moreki oa marang-rang ka thoko ho API. Lena ke lebaka le letle la ho sebelisa Heroku bakeng sa merero ea pele kapa ho qala - o fumana lits'ebeletso tsohle tsa mantlha ka ntle ho lebokose.

Basebelisi ba 10: CDN

Mohlomong re ka be re entse sena ho tloha qalong. Ho sebetsana le likopo le ho amohela linepe tse ncha ho se ho qala ho ba le mathata a mangata ho li-server tsa rona.

Mothating ona, o hloka ho sebelisa ts'ebeletso ea leru bakeng sa ho boloka litaba tse tsitsitseng - litšoantšo, livideo le tse ling tse ngata (AWS S3 kapa Digital Ocean Spaces). Ka kakaretso, API ea rona e lokela ho qoba ho sebetsana le lintho tse kang ho sebeletsa litšoantšo le ho kenya litšoantšo ho seva.

Molemo o mong oa ho amohela leru ke CDN (AWS e bitsa tlatsetso ena Cloudfront, empa bafani ba bangata ba polokelo ea leru ba fana ka eona ka ntle ho lebokose). CDN e boloka litšoantšo tsa rona ka bo eona litsing tse fapaneng tsa data lefatšeng ka bophara.

Le hoja setsi sa rona sa boitsebiso se ka sehloohong se ka ba teng Ohio, haeba motho e mong a kōpa setšoantšo ho tsoa Japane, mofani oa maru o tla etsa kopi le ho e boloka setsing sa bona sa boitsebiso ba Japane. Motho ea latelang ea kopang setšoantšo sena Japane o tla se fumana kapele. Sena se bohlokoa ha re sebetsa ka lifaele tse kholo, joalo ka linepe kapa livideo, tse nkang nako e telele ho khoasolla le ho fetisoa lefatšeng ka bophara.

Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Basebelisi ba 100: ho eketsa sekhahla sa data

CDN e thusitse haholo: sephethephethe se ntse se hōla ka lebelo le feletseng. Sebapali se tummeng sa video Mavid Mobrick o sa tsoa ngolisa le rona mme a beha "pale" ea hae, joalo ka ha ba re. Ka lebaka la tekanyo ea mojaro, CPU le ts'ebeliso ea memori ho li-server tsa API li bolokoa li le tlase (maemo a leshome a API a sebetsa), empa re qala ho fumana nako e ngata ea likopo ... ho lieha hoa ho tsoa hokae?

Ha re cheka hanyane ka har'a metrics, rea bona hore CPU ho seva sa database ke 80-90% e laetsoeng. Re pheletsong.

Ho lekanya lera la data mohlomong ke karolo e thata ka ho fetisisa ea equation. Li-server tsa API li fana ka likopo tse se nang palo, kahoo re eketsa maemo a mang a API. Nko bongata database ha e khone ho etsa sena. Re tla bua ka litsamaiso tse tsebahalang tsa taolo ea database (PostgreSQL, MySQL, joalo-joalo).

Caching

E 'ngoe ea litsela tse bonolo ka ho fetisisa tsa ho eketsa ts'ebetso ea database ea rona ke ho hlahisa karolo e ncha: cache layer. Mokhoa o atileng haholo oa ho boloka "caching" ke lebenkele la lirekoto tsa boleng ba memori, joalo ka Redis kapa Memcached. Maru a mangata a na le mofuta o laoloang oa lits'ebeletso tsena: Elasticache ho AWS le Memorystore ho Google Cloud.

Cache e na le thuso ha tšebeletso e etsa mehala e mengata khafetsa ho database ho fumana lintlha tse tšoanang. Ha e le hantle, re fumana database hanngoe feela, re boloka tlhahisoleseling ka har'a cache, 'me u se ke ua e ama hape.

Mohlala, ts'ebeletso ea rona ea Graminsta, nako le nako ha motho a ea leqepheng la profil ea naleli ea Mobrik, seva sa API se botsa database bakeng sa tlhahisoleseling ho tsoa profilaneng ea hae. Sena se etsahala khafetsa. Kaha tlhaiso-leseling ea boemo ba Mobrik ha e fetohe ha kopo e 'ngoe le e 'ngoe, e ntle haholo bakeng sa caching.

Re tla boloka liphetho ho tsoa ho database ho Redis ka senotlolo user:id ka nako e nepahetseng ea metsotsoana e 30. Hona joale, ha motho a e-ea ho boemo ba Mobrik, re qala ho hlahloba Redis, 'me haeba data e le teng, re e fetisetsa ka ho toba ho tloha Redis. Hona joale likopo ho profil e tsebahalang haholo sebakeng sa marang-rang ha li kenye database ea rona.

Molemo o mong oa litšebeletso tse ngata tsa caching ke hore li bonolo ho li fokotsa ho feta li-server tsa database. Redis e na le mokhoa o hahelletsoeng oa Redis Cluster. Ho tšoana le ho leka-lekanya mojaro1, e u lumella ho tsamaisa cache ea hau ea Redis ho metjhini e mengata (ho pholletsa le li-server tse likete ha ho hlokahala).

Hoo e ka bang lits'ebetso tsohle tse kholo li sebelisa caching; ke karolo ea bohlokoahali ea API e potlakileng. Ts'ebetso ea lipotso tse potlakileng le khoutu e hlahisang litholoana kaofela li bohlokoa, empa ntle le cache ho batla ho sa khonehe ho eketsa ts'ebeletso ho limilione tsa basebelisi.

Bala Replicas

Ha palo ea lipotso ho database e eketsehile haholo, ntho e 'ngoe hape eo re ka e etsang ke ho eketsa likopi tse baloang ho sistimi ea taolo ea database. Ka litšebeletso tse laoloang tse hlalositsoeng ka holimo, sena se ka etsoa ka ho tobetsa e le 'ngoe. Setšoantšo se baloang se tla lula se le teng sebakeng sa polokelo ea litaba mme se fumaneha bakeng sa KHETHA lipolelo.

Hona joale tsamaiso ea rona ke ena:

Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Mehato e latelang

Ha ts'ebeliso e ntse e eketseha, re tla tsoelapele ho arola lits'ebeletso ho li phahamisa ka boikemelo. Ka mohlala, haeba re qala ho sebelisa Websockets, joale hoa utloahala ho hula khoutu ea ts'ebetso ea Websockets tšebeletsong e fapaneng. Re ka e beha maemong a macha ka mor'a sekala sa rona sa mojaro, se ka nyolohang le ho theosa ho ipapisitse le likhokahano tse bulehileng tsa Websockets ho sa tsotelehe palo ea likopo tsa HTTP.

Re tla boela re tsoele pele ho loantša lithibelo boemong ba database. Ke mothating ona moo ke nako ea ho ithuta karohano ea database le sharding. Mekhoa ena ka bobeli e hloka holimo, empa e u lumella ho lekanya database hoo e ka bang ka nako e sa lekanyetsoang.

Re boetse re batla ho kenya ts'ebeletso ea ho beha leihlo le ea analytics joalo ka New Relic kapa Datadog. Sena se tla u thusa ho tseba lipotso tse liehang le ho utloisisa moo ntlafatso e hlokahalang. Ha re ntse re lekanya, re batla ho tsepamisa maikutlo ho fumaneng litšitiso le ho li felisa-hangata re sebelisa tse ling tsa mehopolo e tsoang likarolong tse fetileng.

Mohloli

Poso ena e bululetsoe ke e mong oa lintho tseo ke li ratang haholo mabapi le scalability e phahameng. Ke ne ke batla ho etsa hore sengoloa se hlake haholoanyane bakeng sa mekhahlelo ea pele ea merero le ho e lokolla ho tsoa ho morekisi a le mong. Etsa bonnete ba hore u bala haeba u thahasella sehlooho sena.

Mengolo e botlaaseng ba leqephe

  1. Leha e ts'oana mabapi le kabo ea mojaro maemong a mangata, ts'ebetsong ea motheo ea sehlopha sa Redis e fapane haholo le sekala sa mojaro. [khutlisa]

Mokhoa oa ho lekanya ho tloha ho 1 ho isa ho basebelisi ba 100

Source: www.habr.com

Eketsa ka tlhaloso