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

«Был ли ваш последний проект развернут в облаке?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, проект использовал облачную инфраструктуру 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.