The Slashdot Effect

The Slashdot Effect

Днес в 12:41 мин CloudStrap се запозна отблизо с популярния Slashdot Effect.

Наш клиент, който стандартно има трафик от около 10 MBps (Megabits per second) за порядъка от няколко секунди достигна до 100MBps (Megabits per second) легитимен трафик, което е пик на трафика 10 пъти за няколко секунди.

Ако ви е интересно да видите как изглеждаше натоварването, можете видите тази снимка

Натоварването продължи 27 минути с малки сътресения, за предотвратяването на които ще споделя няколко добри практики.

Добри практики

Когато решите, че искате вашето уеб приложение или сайт да скалира хоризонтално трябва да имате на ум няколко неща:

1 - Отделете Уеб Сървъра и Базата Данни на 2 или повече отделни сървъра/контейнера

2 - Добре е Базата Данни да бъде настроена в репликация или ако е по-натоварена в клъстър. Всички модерни бази данни поддържат репликация и клъстеризация в днешно време.

3 - Старайте се да поддържате Уеб Сървърите си Stateless. Това ще даде възможност да се размножават при нужда.

4 - Изнесете статичното съдържание като CSS, JS, Images и UGC (User Generated Content) на Storage Solution или Storage Provider. Това ще ви помогне да имате Stateless Уеб Сървъри, които ще скалират много по-бързо хоризонтално. Особено когато има пик и системите са натоварени.

5 - Използвайте кеширащи механизми за данните, които могат да бъдат кеширани, защото няма смисъл да хабите compute power за обработката на данни при всеки request, ако не се налага.

6 - Оставяйте си буфери, за да може системите ви да реаргират адекватно. Какво означава това. Не дръжте сървърите/контейнерите си натоварени на 90% или повече, защото когато се случи нещо инцидентно буфера, който сте си оставили е прекалено малък. Погрижете се да имате малко по-голям буфер, за да може когато имате пиков трафик системата ви адекватно да реаргира и скалира.

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

В CloudStrap.io

В CloudStrap.io решаваме някои от тези колебания от страна на програмистите, като например:

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

  • Custom инсталации на DataBase Clusters a.k.a Scalable Databases при нужда

  • Custom конфигурация на кеширащи механизми

  • Строгия Git Push механизъм, който презаписва Document Root-а всеки път когато deploy-вате помага за примера, който дадох в точка 3

  • Автоматичното скалиране, което следи requests per container и response time и ги разможава/скалира автоматично при нужда и др.

Финал

CloudStrap.io не забранява на клиентите си да deploy-ват приложенията си както сметнат за по-добре, но възползвайки се от Workflow-а, стандартизираните процеси и добрите практики в CloudStrap.io ще допринесете за безпроблемната работа на вашето приложене/уеб сайт.

Ако имате желание да направите вашите приложения и сайтове Cloud Ready, но имате затруднения, можете да се свържете с нас за безплатна консултация на e-Mail: hello[at]cloudstrap.io или чрез Twitter или Facebook

Сподели в facebook Сподели в twitter Сподели в googleplus
Изпращане Супер!Имаш мейл с линк
за потвърждение!