Знакомы ли вы с Kubernetes и контейнеризацией?
Что проверяют
От аналитика не ждут администрирования кластера. Проверяют, понимаете ли вы среду, в которой будет жить система, сможете ли писать нефункциональные требования и говорить с разработкой и DevOps на одном языке. Следом часто спрашивают, как требования к масштабированию отражаются на архитектуре сервиса.
Как отвечать
Коротко о базе:
- контейнер: изолированный процесс с упакованным окружением. Изоляцию дают namespaces и cgroups ядра Linux, ядро общее с хостом, поэтому контейнер легче виртуальной машины. Образ собирают по
Dockerfileв формате OCI; - Kubernetes: оркестратор. Основные сущности:
Pod,Deployment(сколько реплик и как обновлять),Service(стабильный адрес),Ingress(вход снаружи),ConfigMapиSecretдля настроек,HorizontalPodAutoscalerдля масштабирования по метрикам. ПробыreadinessProbeиlivenessProbeрешают, пускать ли трафик в под и когда его перезапускать.
Дальше главное: что это значит для требований. Чтобы сервис масштабировался горизонтально, он должен быть stateless: сессии и файлы не в памяти пода, а в Redis, базе или объектном хранилище. Под могут убить в любой момент, значит нужны идемпотентные операции и корректное завершение. Настройки через переменные окружения, логи в stdout. Всё это аналитик фиксирует в НФТ и на диаграмме развёртывания.
Практика аналитика: посмотреть kubectl get pods и kubectl logs на тестовом стенде, чтобы понять, упал сервис или ошибка в данных; прочитать манифест и увидеть число реплик и лимиты.
Отвечайте по своему опыту. Если кластер вы не трогали, так и скажите: «Сам не настраивал, но описывал требования к развёртыванию и разбирал с командой, почему сервис должен быть stateless». Это сильнее чужой истории про настройку Helm.
Где спотыкаются
Приписывают себе настройку кластера и CI/CD. Первое уточнение про сети или хранилища, и ответ рассыпается.
Путают контейнер с виртуальной машиной и говорят, что у контейнера своя операционная система.
Считают, что Kubernetes сам масштабирует любое приложение. Без stateless-архитектуры и заданных requests для HPA лишние реплики ничего не дадут.