Был ли ваш последний проект развернут в облаке?

Ответ

Да, проект использовал облачную инфраструктуру AWS (Amazon Web Services).

Используемые сервисы и их назначение:

  • Вычисления: Amazon EC2 для виртуальных серверов бэкенда.
  • База данных: Amazon RDS (PostgreSQL) как managed СУБД с автоматическими бэкапами и патчами.
  • Хранилище: Amazon S3 для статических файлов (изображения, документы).
  • Контейнеризация: Amazon ECS (Elastic Container Service) с запуском задач на Fargate (serverless). Это избавило от управления серверами для контейнеров.

Пример инфраструктуры как код (Terraform):

resource "aws_ecs_cluster" "main" {
  name = "production-cluster"
}

resource "aws_ecs_task_definition" "app" {
  family                   = "api-task"
  cpu                      = "256"
  memory                   = "512"
  network_mode             = "awsvpc"
  requires_compatibilities = ["FARGATE"]
  container_definitions    = file("task-definition.json")
}

Преимущества такого подхода:

  1. Масштабируемость: Автоскейлинг групп EC2 и сервисов ECS.
  2. Отказоустойчивость: Размещение в нескольких Availability Zones.
  3. DevOps: Полный CI/CD цикл через AWS CodePipeline и CodeBuild.

Ответ 18+ 🔞

Ну, смотри, как мы там всё по-взрослому развернули, на облаках амазонских, блядь. AWS, сука, то есть. Не какая-то там подвал-инфраструктура, а всё по-белому.

Что и куда воткнули, чтоб работало:

  • Вычисления: Взяли Amazon EC2 — это такие виртуальные тачки, на них наш бэкенд и бегал. Крепкие, надёжные.
  • База данных: Amazon RDS на PostgreSQL. Чтобы не ебаться с бэкапами и обновлениями в три часа ночи — за тебя всё делает, красота.
  • Хранилище: Amazon S3 — туда все картинки, документы и прочий статический хлам летел. Дешево и сердито, ёпта.
  • Контейнеризация: А это, сука, вообще песня. Amazon ECS на Fargate. То есть контейнеры крутятся, а серверов под них нихуя нет, serverless, блядь. Вообще не надо думать, на какой машине что виснет. Гениально, в рот меня чих-пых!

Вот, смотри, как мы это кодом, как взрослые, описывали (Terraform):

resource "aws_ecs_cluster" "main" {
  name = "production-cluster"
}

resource "aws_ecs_task_definition" "app" {
  family                   = "api-task"
  cpu                      = "256"
  memory                   = "512"
  network_mode             = "awsvpc"
  requires_compatibilities = ["FARGATE"]
  container_definitions    = file("task-definition.json")
}

И какие, нахуй, от этого плюсы вылезли:

  1. Масштабируемость: Нагрузка подскочила — система сама новые инстансы накрутит. Упала — сама же и прибьёт лишние. Автомат, блядь.
  2. Живучесть: Всё раскидали по разным дата-центрам (Availability Zones). Один сдох — остальные работают. Не то что наши, сука, щит-роутеры.
  3. DevOps: Полный цикл, ёбушки-воробушки! Залил код — AWS CodePipeline с CodeBuild сами его соберут, протестят и на прод выкатят. Руками почти ничего не трогаешь.