Як розробити масштабовану програму за допомогою AWS Cloud? (Вайбхав Шарма) PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Як розробити масштабовану програму за допомогою AWS Cloud? (Вайбхав Шарма)

Масштабованість програми так само важлива, як і її функціональність та інтерфейс користувача. Набагато важливіше, чи в майбутньому ваше програмне забезпечення обслуговуватиме понад мільйон користувачів. Цей блог навчить вас, як масштабувати свою програму до 1 мільйона користувачів на AWS. Припустимо
ви створили веб-додаток і маєте кілька клієнтів. Після кількох коментарів та ідей ви отримаєте повністю функціональний продукт. Тепер ваш маркетинговий персонал рекламує ваш додаток у пошуковій системі продуктів, щоб залучити нових клієнтів. Тисячі відвідувачів раптово використовують
ваш додаток; в один момент вони не можуть ним скористатися.

Ви перевірили свою програму та переконалися, що вона працює. Отже, що саме сталося?

«Це не помилка, а проблема масштабованості». Ваша хмарна інфраструктура не створена для зростання зі збільшенням трафіку».

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

Що таке масштабованість?

Масштабованість програми означає її здатність продовжувати роботу навіть із збільшенням кількості користувачів або обсягу. Однак масштабованість може бути застосована до будь-якої системи, включаючи компанії та команди.

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

Чому масштабованість важлива?

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

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

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

Кроки для розробки масштабованої програми за допомогою хмарних служб AWS

Крок 1: Початкова конфігурація хмарної архітектури

Ви єдиний, хто використовує програму на локальному хості. Можна почати з розгортання програми в ящику. Щоб почати, ви повинні використовувати
Сервіси AWS перераховане нижче.

● Зображення Amazon Machines (AMI)

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

● Віртуальна приватна хмара Amazon (Amazon VPC)

Amazon Virtual Private Cloud дає змогу розгортати ресурси AWS у віртуальній мережі. Він забезпечує повний контроль над середовищем віртуальної мережі, включаючи вибір діапазону IP-адрес, формування підмережі, таблицю маршрутів і налаштування мережевого шлюзу.

● Amazon Elastic Compute Cloud (Amazon EC2)

Amazon Elastic Compute Cloud — це масштабовані обчислювальні можливості хмари AWS. Це усуває потребу в апаратному забезпеченні, дозволяючи швидше розробляти та розгортати програми.

● Amazon Route 53

Amazon Route 53 — це масштабована та високодоступна хмарна веб-служба DNS. Amazon Route 53 підключає запити користувачів до інфраструктури AWS, наприклад екземплярів Amazon EC2, балансувальників навантаження Elastic Load Balancing і сегментів Amazon S3.

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

Крок 2: Створіть багато хостів і виберіть базу даних

Оскільки кількість користувачів зростає та дані генеруються, ви повинні спочатку вибрати базу даних. Найкраще почати використовувати базу даних SQL з таких причин:

  • Технологія, яка добре зарекомендувала себе.
  • Підтримка спільноти та найсучасніші інструменти
  • Ми не збираємося руйнувати бази даних SQL нашими першими десятьма мільйонами користувачів.

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

Крок 3: Зберігайте базу даних на Amazon Rds, щоб полегшити роботу

Коли кількість користувачів зростає до 100, розгортання бази даних є першим, що потрібно зробити. Існує два загальні напрямки розгортання бази даних на AWS. Першим варіантом є використання керованої служби бази даних, наприклад Amazon Relational Database Service (Amazon
RDS) або Amazon DynamoDB, а другим кроком є ​​розміщення власного програмного забезпечення бази даних на Amazon EC2.

● Amazon RDS

Amazon RDS (служба реляційної бази даних Amazon) спрощує налаштування, запуск і масштабування реляційної бази даних у хмарі. Amazon RDS підтримує шість відомих механізмів баз даних, включаючи Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL і
MariaDB.

● Amazon DynamoDB

Amazon DynamoDB — це повністю керована власна служба бази даних NoSQL, яку надає Amazon.com як частина
Amazon Web Services портфель.

Крок 4: Щоб підвищити доступність, створіть різні зони доступності

Ви можете зіткнутися з проблемами доступності на основі поточної архітектури. Якщо хост вашої веб-програми виходить з ладу, вона може вийти з ладу. Тож вам знадобиться інший веб-екземпляр в іншій зоні доступності для розміщення підлеглої бази даних для RDS.

  • Еластичний балансир навантаження (ELB)
  • Багаторазове розгортання

Крок 5: щоб підвищити продуктивність, перемістіть статичний матеріал до об’єктно-орієнтованого сховища

Вам потрібно буде додати додаткові репліки читання до RDS, щоб підвищити продуктивність і ефективність. Це знімає навантаження на головну базу даних запису. Перенесення статичної інформації на Amazon S3 і Amazon CloudFront також може допомогти зменшити навантаження на веб-сервери.

  • Amazon S3
  • Amazon ElastiCache
  • Amazon CloudFront
  • Amazon DynamoDB

Крок 6: Налаштування автоматичного масштабування для автоматичного задоволення змінного попиту

На даний момент ваша архітектура надто складна для підтримки невеликої команди, і без ефективного моніторингу й аналізу важко продовжувати роботу.

  • Amazon CloudWatch
  • Формування хмари AWS
  • AWS Elastic Beanstalk
  • AWS OpsWorks
  • AWS CodeDeploy

Крок 7: Для додаткової гнучкості використовуйте SOA

Створюючи великомасштабні онлайн-додатки, ви повинні використовувати сервіс-орієнтовану архітектуру (SOA), щоб підтримувати понад мільйон користувачів.

  • Служба простих черг Amazon (SQS)
  • Служба простих сповіщень Amazon (SNS)
  • AWS Lambda

Висновок

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

 Створення масштабованих веб-сайтів вимагає часу, зусиль і значних інвестицій. Exato Software — це найкраще рішення для компаній, які мають потреби та намагаються їх виконати. Ми створили масштабовані веб-програми для клієнтів із мільйонами
користувачів. Не соромтеся зв’язатися з нами, щоб отримати безкоштовну консультацію та визначити ціну.

Часова мітка:

Більше від Фінтекстра