Top.Mail.Ru

Высоконагруженные Web-сервисы: их разработка

Что такое высоконагруженные приложения? Хотите верьте, а хотите нет, но четкой
границы, где начинаются высоконагруженные приложения, нет. Определение, что
это такое — есть. По каким параметра проверяется нагрузка — тоже есть. Но четких
цифр нет.


Определения, что такое высоконагруженные приложения


Есть несколько определений, как можно определить подобные сервисы. Итак,
высоконагруженные приложения это:

  1. Когда построенная система приложения не справляется с нагрузкой.
  2. Это когда традиционный подход к разработке сервиса уже не справляется.
  3. Когда с потоком клиентов сервиса не справляется один сервер, нужно больше.
  4. Когда параметров «железа» не хватает, чтобы справиться с выросшей
    нагрузкой.
  5. Когда возникают проблемы из-за нагрузки, а из не возможно решить
    стандартными средствами.
  6. Это когда срочно нужно масштабирование всех систем сервисов.


Если ваш web-сервис попадает под какие-то вышеперечисленные определения, то
скорее всего у вас уже высоконагруженное приложение и нужно что-то срочно
предпринимать.


Высоконагруженные приложения обладают собственными
качествами


Все высоконагруженные приложения объединяют определенные качества. Какие
именно? Перечисляем:

  1. Это веб-сервис с огромным количеством пользователей. Если это
    приложение, то число пользователей достигает сотни тысяч клиентов. Если
    это веб-сайты, то это от десятков тысяч посетителей в сутки. То есть если у
    вас большой интернет-магазин с сотней посетителей в день — это не highload.
    А вот «гиганты», типа : Амазон, Алиэкспресс, e-bay и другие — это ничто иное
    как высоконагруженные веб-сервисы и приложения.
  2. Используют систему распределения нагрузки. Это когда веб-сервису
    приходится работать с большим количеством данных. Плюс ко всему, данные
    могут постоянно расти и одного сервера просто не хватает. Типичный пример
    — компания Гугл, ее мощности распределены между сотнями серверов.
  3. Виден постоянный рост аудитории. Если веб-приложение интересно для
    пользователей, то их число постоянно будет расти. Это качество свойственно
    высоконагруженным приложениям и сервисам.
  4. Интерактивность. Это мгновенный результат при любом действии
    пользователя: поиск в Гугл, загрузка ролика на YouTube, покупка на Амазон.
  5. Использование большого количества ресурсов. Чтобы давать мгновенный
    отклик на действие пользователя, необходимо задействовать большое
    количество различных ресурсов: CPU, оперативная память, hard-диски и т. д.
    Ресурсов должно быть много. А самое главное их должно хватать на рост
    числа пользователей.


Подытожив, можно сказать, что высоконагруженные приложения — это затратные
во всех смыслах web-ресурсы. Их разработка и поддержка потребует не мало усилий
и финансовых затрат. А самое главное — это изначально нужно предполагать и
«закладывать» возможность для масштабирования, чтобы справляться с
увеличивающейся нагрузкой.


Разработка высоконагруженных web-сервисов: идеи


Разработка высоконагруженных web-сервисов требует серьезного подхода и наличие
определенных ресурсов. Практически любая ваша идея, может превратиться в
высоконагруженные приложения или веб-ресурсы. Главное, чтобы ваша разработка
решала проблемы для ваших будущих клиентов. Предугадать, что именно эта идея
станет «высоконагруженной» невозможно.
В сети не мало примеров, когда создавая какой-то ресурс, разработчики не
предполагали, что он вырастет до огромных масштабов. Разве что только в мечтах.
Однако это происходит, если идея интересная. И неважно, что это будет:

  • веб-сайт;
  • социальная сеть;
  • веб-приложение;
  • мобильное приложение;
  • видеоигра;
  • и др.


Примеров подобных идей масса:

  • FaceBook — задумывался как сайт-соц.сеть для университета;
  • Amazon — создавался очередной интернет-магазин, правда со своей индивидуальностью;
  • Word of Tanks — просто хотелось «оживить» в игре танки;
  • TikTok -вроде не уникальный продукт, но попал в нужную аудиторию и обрел популярность;
  • и др.


Поэтому, воплотить можно любую вашу идею. И не нужно сразу арендовать десятки
серверов и нанимать сотни специалистов, чтобы сразу запустить что-то масштабное
и дорогое. Запустить можно тестовую версию и посмотреть реакцию пользователей.
Но при этом обязательно нужно «заложить» потенциал для расширения масштабов
построенной системы.

Возможно вам будет интересно почитать статью “Почему снижается работоспособность и как ее повысить”


Книги в помощь при разработке


Приведем несколько книг, которые помогут вам разработать высоконагруженные
приложения:

  1. Искусство планирования мощностей. Джон Оллспоу. Автор является
    действующим разработчиком и планировщиком крупных высоконагруженных
    проектов.
  2. Искусство программирования для Unix. Эрик С. Реймонд. Автор участвовал в
    разработке крупных приложений для Линукс.
  3. Hight Performance Web Sites. Steve Souders. Автор работает в Google и
    участвовал во многих проектах компании, когда web-ресурсам требовалось
    повышать производительность.
  4. Even Faster Web Sites. Steve Souders. Уже знакомый нам автор повествует о
    том как можно оптимизировать уже существующие сайты.
  5. Высоконагруженные приложения. Мартин Клеппман. Автор является,
    известным в своем кругу, специалистом по высоконагруженным приложениям,
    о чем и повествует в своей книги. Как правильно все организовать, на что
    обратить внимание и с чего начать.
Text.ru - 100.00%
Поделись статьей с друзьями!

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *