Skip to content

vk-cs/cloud-refarch-gen2

Repository files navigation

Развертывание отказоустойчивого web-приложения на PaaS-сервисах в облаке VK Cloud

Репозиторий содержит конфигурацию ресурсов Terraform для развертывания инфраструктуры для типового web-приложения, а также набор манифестов K8s и мануал по развертыванию примера такого приложения.

Референсная архитектура типового web-приложения

Архитектура разработана с прицелом на обеспечение отказоустойчивости и высокой доступности пользовательских web-приложений, размещаемых в облаке VK Cloud. При разработке учитывались функциональность и ограничения сервисов облака.

Референсная архитектура

Какие ресурсы создаются с помощью Terraform

  • Сетевой слой (виртуальная сеть, стандартный маршрутизатор, security-группа)
  • Региональный K8s-кластер
  • MultiAZ-кластер PostgreSQL
  • Anycast IP-адрес

Из опционального: создаются 2 ВМ, используемые в качестве jump-хостов для задач эксплуатации, мониторинга и диагностики проблем web-приложения. Эти ВМ также могут использоваться для хостинга Registry, в которое будет загружен образ приложения с целью дальнейшего его развертывания в K8s-кластере.

Создание инфраструктуры

В корневом каталоге репозитория представлен набор файлов конфигураций ресурсов Terraform. Для создания инфраструктуры в своем проекте в облаке VK Cloud необходимо выполнить несколько шагов

  1. Установить Terraform и сконфигурировать его для работы с облаком. Для этого можете воспользоваться руководством с официально портала документации VK Cloud.

  2. В корневом каталоге склонированного репозитория создайте файл creds.auto.tfvars и наполните его следующим содержимым:

provider_auth_url = "https://infra.mail.ru:35357/v3/"
provider_username = "< Логин учетной записи пользователя VK Cloud >"
provider_password = "< Пароль учетной записи пользователя VK Cloud >"
provider_project  = "< ID проекта со страницы настроек проекта (вкладка Terraform) в ЛК >"
key_pair_name     = "< Название ключевой пары SSH из настроек проекта в ЛК >"
  1. В корневом каталоге репозитория выполняем инициализацию:
terraform init
  1. Для ознакомления со списком изменений, которые будут применены, запустим команду:
terraform plan
  1. Если никаких ошибок не было выявлено, то запускаем операцию создания инфраструктуры в соответствии с заданной конфигурацией:
terraform apply

После успешного завершения создания инфраструктуры перейдем к развертыванию приложения в K8s-кластере.

Дальнейшие шаги (опционально)

Для развертывания типового приложения в K8s-кластере перейдите к инструкции и выполните пошагово предложенные действия.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages