У микросервисов есть несомненные преимущества. Однако, как когда-то Scrum, микросервисы поддаются все большей компрометации от бездумного внедрения. Например, кто-то услышал, что микросервисы - это автономные команды, автономная поставка. Это, действительно, так, однако беда случается тогда, когда решение перейти на микросервисы становится политическим, а не продиктованным потребностью бизнеса с четкой оценкой все требуемых изменений в архитектуре, орг. структуре, процессах, инфраструктуре. И тут начинается самое интересное. Оказывается, что отсутствует хотя бы гигиенический минимум инженерных практик и процессов, все тестирование ручное, все развертывание ручное, разработчики работают по четкому тз и не особо погружены в предметную область...ну то есть все как-то работает и даже вроде неплохо, и фичи выпускаются «быстро» и продукт зарабатывает. Только почему-то в совершенно не инженерной области все больше проблем. Программисты уходят к конкурентам (и не одни, а со своими знаниями), высокая скорость поддерживается героизмом по вечерам и выходным, все больше дефектов, да и затраты на кофе в компании выросли кратно. Но задачи выполняются. И в таком «типа скраме» звучит «нам нужны микрсоервисы». Нет. Не нужны. Для начала нужны простые вещи: 1. Визуализация потока создания технологической ценности (то, что станет delivery pipeline) 2. Выявление потерь в этом потоке 3. Готовность к устранению этих потерь (это может привести и к политике работы с help desk и процессам взаимодействия с безой и инвестициям в обучение/автоматизацию тестирования) 4. Обложить все что можно телеметрией. Иначе мы даже эффект от перехода на микросервисы не оценим. 5. Сделать систему разработки предсказуемой и надежной. Так, чтобы планировать было можно и выполнять работу без постоянных переработок. Для этого существует исчерпывающий набор практик на сокращение объемов незапланированной работы (в том числе вносящей серьезный вклад в неопределенность). Параллельно можно провести Event Storming для создания стратегического дизайна, выделения модулей, целевого рефакторинга в сторону слабо связанных модулей. И вот, когда разработчики перестанут уходить, когда все поймут, что это не потогонка в погоне на индивидуальным KPI на внедрение микросервисов, тогда можно переходить. Интересно, что к этому моменту скилы прокачиваются так, что в целом нередко потребность в микросервисах отпадает. Так и хорошо, если мы можем обеспечить бизнес-результат, не добавляя сложность в продукт.
У микросервисов есть несомненные преимущества. Однако, как когда-то Scrum,…
Из этого канала
- #101"В поддержку прерыдущего поста лишь небольшой список недостастков микросервисов…
"В поддержку прерыдущего поста лишь небольшой список недостастков микросервисов в сравнении с монолитом от участников моих курсов (ничего не додумывал,…
- #102А те, у кого получилось, называют такие преимущества, часть из которых прямо…
А те, у кого получилось, называют такие преимущества, часть из которых прямо противоположна недостаткам из предыдущего сообщения.
- #103Неслабый gap образовался в области enteprise architecture в отношении…
Неслабый gap образовался в области enteprise architecture в отношении микросервисов. В любой компании в том или ином виде существует архитектура этой компании.
- #99Исследование состояния DevOps в России. Полезное и важное дело от Экспресс 42 и…
Исследование состояния DevOps в России. Полезное и важное дело от Экспресс 42 и Онтико.
- #98Достойное собрание материалов по RBAC для k8s. Тема хоть и узкая, но одна из…
Достойное собрание материалов по RBAC для k8s. Тема хоть и узкая, но одна из наиболее проблемных когда дело доходит до практики. https://rbac.dev