Насколько большое приложение на последнем месте работы

«Насколько большое приложение на последнем месте работы» — вопрос из категории Софт-скиллы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

На последнем проекте я работал с распределенной системой, построенной на микросервисной архитектуре. С точки зрения DevOps масштаб был следующим:

  • Инфраструктура: Около 50 микросервисов, развернутых в Kubernetes-кластере (EKS в AWS). В пике общее количество подов доходило до 300.
  • Нагрузка: Система обрабатывала в среднем 8-10 тысяч запросов в секунду (RPS), с пиками до 15k во время промо-акций.
  • Стек и данные: Основные языки — Go и Python. Использовалось несколько баз данных: 15 шардированных кластеров PostgreSQL для основного состояния и 5 инстансов Redis для кэша и сессий.
  • DevOps-инструменты: Вся инфраструктура описывалась как код (IaC) с помощью Terraform. Управление релизами и конфигурацией сервисов велось через Helm и ArgoCD для GitOps. Мониторинг и алертинг были построены на стеке Prometheus, Grafana и Alertmanager.

Пример фрагмента Terraform для EKS, который я писал и поддерживал:

module "eks" {
  source  = "terraform-aws-modules/eks/aws"
  version = "~> 19.0"

  cluster_name    = "prod-app-cluster"
  cluster_version = "1.27"

  vpc_id     = module.vpc.vpc_id
  subnet_ids = module.vpc.private_subnets

  eks_managed_node_groups = {
    general = {
      desired_size = 3
      min_size     = 1
      max_size     = 10
      instance_types = ["t3.large"]
    }
  }
}

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