Основно съдържание
Компютрите и интернет
Курс: Компютрите и интернет > Раздел 3
Урок 7: Мащабируеми системиМащабируеми системи
Интернет започва съществуването си като мрежа, която свързва университети и изследователски центрове. След като става наличен и достъпен за потребителите, популярността му нараства и сега се използва от приблизително 4,5 милиарда души.
За щастие, протоколите, които захранват интернет и мрежата, са проектирани за мащабируемост. Една мащабируема система е такава, която може да продължи да функционира добре дори когато използването ѝ се увеличи.
Интернет мащабируемост
Какви функционалности увеличават мащабируемостта на интернет?
- Всяко компютърно устройство може да изпраща данни в интернет, ако следва протоколите. Няма бюрократичен процес, който да блокира присъединяването на устройство или да пречи на програмиста да научи как работят протоколите.
- Системата за адресиране IPv6 може да адресира уникално трилион пъти повече устройства от тези, които в момента са свързани към интернет.
- Маршрутизацията е динамична, така че новите рутери могат да се присъединят към мрежа по всяко време и да помогнат за транспортирането на пакети от данни из интернет.
Интернет е проектиран да бъде мащабируем, но никоя система не е мащабируема до безкрайност.
Какво застрашава мащабируемостта на интернет?
Или казано по друг начин, какво може да се обърка, ако всяко едно устройство в света, което е свързано с интернет в момента, се опита да изтегли филм?
Ето няколко идеи:
- Мрежовите връзки имат ограничена честотна лента. Огромно количество данни може да преминава лесно през връзките с много висока честотна лента, но лесно може да претовари връзките с ниска честотна лента, което води до закъснения или "изпуснати" пакети.
- Маршрутизаторите имат ограничена пропускателна способност (количеството данни, което могат да препращат в секунда). Съвременният потребителски рутер има пропускателна способност от около 1 Gbps, докато много по-скъпите корпоративни рутери могат да препращат до 10 Gbps. Средният размер на един филм е от около 1 до 10 GB, така че глобално изтегляне може да се окаже ограничено от рутерите.
- Безжичните рутери често имат ограничение в броя на устройствата, които могат да бъдат свързани към тях, обикновено до 250 устройства. Ако всеки се опита да използва споделена WiFi мрежа по едно и също време (като в университет или библиотека), може просто да не може да се присъедини.
🤔 Въз основа на всичко, научено за интернет до момента, какво друго може да повлияе на неговата мащабируемост, в положителна или в отрицателна посока?
Мащабируемост на уеб приложение
Уеб приложение, което работи върху интернет, също трябва да бъде мащабируемо, независимо дали е приложение за iPhone, уебсайт или мултиплейър игра. Сега, когато има милиарди хора, свързани към интернет, всяко приложение може внезапно да изпита нарастване на потребителите. Ако приложението не се мащабира, за да отговори на търсенето, потребителите могат да се сблъскат със забавяне или пълно прекъсване. 😬
По време на пандемията от COVID-19 хора по цял свят трябваше да си останат у дома, за да се ограничи разпространението на вируса. Много от тях се втурнаха към онлайн услуги за виртуални версии на онова, което им липсва от реалния живот. Тъй като много повече ученици започнаха да учат с Кан Академия, това доведе до нарастване натоварването на сървърите с 250%.
Това нараснало потребление изненада системите ни и някои от тях едва се справяха с внезапния натиск от заявки.
Например системата, която уведомява учениците за нови задания, започна да изостава и вместо след няколко секунди известията се появяваха след няколко минути.
За щастие, нашите инженери бързо увеличиха капацитета на тези системи и повечето потребители така и не усетиха нещо нередно.
Тестване на натоварване
Инженерните екипи могат да се подготвят за пикове в употребата, като извършват тестване на натоварване: симулират големи количества трафик за кратък период от време, за да видят дали системата се задъхва под натоварването. Тестването на натоварване може да разкрие точки на забавяне или ограничения в кода на системата.
Говори ли ти нещо Pokémon Go? Това е мобилна игра, която излиза през лятото на 2016 г. и веднага става хит. Разработчиците на играта правят тестове за натоварване, преди да пуснат играта, като симулират пет пъти по-висок трафик от прогнозирания най-голям трафик. Сървърите се справят съвсем прилично.
Разработчиците обаче силно подценяват популярността на Pokémon Go. В деня на стартиране техните сървъри са изложени на 50 пъти по-висок от прогнозния трафик.
Игровите сървъри не са били готови за това ниво на екстремно натоварване, така че много играчи са посрещнати с разочароващ екран:
Екипът се стреми да подобри мащабируемостта на системата, на фона на нарастващото търсене от разочаровани потребители плюс множество DDoS атаки към сървърите им от киберпрестъпници.
След като преконфигурира своята сървърна архитектура, за да бъде по-мащабируема, екипът пуска Pokémon Go за останалия свят. През последните три години той е бил изтеглен повече от милиард пъти от магазините за мобилни приложения.
Спектърът на мащабируемостта
Една система е мащабируема, когато има капацитет да поеме повече потребление. Някои системи изобщо не са мащабируеми и могат да се справят само с количеството потребление, за което са проектирани.
Мащабируемите системи могат да се справят с допълнително потребление, но имат различен капацитет. Някои системи могат да се мащабират в степен да поемат два пъти по-голямо потребление; други системи биха могли да се справят с 1000 пъти по-голямо от текущото потребление.
Когато проектираме системи с потенциално глобален обхват – като самия интернет или приложения, които работят върху него – винаги трябва да обмисляме мащабируемостта на нашия подход.
🙋🏽🙋🏻♀️🙋🏿♂️Имаш въпроси по тази тема? Ще се радваме да отговорим — само ни попитай, като използваш полето за въпроси по-долу!
Искаш ли да се присъединиш към разговора?
Все още няма публикации.