Ви коли-небудь замислювалися, скільки людей одночасно користуються вашими улюбленими додатками? Instagram щодня відвідує понад 2 мільярди користувачів, WhatsApp обробляє більше ніж 100 мільярдів повідомлень на день, а TikTok завантажують в середньому 850 разів щосекунди. Але що відбувається, коли звичайний додаток раптом стає хітом? Що робити та як з цим впоратися? Саме про це, ми поговоримо у цій статті.

 

Від успіху до проблем один крок

      Уявіть собі, що ви у своєму кафе, створили додаток для замовлення кави. Спочатку ним користується 100 людей на день — все працює чудово. Раптом про вас пише популярний блогер, і наступного ранку додатком намагаються скористатися вже 10 000 людей. Результат? Додаток «падає», користувачі не можуть зробити замовлення, а ви втрачаєте і гроші, і репутацію.
До речі, що до репутації, то вас чекає ще такий сюрприз як загрози зловмисників, які можуть намагатися отримати доступ до особистих даних користувачів додатка.

 

Але почнемо розв'язувати проблеми по черзі. Для цього згадаємо, як працює додаток?

Як працює додаток: простими словами
      Щоб зрозуміти, як розв'язати цю проблему, ми розглянемо з чого складається додаток на прикладі нашого кафе. Є зал для відвідувачів — це те, що ми називаємо Front-end (інтерфейс, який ви бачите на екрані телефону). Далі йде кухня — наш Back-end (сервери, які обробляють ваші запити), і комора (база даних, де зберігається вся інформація). Так само як ресторан не зможе працювати без кухні, додаток не функціонуватиме без своєї серверної частини, де відбувається вся «магія» обробки ваших замовлень.

 

Способи масштабування мобільних додатків

 

 

      Настав час визначити, що ж таке масштабування та чому воно таке важливо при створенні мобільних додатків?
Масштабування означає обробку чимраз більшої кількості одночасних користувачів без шкоди ефективності мобільних додатків. Як це можливо? Логічна відповідь — збільшити потужність.
      Розробники мають два основні способи збільшити потужність додатка: «вгору» (вертикальне масштабування) — коли покращується потужність наявного обладнання, та «вшир» (горизонтальне масштабування) — коли додаються нові сервери. Це як різниця між заміною кавомашини на більш потужну, та додаванням ще однієї для роботи. Розглянемо найпопулярніші підходи, які допомагають впоратися з навантаженням на систему, що зростає. 

 

1. Хмарні технології

      Раніше компанії купували власні сервери, але зараз існує краще рішення — хмарні сервіси. Схоже на оренду: ви платите тільки за ті потужності, які реально використовуєте. Amazon Web Services, Google Cloud та Microsoft Azure — найбільші постачальники таких послуг. Вони автоматично регулюють потужність залежно від навантаження. Наприклад, під час Чорної П'ятниці, коли трафік у додатку для покупок зростає в десятки разів, система сама виділить додаткові ресурси, а потім поверне їх до звичайного рівня.

 

 

2. Розумне розділення функцій

      Сучасні додатки використовують архітектуру мікросервісів. Замість одного великого центру обробки всіх операцій, воно розділяється на маленькі незалежні служби. У Instagram окремі сервіси відповідають за обробку фотографій, інші — за систему коментарів, треті — за особисті повідомлення. Якщо багато користувачів одночасно завантажують фото, посилюється тільки відповідний сервіс, а інші продовжують працювати у звичайному режимі.

 

3. Глобальна система доставлення контенту

      Content Delivery Network або ж CDN — мережа локальних складів для вашого цифрового контенту. Коли користувач з Києва відкриває додаток, фотографії та відео завантажуються з найближчого українського сервера, а не з головного сервера десь в Америці. Netflix використовує цю технологію, щоб мільйони користувачів могли дивитися трансляції без затримок. Завдяки CDN ваші улюблені фільми та серіали завантажуються миттєво, незалежно від того, де ви знаходитесь.

 

 

Безпекові виклики та їх вирішення

      Коли мобільний додаток стає популярним, він стає мішенню для зловмисників. Повернемося до нашого прикладу з кафе. Ви відкриваєте двері для відвідувачів, а всередину намагається потрапити натовп, створений ботами. DDoS — атака, при якій до системи надсилається масивна кількість запитів, через що вона перестає відповідати навіть на легітимні звернення користувачів. 

      Але є й інші загрози: зловмисники можуть намагатися отримати доступ до особистих даних, як це буває з SQL-ін’єкціями. Вони як «шпигун», який крадькома добирається до комори через вразливості в коді й отримує доступ до всіх секретів (даних). 

      Щоб протистояти таким загрозам, розробники використовують різноманітні стратегії:

1. Використання WAF

Хмарні сервіси, такі як Cloudflare або вище згаданий AWS, пропонують вбудовані WAF, які легко інтегруються у вашу систему. Це як охоронець на вході. Він аналізує вхідний трафік і блокує підозрілі запити, які можуть бути використані для SQL-ін’єкцій чи атак типу DDoS.

 

 

2. Шифрування даних

Зараз всі банківські додатки використовують TLS/SSL-протоколи, щоб захистити платіжні дані. Забезпечуючи захист інформації, яка передається між клієнтом і сервером. Працює як замок на поштовій скриньці — навіть якщо хтось перехопить ваш лист, він не зможе його прочитати.

 

3. Керування доступом

Уявіть, що на вашу кухню (сервер) може потрапити лише обмежене коло людей із ключами доступу. Введення двофакторної автентифікації значно підвищує рівень безпеки, запобігаючи несанкціонованому доступу.

 

4. Резервне копіювання

Як би добре ви не захищали свій додаток, інколи краще перестрахуватися. Регулярне створення резервних копій бази даних гарантує, що навіть у разі кібератаки чи технічного збою, ви зможете швидко відновити роботу додатка.

 

          Масштабування — складний технічний процес, який при правильному виконанні стає непомітним для користувача.

 

 

      Сучасні технології дозволяють додаткам рости від сотень до мільйонів користувачів, зберігаючи високу якість обслуговування. Саме тому ви можете спокійно користуватися улюбленими сервісами, не замислюючись про те, скільки складних систем працює для забезпечення цього комфорту.

 

За матеріалами:

https://blog.back4app.com/mobile-app-infrastructure/

Гребенюк Артем 

Популярні статті

Читати далі