Quomodo scandere ab 1 ad 100 users

Multae satuiae hoc perfecerunt: turbae novorum usorum cottidie subcriptio, et turmae evolutionis certamina ad ministerium currendi custodiendum.

Pulchrum problema est habere, sed parum clarae notitiae in interreti sunt quomodo diligenter applicationem telam ex nihilo ad centena milia usorum conscendant. Typice sunt aut solutiones ignis aut solutiones bottleneck (et saepe utrumque). Ergo homines magis technicas clichedas utuntur ad scandendum suum amateur project in re gravia.

Studeamus informationes eliquare et formulam fundamentalem scribere. Imus ut novam nostram photographicam photographicam participationem situs Graminsta gradatim ab 1 ad 100 utentium conscendamus.

Quae specificae actiones inscribamus oportet sumi cum auditorium ad X, 10, 100, 1000 et 10 hominum crescit.

1 user: 1 machina

Fere omnis applicatio, sive situs sive usus mobilis, tria principalia habet:

  • API
  • database
  • clientis (se mobile application aut website)

In thesauris datorum persistentes datae sunt. API petitionibus inservit et circa hanc datam. Cliens notitias ad usorem transmittit.

Conclusum venio multo facilius loqui de applicatione scalarum si, ex parte architecturae, client et API entia penitus separata sunt.

Cum primum applicationem aedificare incipimus, omnia tria in eodem servo currere possunt. Nonnullis modis hoc environment progressioni nostrae simile est: unus machinator datorum, API, et client in eadem machina decurrit.

In speculatione eam in nube explicare potuimus in una Droplet Oceana seu AWS EC2, ut infra ostendemus:
Quomodo scandere ab 1 ad 100 users
Cum hoc dixit, si plures usores erunt in situ, semper fere sensum efficit ut lavacrum database dedicandum.

X users: movere database ut separatum

Discindit database in officia administrata sicut Amazon RDS vel Digital Ocean Managed Database bene nobis serviet diu. Est paulo carior quam auto-obsidens in una machina vel EC2 exempli gratia, sed cum his officiis multum utiles extensiones e capsula quae in futuro veniet in promptu veniet: multi-regionis tergum, replicas lege, latae sententiae. tergum, more.

Haec ratio nunc similis est:
Quomodo scandere ab 1 ad 100 users

C users: movere ad clientem gradu separato

Fortunate, primi utentes nostri applicationem vere probaverunt. Negotiatio stabilior fit, ut tempus clientem ad gradum separatum moveret. Notandum quod separatio res praecipuus aspectus aedificandi scalable applicationis est. Cum una pars systematis plus mercaturae accipit, eam partiri possumus quomodo servicium squamarum secundum formas specificas negotiationis fundatur.

Haec causa placet de cliente disiunctim ab API cogitare. Inde perfacile est cogitare de evolvendis pro multis suggestis: interreti, mobiles telae, iOS, Android, applicationes desktop, officia tertia factionis etc. Omnes iusti clientes eodem API utentes.

Exempli gratia, nunc plerumque utentes nostri rogant applicationem mobilem dimittere. Si clientem et API entia separes, facilior fit.

Hoc est quod talis ratio similis est:

Quomodo scandere ab 1 ad 100 users

1000 users: onus librarius adde

Rerum sunt quaerat itaque. Utentes graminsta magis magisque imagines discunt. Crescit etiam numerus registrations. Sola nostra API servo Difficulter sustentationem cum omni negocio habet. Ferri eget lorem!

Onus librarius conceptus potentissimus est. Praecipua notio est quod libratorem onus ante API ponimus, et negotiatio singulis instantiis muneris distribuit. Ita horizontaliter scandimus, plures servientes eodem codice addimus, numerum petitionum augendo processum facere possumus.

Ponamus librarios separatos in onere ante clientem interreti et ante API. Hoc modo plures instantiae currere potes API codicem ac telam clientem currens. Onus librarius petitiones minus oneratas servo diriget.

Hic alia habetur utilitas momenti - redundantia. Cum una instantia deficit (fortasse cumulatur vel ingruat), relinquimur cum aliis quae pergunt respondere petitionibus advenientis. Si una tantum instantia laborat, tunc in casu defectio totius systematis ruinaret.

Onus librarius etiam scalam latae sententiae praebet. Configurare possumus eam ad numerum instantiarum ante apicem oneris augendum, et minui cum omnes usores dormiunt.

Cum librario onere, API planities paene indefinite escendere potest, modo additis novis instantiis prout numerus petitionum augetur.

Quomodo scandere ab 1 ad 100 users

Nota. Nunc ratio nostra simillima est illis societatibus PaaS sicut Heroku vel Elastica Beanstalk in AWS e archa offerunt (quae causa tam popularis sunt). Heroku datorum in singulari hospite ponit, libratorem oneris auto- scalis administrat, et te clientem interretialem ab API separatim hospitari sinit. Magna haec ratio est, ut Heroku pro praematuro inceptis vel inceptis utendi - omnia praecipua officia ex pixide accipias.

10 users: CDN

Hoc fortasse ab initio debuimus. Petitiones processus et novas imagines accipientes incipit nimium iactare nostris servientibus.

Hac in scaena, nube uti debes ad contenta stataria - imagines, videos et multo magis (AWS S3 vel Digital Oceani spatia). In genere, API nostri vitare debent res tractandas, sicut imagines servientes et imagines impositiones ministranti.

Alia utilitas nubis obnoxius est CDN (AWS vocat hoc addendi in Cloudfront, sed multae nubes provisores repositionis illud ex archa offerunt). Automatice CDN imagines nostras in variis centris circa mundum refert.

Etsi centrum principale notitiae nostrae in Ohio collocari possunt, si quis imaginem ex Iaponia petierit, provisor nubes exemplum faciet et in eorum centro notitiarum Iaponica condet. Proximus homo qui hanc imaginem petit in Iaponia multo citius eam recipiet. Hoc magni momenti est cum magnis fasciculis laboramus, sicut imagines vel videos, quae longum tempus per planetam trahere ac transmittere possunt.

Quomodo scandere ab 1 ad 100 users

100 users: scalas data accumsan

CDN multum adiuvit: negotiatio pleno cursu crescit. Celebris video blogger Mavid Mobrick iustus relatus nobiscum et in "fabulam" suam posuit, ut aiunt. Propter onus librarium, CPU et usus memoriae in API servientibus humile servatur (instantiarum decem API currentium), sed incipimus multum temporis in petitionibus ... unde hae morae oriuntur?

Modicum in metricos fodientes, videmus CPU in servo datorum 80-90% oneratum esse. Ad terminum sumus.

Data iacuit scalas fortasse difficillima pars aequationis est. API servientibus petitionibus stateless serviunt, ideo instantias API plus simpliciter addimus. Nasus maioris databases hoc facere non possunt. Loquemur de popularibus relationibus database systematis administratione (PostgreSQL, MySQL, etc.).

caching

Una facillima via ad augendam datorum nostrorum observantiam est nova pars introducendi: tabulatum latibulum. Frequentissima methodus caching est in memoria promptuarium praecipuorum praecipuorum, ut Redis vel Memcached. Pleraque nubes versionem accuratam habent horum officiorum: Elasticache in AWS et Memorystore on Google Cloud.

Cache utilis est cum obsequium plures repetitas vocat ad datorum notitias ut eadem capiat. Essentialiter datorum semel tantum accessimus, informationes in cella repone nec iterum tange.

Exempli gratia, in nostro Graminsta servitio, quotiescumque aliquis ad paginam profile stellae Mobrik accedit, API server datorum informationes de suo profile quaerit. Hoc etiam atque etiam accidit. Cum Mobrik's profile informationes cum unaquaque petitione non mutat, optimum est ad caching.

Nos proventus ex database in Redis per key user:id cum validitate periodum XXX seconds. Nunc, cum quis ad profile Mobrik accedit, Redis primum inspicimus, et si ibi notitia est, simpliciter eam directe e Redis transfermus. Petitiones nunc ad profile popularis in situ propemodum datorum nostrorum ne oneraveris.

Alia utilitas plurium officiorum cachinnorum est quod faciliores sunt ad scandendum quam servitores datorum. Redis constructum-in Redis Botri modum habet. Similes onus librari1, per plures machinas (trans milia ministrantium si opus fuerit) distribuere tibi permittit.

Fere omnia magnarum applicationum usus caching, pars absolute integralis ieiunii API est. Celerius quaesitum processui et codicem uberiorem omnes magni momenti sunt, sed sine cella fieri fere impossibile est ut decies centena millia usorum conscendat.

Read Replicas

Cum numerus queritatum ad database multum crevit, unum plus facere possumus replicationes legere in systemate systematis database. Cum officia administrata supra scripta sunt, hoc in una clica fieri potest. Replica lecta current in principali database remanebit et in propositionibus selectis praesto est.

Hic nunc ratio nostra est:

Quomodo scandere ab 1 ad 100 users

praeterea actus

Prout applicatio pergit ad scalam, officia separare pergamus ut ea independenter ascendamus. Exempli gratia, si incipimus uti Websockets, tunc sensum efficit ut Websockets in codicem separatum traheret. In novis instantiis ponere possumus post proprium onus libratorem, qui sursum deorsumque scandere potest secundum nexus interretiales apertis et cuiuscumque numeri HTTP petitionum.

Etiam restrictiones in gradu datorum pugnare perget. In hac scaena tempus est ut discendi causa datorum partitionem et cessionem adhibendi. Ambae accessus supra caput additicium requirunt, sed te in infinitum paene datorum conscendere permittam.

Volumus etiam ut opera vigilantia et analytica instituant sicut Novae Reliciae vel Datadog. Hoc adiuvabit ut lentissimas interrogationes cognoscas et intelleges ubi emendatio opus sit. Dum scandimus, intendere volumus utres utres inveniendo et eas eliminando – saepe aliquibus ideis e sectionibus superioribus utentes.

fontibus

This post is inspiravit ab uno meus ventus stipes de magno scalability. Articulum paulo subtilius facere volui pro rudimentis inceptis et ab uno venditore solvere. Lege fac, si hoc loco interest.

V.

  1. Etsi similis in terminis oneris distributionis per plures instantias, substrata exsecutio in redis botri multum differt ab onere librari. [redire]

Quomodo scandere ab 1 ad 100 users

Source: www.habr.com

Add a comment