KamoCRM

Кластер, на котором мы управляем собственной компанией

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

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

Каждое число здесь называет, откуда оно пришло и когда оно было измерено.
МераСтоимостьИсточникИзмеряемые
Развертывание в тематическом блоке106kubectl get deploy --all-namespaces
Бегущая капсула267kubectl get pods --all-namespaces
Состояние рабочих нагрузок22kubectl get statefulsets --all-namespaces
Пространства имен19kubectl get namespaces
Сертификаты TLS под автоматическим управлением211kubectl get certificate --all-namespaces (cert-manager)
Пути проникновения40kubectl get ingressroute --all-namespaces (Traefik)
Время работы узла в плоскости управления266 dayskubectl get nodes -o wide, AGE column
Версия Kubernetesv1.35.6+rke2r1kubectl get nodes -o wide, VERSION column

Чему здание нас научило

Было бы проще взять в аренду. Managed Kubernetes существует, это хорошо, и выбор его устранил бы целую категорию проблем из нашей жизни. Мы запускаем нашу собственную платформу, потому что она содержит то, что управляемое предложение не будет размещать для вас по разумной цене — телефонию, которая требует реального сетевого контроля, медиа WebRTC, которой нужны предсказуемые UDP-пути, вывод, который требует оборудования — и потому что компания, продающая компетенцию в области инфраструктуры, должна быть в состоянии продемонстрировать это, а не описывать.

Кластер содержит Longhorn для реплицируемого блокового хранения, Traefik для ввода, cert-manager, выдающий сертификаты по имени узла, KubeVirt для рабочих нагрузок, действительно нуждающихся в виртуальной машине, и частный реестр. Одни только сертификаты являются хорошей иллюстрацией того, почему работа учит тому, чего чтение не учит: они выдаются по полно-квалифицированному имени и последовательно, так что арендатор, который добавляет имя узла и не ждёт, видит самозаверенный сертификат на точно одном узле и делает вывод, что вся система сломана. Вы не узнаете об этом из документации. Вы узнаете об этом из тикета поддержки.

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

Это разница, которую мы на самом деле продаем. Фирма-разработчик, которая никогда не эксплуатировала то, что она построила, даст вам хранилище и счет-фактуру, и первый производственный инцидент будет только ваш. Мы пишем runbooks, потому что они нужны нам в два часа утра.

Построен с

  • Kubernetes (RKE2)
  • Traefik
  • cert-manager
  • Longhorn
  • KubeVirt
  • containerd
  • Docker registry
  • Ubuntu

Для чего это нас квалифицирует

Platform and DevOps engineeringKubernetes, pipelines and the deployment safety nobody notices until it is missingCustom web applicationsThe system your business actually runs on, built properlyData engineering and migrationMoving data between systems without losing any of it

Расскажите нам, что вы пытаетесь сделать

Обычно достаточно короткого разговора, чтобы узнать, являемся ли мы подходящими людьми. Если нет, мы скажем вам об этом и покажем вам куда-нибудь лучше.

Начать разговорЯ уже использую KamoCRMКак мы цитируем