on software
Jan. 18th, 2017 12:04 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Ищу best practices по версионированию и интеропу версий.
Особенно интересны чеклисты или какие-то basics guides, чтобы не писать их самому.
Примеры вопросов, на которые оно должно отвечать:
- Есть кластер, хочется обновлять ноды постепенно, и не тушить при этом кластер. Как облегчить оверхед / сделать более надежные тесты / чтобы ничего не ломалось при апгрейде протокола?
- Есть БД, к ней коннектятся клиенты разных версий. Например, мобильные приложения, которые небыстро апдейтятся. Как правильно это всё поддерживать?
- Фронтенд ходит к нескольким backend services, которые пишутся разными командами. Хочется максимально отвязать друг от друга release cycles этих сервисов, ну и не ломать ничего, понятно.
Если говорить количественно, то хочется сократить
- время релиза новой фичи (вызывающей изменения в протоколах/схемах/форматах)
- время на согласование протоколов (чем больше можно автоматизировать/автоматически проверить - тем лучше)
- количество багов протекающих в продакшен
- время диагностики бага
Почему-то находятся всякие общие слова, но общие слова я и так знаю. Надо либо какие-то тупые и надежные гайды, которые можно пошагово исполнять и не думать про них, либо real-world experience, по которому можно сделать выводы и такие схемы написать.
Особенно интересны чеклисты или какие-то basics guides, чтобы не писать их самому.
Примеры вопросов, на которые оно должно отвечать:
- Есть кластер, хочется обновлять ноды постепенно, и не тушить при этом кластер. Как облегчить оверхед / сделать более надежные тесты / чтобы ничего не ломалось при апгрейде протокола?
- Есть БД, к ней коннектятся клиенты разных версий. Например, мобильные приложения, которые небыстро апдейтятся. Как правильно это всё поддерживать?
- Фронтенд ходит к нескольким backend services, которые пишутся разными командами. Хочется максимально отвязать друг от друга release cycles этих сервисов, ну и не ломать ничего, понятно.
Если говорить количественно, то хочется сократить
- время релиза новой фичи (вызывающей изменения в протоколах/схемах/форматах)
- время на согласование протоколов (чем больше можно автоматизировать/автоматически проверить - тем лучше)
- количество багов протекающих в продакшен
- время диагностики бага
Почему-то находятся всякие общие слова, но общие слова я и так знаю. Надо либо какие-то тупые и надежные гайды, которые можно пошагово исполнять и не думать про них, либо real-world experience, по которому можно сделать выводы и такие схемы написать.