Три способа масштабировать ваши приложения с помощью рендеринга

Три способа масштабировать ваши приложения с помощью рендеринга

25 октября 2022 г.

Когда ваше приложение испытывает высокий трафик или загруженность, вам необходимо масштабировать службу, чтобы справиться с этой нагрузкой.

Масштабирование может выполняться как по вертикали, так и по горизонтали — или и то, и другое! Вертикальное масштабирование означает, что один ресурс становится больше или мощнее. Например, вы можете добавить больше ЦП или ОЗУ на свой сервер. Горизонтальное масштабирование означает создание нескольких экземпляров одной и той же службы. Например, вы можете развернуть три копии своего сервера вместо одной, а затем разместить их все за балансировщиком нагрузки, который обрабатывает маршрутизацию трафика к каждой из них. . Оба типа масштабирования можно выполнять вручную или автоматически (автомасштабирование).

Часто компании не размещают свои приложения локально на собственных серверах, предпочитая вместо этого размещать их в облаке. Render – это унифицированная полнофункциональная платформа для разработки, которая упрощает размещение ваших приложений, будь то статические сайты, веб-службы или задания cron. . И масштабирование с помощью Render очень просто. В этой статье мы рассмотрим три способа масштабирования ваших приложений с помощью Render.


Вариант 1. Использование панели визуализации

Первый вариант – масштабировать сервис с помощью Render Dashboard. Создав веб-службу, вы можете перейти на вкладку "Масштабирование", чтобы настроить параметры масштабирования.

Когда автоматическое масштабирование отключено, вы можете вручную увеличивать или уменьшать масштаб приложения в пользовательском интерфейсе, указав количество экземпляров. Например, обычно вам может понадобиться только один экземпляр службы, но на этой неделе вы ожидаете всплеск трафика из-за предстоящего события. Вы можете масштабировать службу до трех экземпляров, чтобы справиться с возросшей нагрузкой. Когда мероприятие завершится, вы сможете уменьшить масштаб службы до одного экземпляра.

Manual scaling options

Масштабирование вручную работает хорошо, если вы можете предвидеть предстоящие изменения нагрузки, но вы не всегда можете быть правы в отношении того, сколько экземпляров вам нужно. Угадывание слишком высокого или слишком низкого значения может привести к недостаточному или чрезмерному использованию вашего сервиса, что не является идеальным.

Автомасштабирование избавляет от догадок, автоматически масштабируя диапазон минимального и максимального количества экземпляров в зависимости от использования ЦП и/или памяти.

В Render Dashboard вы можете включить автомасштабирование с помощью тумблера. Затем вы можете установить минимальное и максимальное количество экземпляров вместе с целевыми показателями использования ЦП и/или памяти. Затем, в зависимости от этих целей, ваше приложение будет автоматически масштабироваться вверх или вниз по мере необходимости. Как приятно!

Autoscaling options


Вариант 2. Использование Render API

Второй вариант масштабирования службы — использование Render API. Создав токен API в настройках аккаунта, вы можете начать использовать Render API для выполнения запросов.

API endpoint for scaling

Одна конечная точка API позволяет масштабировать службу до определенного количества экземпляров. Все, что вам нужно сделать, это отправить POST-запрос к конечной точке, указав свой токен API и параметры serviceID и numInstances следующим образом:

curl --request POST 
  --url https://api.render.com/v1/services/{serviceId}/scale 
  --header 'accept: application/json' 
  --header 'authorization: Bearer {API_Token}' 
  --header 'content-type: application/json' 
  --data '{"numInstances":2}'

Выполнение запроса API вручную, очевидно, является ручным процессом масштабирования, но API предназначены для программного использования. Если у вас настроен дополнительный мониторинг или оповещение, вы можете программно вызвать эту конечную точку API, чтобы увеличить или уменьшить масштаб вашего приложения по мере необходимости, и все это без какого-либо вмешательства человека. Однако это может оказаться излишним, поскольку в Render уже есть инфраструктура мониторинга и автоматического масштабирования, которая сделает это за вас.


Вариант 3. Использование спецификации Blueprint

Третий вариант, который мы рассмотрим, — это использование спецификации схемы для масштабирования вашего сервиса. Спецификации Blueprint представляют собой инфраструктуру как код (IaC), написанную с использованием файлов YAML, содержащих пары ключ-значение для конфигурации. Основное преимущество IaC заключается в том, что он позволяет создавать службы и управлять ими с помощью кода, а не с помощью панели инструментов. Таким образом, вы можете держать свою конфигурацию под контролем исходного кода, стандартизировать настройку и с легкостью развертывать новые изменения инфраструктуры.

Спецификации Render’s Blueprint предоставляют два варианта масштабирования вашего приложения. Если вы не хотите использовать автомасштабирование, вы можете указать ключ numInstances и число для значения следующим образом:

numInstances: 3

Если вы хотите использовать автомасштабирование в своей службе, вы можете настроить свойство scaling следующим образом:

scaling:
  minInstances: 1
  maxInstances: 3
  targetMemoryPercent: 60
  targetCPUPercent: 60

Это те же параметры, которые вы видите на панели рендеринга, но теперь вместо того, чтобы вручную устанавливать их в пользовательском интерфейсе, вы пишете свою инфраструктуру в виде кода. Аккуратно!


Заключение

Масштабировать приложение с помощью Render очень просто. Независимо от того, предпочитаете ли вы масштабировать свое приложение на панели Render Dashboard, через API или спецификацию Blueprint, Render поможет вам.

Спасибо за прочтение и удачного кодирования!


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE