Вызовы при работе с Kubernetes – Постоянные, сложные и быстрые изменения
Итак, чтобы лучше понимать суть проблем, с которыми могут столкнуться компании, работающие с Kubernetes, давайте сначала перечислим их основные характеристики.
Компания подразделяется на команды, вот лишь некоторые из них:
- Разработчики занимаются непосредственно разработкой приложений и сервисов, наполняя продукты разнообразными фичами, после чего передают их на этап продакшна.
- QA-специалисты тестируют фичи и сервисы, полученные от разработчиков. Задачи этой команды состоят в том, чтобы выявить все проблемы и недостатки продукта на ранних стадиях.
- Специалисты DevOps обеспечивают надежную бесперебойную работу сервисов.
- DevSecOps и SOC отвечают непосредственно за безопасность приложений и всех данных, применяющихся в работе.
Каждая из команд имеет свои специфические цели, задачи и KPI.
Как правило, отделы неравнозначны в количестве сотрудников, а каждая из команд имеет свой инструментарий, который дает определенный взгляд на систему или ее часть, что зачастую провоцирует расхождения в информированности и взглядах на систему.
Как правило, компании имеют не только огромное количество собственных сервисов, разрабатывающих внутри компании, но и разнообразные инфраструктурные сервисы, позволяющие организовать дополнительную поддержку (логирование, мониторинг, безопасность) собственным сервисам и инфраструктуре в целом. При этом каждый из сервисов компании – будь то собственный, инфраструктурный или системный – должен работать бесперебойно, понятно и безопасно.
Наконец, в жизненном цикле микросервисов могут использоваться различные кластеры, выполняющие разные роли: Dev, Test, Stage, Prod. Каждый из кластеров отличен от другого хотя бы немного, что в итоге приводит к созданию нескольких разных окружений, которые так или иначе могут влиять на все микросервисы в них. Так, каждая компания делится на множество команд с различным инструментарием, большим количество взаимосвязанных микросервисов и, как следствие, большим количеством изменений в разных окружениях. В конечном итоге компании имеют сложную, динамическую и быстро развивающуюся среду, в которой необходимо обеспечивать бесперебойную работу микросервисов на протяжении всего жизненного цикла.