Я изучил DCOS до необходимого уровня и понял, как его поднимать. Вариантов несколько, от абсолютно ручного до маленького симпатичного шаблона.
Если я буду поднимать его вручную, мне нужно поднять маленький bootstrap сервер - этакий PXE на максималках. По умолчанию, DCOS предлагает задавать статичный IP адрес для мастера - а это мне совершенно не подходит, ведь в Амазоне подразумевается, что виртуалки падают и нужно уметь поднять все снова.
Если я задам динамический поиск мастера, то мне нужно будет:
- Поставить перед мастером балансировщик.
- Поднять S3 bucket для Exhibitor/Zookeeper
И еще пара бессмысленных сервисов, и все равно я не достигаю моей главной цели - автоматизации всего и вся.
Видите ли, если смотреть на задачу в упор, то она простая - подними кластер. Работы на полчаса, запустил, подождал, не успеешь налить кофе, как уже все будет готово.
Но мне как архитектору и в первую очередь специалисту нужно видеть, как у нас любят говорить, Bigger Picture. А “большая картина” подразумевает, что подход к внедрению новых систем и мощностей надо менять.
Помните, я говорил, что архитекторов не нанимают, когда все хорошо? Это надо помнить всегда, особенно когда вы беретесь за задачу или проект. Смотря на проблему/историю со стороны бизнеса, я осознаю, что проблема не в кластере. Нужно фундаментально менять подход к решению задач, применять новые способы, экспериментировать, но самое важное - убеждаться в их эффективности и added value. Пляшите от этого.
Я потратил на исследование DCOS чуть больше недели, осталось мне по сути немного - найти способ красиво и аккуратно это дело собрать.
Поскольку я очень хочу в Infrastructure-as-Code, я сначала думал задекларировать конфигурацию bootstrap сервера в SaltStack, но уперся в то, что динамическое обнаружение мастеров через bootstrap, как написано выше, тот еще геморрой.
Mesosphere предлагает использовать шаблон Cloudformation, который сам соберет всю инфраструктуру с нуля. Звучит круто, но эта дура собирает все действительно с нуля - от сетевой инфраструктуры до машин. Впихнуть такой шаблон не глядя в уже существующую сетку элементарно невозможно. Остается его перепиливать под свои задачи.
Конечно, я могу собрать свой велосипед, впихнуть всю структуру под Terraform или Ansible, но, раз уж мы засели в Амазоне, имеет смысл копать в сторону Cloudformation.
Я хотел бы добавить элемент политики, как неотъемлемую часть любого исследования, но мои коллеги оказались на редкость податливыми - даже спорить не стали.
Теперь дело за малым - выбросить все лишнее из шаблона и продолжить эксперименты.
Post #190
225