На волне нынешнего хайпа про инфраструктурные платформы каждый, наверное, слышал о книге Team Topologies, вышедшей года 3 назад.
Я ее сейчас пересказывать не буду, поэтому если какие-то термины или рассуждения ниже вам окажутся непонятными я рекомендую прочитать сперва ее, а затем вернуться к моему посту.
Из всех тем, рассматриваемых в Team Topologies наиболее непонятная тема — это Enabling team, “модифицирующая” или “преобразующая” команда. Я буду использовать слово Модифицирующая Команда, потому что такой же перевод используется в Platen.
Меня периодически спрашивают каким образом строить инфраструктуру для небольших проектов, когда в команде еще нет компетенций админа/девопс-инженера ни у руководителя или программистов, ни в в виде выделенного человека. Что при этом выбрать — выделенные сервера, облако или Kubernetes? Я сейчас не буду делать какие-то технологические рекомендации, но опишу на что нужно обратить внимание организационно, чтобы можно было сделать такой выбор.
При планировании развертывания любого приложения для продакшна важно всегда в том или ином виде продумывать как минимум следующие 5 бизнес-процессов / Value stream:
15 лет назад DevOps начинался в попытке “подружить” разработку и эксплутацию — через культуру, обмен знаниями и совместную работу. Затем быстро развернулся в сторону ускорения поставки изменений из разработки в продакшн (активность Lean Value Stream Mapping), продолжился в понимание того, что программисты создают не просто код в репозитории (и даже не протестированный код в репозитории), а работающее приложение в продакшне (практики Observability и SRE). И последние несколько лет DevOps перешел к рассмотрению взаимодействия команд на масштабе (фреймворк Team Topologies).
Что при этом менее заметно, так это происходящая одновременно с этим эволюция корпоративной архитектуры:
На днях наткнулся на инструмент Juju от Canonical.
Обрывочные сведения из интернета утверждают, что это инструмент управления конфигурацией наподобие Chef, Ansible или Puppet.
Я прочитал наискосок доки по нему, заглянул в репозитории с charms-модулями (аналог кукбуков или плейбуков) и утверждаю, что это не так.
Juju — это скорее VM-agnostic оркестратор (наподобие Nomad или Kubernetes). На нем можно декларативно описывать инфраструктурную конфигурацию приложения: какие приложения у нас запущены, на каких машинах, в скольки копиях, как они связаны с другими сервисами.
Но в отличие от того же Kubernetes он может работать не только с Docker, но и с любыми видами виртуальных машин.
Хочу рассказать о том, как решить проблему, которая наверняка знакома любителям аппаратных синтезаторов.
Что делать, если хочется состыковать MIDI-контроллер и синтезатор, но у одного из них есть только USB разъем и нет MIDI? Причем, по понятным причинам хочется все это сделать не используя компьютер.
Я несколько раз перерывал интернет в поисках устройства для этого, но так ничего и не нашел — кроме пары ссылок на пару малотиражных устройств за немалые деньги, которые уже сняты с производства.
В какой-то момент меня осенило: можно же взять Raspberry Pi и сделать все на нем — это самый настоящий компьютер, а на нем такие вещи делаются легко.