Запис на архитектурно решение: оркестрация на контейнери с Kubernetes
Постановка на проблема
Трябва да изберем платформа за оркестрация на контейнери за нашето растящо портфолио от cloud-native приложения. Сегашното ни внедряване на наследената платформа е твърде бавно и недостатъчно гъвкаво, за да следва растящите ни нужди. Търсим система, която ще ни позволи да мащабираме услугите си по възможно най-ефективния начин, без да правим компромис с гъвкавостта или лекотата на употреба.
Разгледани алтернативи
Docker Swarm
Kubernetes
Apache Mesos
Взето решение
След задълбочен анализ на всяка платформа за оркестрация на контейнери решихме да приемем Kubernetes като най-добрия вариант за корпоративните ни нужди. Причините ни да изберем Kubernetes са следните:
Мащабируемост: Уникалният дизайн на Kubernetes е идеален за мащабиране на приложения и тъй като изискванията ни за мащабируемост се развиват с времето, Kubernetes има вградена способност да отговори на тези промени без проблеми.
Децентрализирана архитектура: Топологията master-worker на Kubernetes осигурява децентрализирана архитектура, която гарантира, че няма единична точка на отказ.
Поддръжка от общността: Kubernetes има най-голямата и най-активна общност с отворен код, което означава, че има голям брой сътрудници, разработчици и доставчици, което ни улеснява да получим помощ и да намерим ресурси.
Поддръжка от екосистемата: Kubernetes има растяща екосистема с разнообразни инструменти на трети страни, интеграции с регистри на контейнери, CI/CD конвейери, съхранение на данни и други.
Затова решихме да приемем Kubernetes като наша платформа за оркестрация на контейнери за настоящето и непосредственото бъдеще.