Личные облака

Уже много лет меня беспокоит проблема понятной и удобной инфраструктуры. В каждом проекте, где я работал, так или иначе приходилось решать эту задачу, каждый раз по-разному и каждый раз недостаточно хорошо.

Что я понимаю под личным облаком и удобной инфраструктурой?

  • приватная сеть с балансировщиком, VPNом внутрь, фаерволами
  • легко масштабируемые вычислительные ресурсы
  • managed базы данных с автобекапами, автообновлениями, горизонтальной и вертикальной масштабируемостью
  • мониторинг и алёрты
  • объектное хранилище и CDN, очереди
  • единый, простой и понятный способ развернуть новое приложение в облаке, независимо от того на чем оно написано
  • service discovery чтобы сервисы могли общаться друг с другом
  • https снаружи и внутри, автогенерация сертификатов
  • полностью автоматизированный blue/green, canary деплоймент
  • хранение секретов и изоляция сервисов друг от друга
  • понятный CI/CD, интеграция с тулзами
  • дашборд чтобы медитировать на метрики загруженности кластера
  • не за все деньги мира
  • всё полностью автоматизированно, так чтобы если завтра война, датацентр взорвали, а человек, который всё разворачивал, пропал, то любой другой боец мог подхватить пачку терраформ шаблонов и поднять всё в новом месте одной командой

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

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

Но единого, и главное, простого решения нет.

Я вижу здесь разрыв. Или мы берём хероку и деплоим один сервис, или мы нанимаем двух девопсов по $8k каждый и строим кубер в амазоне который стоит столько же.

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

Везде, где я работал, такое решение пришлось делать самому и никогда оно не было хорошим.

Конечно, у каждого PaaSа (а то что я предлагаю это именно PaaS) есть фатальный недостаток—он написан не той командой, которая его использует. Все команды так или иначе будут упираться в ограничения платформы, а если делать её слишком универсальной—то мы получим кубернетис.

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


Понравился материал? Подписывайся на мой телеграм канал: https://t.me/full_of_hatred