367
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Как мы улучшили инфраструктуру путем переноса в Kubernetes: основные плюсы

Время чтения 1 минута
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
367
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

Привет, я Антон Немцов, генеральный директор QWEP. Я расскажу, как наша команда построила собственный Kubernetes-кластер и перевезла в него свои проекты. QWEP — цифровая экосистема для повышения эффективности ключевых бизнес-процессов оптовых игроков автоотрасли. Ключевой продукт платформы — «Проценка в один клик», который в считаные секунды агрегирует в реальном времени данные о стоимости запчастей по всем поставщикам. С ростом количества клиентов это стало требовать всё больших и больших ресурсов. 

Как мы улучшили инфраструктуру путем переноса в Kubernetes: основные плюсы

На емкость, гибкость, масштабируемость и устойчивость ИТ-инфраструктуры влияет множество факторов. На некоторые из них компания и, в частности, команда разработки может влиять: наращивать парк серверов, увеличивать процент покрытия тестами кодовой базы и мониторинга систем, взять на работу специалистов с высокой квалификацией. 

Однако подобно алхимическому принципу «Если где-то прибыло, значит где-то убыло» усиление одних факторов влечет за собой ослабление других. С ростом компании становится всё сложнее и сложнее равномерно развивать ИТ-инфраструктуру. Поэтому мы построили собственное облако на базе технологии оркестрации контейнеризированных приложений Kubernetes, чтобы обеспечить своей инфраструктуре сбалансированную основу для разработки и поддержки продуктов, а также создать прочный фундамент для дальнейшего масштабирования бизнеса.

Как была построена работа

Вся наша инфраструктура была развернута локально в собственной серверной. На одном сервере созданы ВМ, где размещаются по принципу bare metal продукты и инфраструктурные элементы компании: прокси-сервер, 1С, CRM, базы данных, репозитории, сервисы и так далее. Всё работало исправно, но управлять инфраструктурой приходилось фактически в ручном режиме, поиск неисправностей и их устранение могли занимать до двух дней. А отсутствие централизованных узлов управления сильно затрудняло мониторинг систем и уменьшало оперативность работы команды в целом.

Что мы сделали

Мы закупили и настроили дополнительные вычислительные мощности в виде новых серверов, на которых развернули необходимые элементы кластера: master- и worker-ноды, отказоустойчивый gateway для поступающего извне к кластеру трафика, объединили дисковое пространство серверов в единое сетевое хранилище.

Команде предоставили в распоряжение увеличенный парк серверов, установили и настроили систему виртуализации. После этого спроектировали схему кластера: на каких ВМ и в каком количестве должны располагаться его элементы. В первую очередь развернули важнейшие инфраструктурные компоненты новой системы:

  • запустили центр управления кластером и мониторинг;
  • кодовую базу переместили с внешнего ресурса на развернутый в кластере собственный репозиторий;
  • для хранения Docker-образов установили и настроили локальный Docker-репозиторий. 

Также установили и настроили системы логирования и сбора метрик, а пространство кластера разбили на регионы по продуктовому признаку. Перед запуском кластера в эксплуатацию между продуктовым ландшафтом и репозиторием исходных кодов установили и настроили CI/CD-магистраль, а дисковое пространство серверов объединили в единое сетевое хранилище под управлением Ceph.

Что это дало разработке

Одним из основных преимуществ использования Kubernetes стала возможность автоматизировать развертывание и управление нашими приложениями. Мы создали шаблоны и скрипты для развертывания приложений в Kubernetes-кластере, что позволило избежать ручных операций и ускорить процесс публикации новых версий.

Еще одно преимущество — возможность легкого масштабирования инфраструктуры. Когда появляется потребность в увеличении ресурсов, мы можем легко добавлять новые узлы в кластер и масштабировать приложения по мере необходимости. Они стали значительно более устойчивыми к нагрузке, так как Kubernetes автоматически распределяет нагрузку между узлами.

Кроме того, Kubernetes предоставил нам возможность управлять состоянием приложений. Мы использовали функцию Persistent Volumes, чтобы хранить данные в постоянном хранилище, и обеспечили доступность данных даже при перезапуске приложений или сбоях в узлах.

Мы также используем встроенные средства мониторинга и логирования Kubernetes, чтобы отслеживать состояние приложений и быстро реагировать на проблемы. Настроили алерты, чтобы получать уведомления о возможных сбоях или превышении лимитов ресурсов, и можем быстро реагировать на них.

Перенос инфраструктуры в Kubernetes был большим вызовом для нашей команды разработки, но он помог создать мощную, автоматизированную и масштабируемую платформу, которая позволяет эффективно развертывать и управлять нашими продуктами.

Кроме перечисленных преимуществ, перенос инфраструктуры в Kubernetes также помог нам улучшить безопасность и обеспечить более надежную работу приложений.

Мы используем функции Kubernetes, такие как Namespaces и RBAC (Role-Based Access Control), чтобы создать изолированные среды для каждого приложения и ограничить доступ только соответствующим пользователям и сервисам. Это сделало нашу инфраструктуру более защищенной от несанкционированного доступа и атак.

Кроме того, мы внедрили механизмы контейнеризации с помощью Docker и сделали приложения более переносимыми и изолированными. Каждое из них было упаковано в контейнер вместе со всеми зависимостями, что обеспечило нам возможность запускать их в любой среде, поддерживающей контейнеризацию Docker.

Что это дало бизнесу

Переход на Kubernetes также позволил существенно снизить затраты на обслуживание и поддержку инфраструктуры. До внедрения Kubernetes у нас было несколько физических серверов, каждый из которых требовал постоянного обслуживания и мониторинга. После перехода мы смогли сократить количество серверов и автоматизировать многие рутинные задачи, что сэкономило нам время и ресурсы.

Также стоит отметить, что перенос инфраструктуры в Kubernetes повысил гибкость нашей команды разработки и ускорил процесс разработки и развертывания новых функций и обновлений. Мы стали использовать методологии разработки, такие как Continuous Integration и Continuous Deployment, которые позволяют быстро и безопасно развертывать изменения в инфраструктуре и приложениях.

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

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники