Мащабируема уеб архитектура

Какво е мащабируемост?
Мащабируемостта е желаното свойство на система, мрежа или процес, което показва нейната способност да реагира и да се адаптира, без да губи качество, или да се справя с непрекъснат растеж на работни места, да бъде подготвен да расте по -голям, без да губи качеството на предлаганите услуги .
Можете да кажете каква е способността на нашата система да поддържа по -голямо натоварване с модификации или разширения, които са разумни по отношение на разходи, време, време и сложност.
Видове мащабируемост
Като цяло можем да говорим за вертикално и хоризонтално мащабиране или комбинация от двете.

Вертикално мащабиране


По същество той се състои в увеличаване на капацитета на един или повече специфични елементи от нашата архитектура, например разширяване на паметта на нашия централен сървър или замяна на процесорите с други с по -висока скорост. В обобщение, увеличете капацитета на сървъра, нещо много често, когато използваме виртуализация и казваме, че по това време сървърът ще разполага с 30% RAM.

Хоризонтално мащабиране


Той е този, който ще опишем подробно в урока, се основава на увеличаване на броя възли, които изпълняват същата задача, като се използват различни видове планиране, например ако имаме наситен уеб сървър, добавяме друг, за да балансира натоварването.
Видове уеб архитектура въз основа на нива.
Ще говорим за архитектури, които могат да се прилагат с Linux системи, като използваме инструменти с отворен код, ще преминем от най-основните към някои доста напреднали, предлагащи хоризонтална мащабируемост и устойчивост на отказ, всички тези архитектури могат да бъдат приложени във всякакви PaaS или със собствена инфраструктура.

1. Архитектура на едно ниво


Това е най -основното от всички, където има само един сървър с Apache и MySQL, който може да бъде достъпен от разстояние. Той е много често срещан на страници с малък марж на посещения или тестови среди, не предлага никаква граница на толерантност към неуспех и е трудно да се използва за растеж хоризонтално.

2. Двустепенна архитектура


Този път отделихме базата данни от уеб сървъра, предлагайки малко толерантност към грешки. По този начин, ако базата данни се провали, уеб сървърът може да предложи съдържание по статичен начин, който не зависи от базата данни. И в случай, че уеб сървърът се повреди, все още можем да получим достъп до информацията, като повдигнем нов уеб сървър отново.Дизайнът предлага няколко недостатъка, тъй като не е много мащабируем дизайн.

3. Тристепенна архитектура


Този път започваме да използваме балансиращ товар, който ще получава всички заявки от потребителите. Този път предлагаме по -мащабируем дизайн, така че ако натоварването ни се увеличи можем да добавим още уеб сървъри и мащабиране. Можем дори да приложим автоматично мащабиране, така че уеб сървърите да се добавят автоматично при определено ниво на натоварване или в час на пик. Проблемът с този дизайн е, че можем да наситим нашата база данни.

4. Четиристепенна архитектура


Сега използваме балансиращ натоварване и memcached, което прави системата по -мащабируема. С този дизайн можем да добавим колкото се може повече бази данни и уеб сървъри, в допълнение към предлагането на отказоустойчивост. Можем да разделим натоварването между базите данни с CASSANDRA предлагаща мулти-възлова реализация. Този дизайн е много по -сложен, но добавям много по -голяма толерантност към грешки и възможност за мащабиране на всичките му нива.

5. Петстепенна архитектура


Съдържанието на уеб страница може да бъде разделено на статично и динамично. Например разделяме уеб слоя на Apache сървър и друг с JAVA приложения, работещи с Jetty или JBoss. Apache предоставя статично съдържание, докато сървърът на приложения обработва динамичното съдържание или в движение. Пример за това може да бъде секцията с често задавани въпроси на уебсайт за поддръжка, тъй като е просто статично съдържание, може да се обработва от APACHE / NGINX.

Увеличете

6. Шестостепенна архитектура


Можем да бъдем малко по -елегантни и да добавим мрежа за доставка на съдържание (CDN), или това, което в AWS е известно CDN на Amazon CloudFrontНапример, имаме уебсайт за електронно обучение и нашите потребители изтеглят Ръководствата в PDF или видео от нашия уебсайт. Можем да запазим цялата тази честотна лента, посветена на изтегляния, Като я предлагаме от CDN, който се грижи за нея, Останалата част от мрежата може да работи в нашата инфраструктура.

Увеличете

ИзводиВиждали сме многостепенни архитектури, които могат да бъдат приложени, в зависимост от уеб трафика. Препоръчително е да се създадат архитектури, мислещи за бъдещето, които могат да мащабират и поддържат отказоустойчивост, като избягват сривове в мрежата поради липса на ресурси или повреда на незаменим възел. Чрез създаването на някои от тези дизайни заедно с други препоръки, като например архивиране и автоматично внедряване, можем да предложим уебсайт с 99,9 временапрекъсване, устойчиво на грешки.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave