Губит людей не пиво.
Старый анекдот. Султан постоянно посылает евнуха привести очередную жену их гарема. В результате евнух не выдержал нагрузки и помер, хотя султан продолжал отлично себя чувствовать. Мораль: убивают не женщины, а беготня за ними (или другой вариант: "утомляет не любовь, утомляют хлопоты").
Я бы перефразировал: убивает не development, а deployment. 20-30% проблем, с которыми я регулярно сталкиваюсь на работе, связана не с самим софтом, а с его установкой и конфигурацией. Бывает, тратишь несколько дней, чтобы понять: "там-то я пропустил запятую". И найденная ошибка обычно ничему тебя не учит, не помогает в будущем работать эффективнее.
Наверное, эта обычная проблема для SOA: легко протестировать каждый сервис в отдельности, но становится тяжело протестировать и обновить всю систему в целом. У нас даже есть два специальных человека, которые занимаются исключительно подготовкой и установкой очередного релиза (это не программисты, и не тестировщики, а именно "установщики"). Процесс установки или обновления каждого сервиса автоматизирован, но всё равно надо знать, в какой последовательности что устанавливать, что от чего зависит. И самое сложное - как откатить назад неудачный релиз.
Автоматизировать обновление всей системы в целом в принципе можно было бы. Но регулярно меняется структура, зависимости между сервисами, количество серверов и их физическое расположение.
3 комментария:
"И самое сложное - как откатить назад неудачный релиз."
Вал, может я чегой-то не понимаю в вашей специфике, но уже давно как существуют виртуальные машины со снепшотами. Откат к снепшоту - дело даже не минут, а секунд...
Да, всё это есть, этим пользуются. Но, допустим, часто бывает, что надо надо откатить не всё целиком, а только один-два глюкавых сервиса (при этом убедится, что всё остальное по-прежнему будет работать).
База данных - тоже интересный момент. У нас load balancer для сервисов, но не для базы. Таким образом, одна база должна в некоторый момент времени корректно работать и с новой, и со старой версией сервиса (и наоборот, обновление базы никогда не должно ломать старый сервис). Поскольку наш сайт работает 24x7, то это важно.
Отправить комментарий