Сначала обновления платформы для Kafka-брокеров были трудоемкими и требовали много времени, требуя нескольких часов ручного мониторинга и ожидания. Чтобы улучшить это, была реализована многосетевая архитектура, позволяющая обновлять несколько брокеров одновременно без влияния на доступность. Однако встроенная стратегия обновления rolling update Kubernetes не подошла из-за зонального распределения реплик.
Была разработана пользовательская логика для управления обновлениями, позволяющая нескольким брокерам в зоне быть перезапущенными одновременно. Это было реализовано как задача Kubernetes batch для обеспечения надежности и предотвращения случайных проблем с развертыванием.
Тестирование в производстве показало, что с параллелизмом в три обновления могли быть завершены примерно за два часа. Хотя перезапуск всех брокеров в зоне одновременно технически был возможен, это было избегнуто, чтобы не увеличивать нагрузку на оставшиеся брокеры.
Многосетевая архитектура и пользовательская логика обновления значительно сократили время обновления, с семи часов до примерно двух часов. Это улучшение не только сэкономило время, но и уменьшило трудоемкость и стресс, связанные с обновлениями.
Новый процесс обеспечил быстрые и эффективные обновления, с минимальным влиянием на кластер Kafka. Успех проекта измерялся не только сокращением времени, но и легкостью и миром духа, которые обеспечивались во время обновлений.
etsy.com
Adding Zonal Resiliency to Etsy’s Kafka Cluster: Part 2
