Индекс на дневникаDockup / бележка от практиката
Note / zero-downtime-deployments

Deployment без прекъсване: пълно ръководство

Научете как да deploy-вате приложенията си без прекъсване на услугата с помощта на rolling updates и blue-green deployment стратегии.

Въведение

Deployment-ът без прекъсване вече не е лукс — той е необходимост. В днешния свят, в който услугите трябва да са винаги достъпни, дори няколко секунди downtime могат да доведат до загуба на приходи, накърнена репутация и недоволни потребители.

В Dockup изградихме цялата си платформа около принципа, че deployment-ите трябва да са невидими за потребителите. Ето как постигаме това и как можете да приложите подобни стратегии в собствената си инфраструктура.

Какво представлява deployment-ът без прекъсване?

Deployment без прекъсване означава обновяване на приложенията без прекъсване на услугата. Потребителите продължават да използват приложението безпроблемно, докато се внедряват новите версии.

Основни стратегии

1. Rolling updates

Rolling updates постепенно заменят старите инстанции с нови. Във всеки момент част от инстанциите изпълняват старата версия, а останалите — новата.

# dockup.yaml
deploy:
  strategy: rolling
  maxSurge: 25%
  maxUnavailable: 0

2. Blue-green deployments

Тази стратегия поддържа две идентични production среди. Трафикът се пренасочва от едната към другата, след като новата версия бъде проверена.

3. Canary releases

Canary releases насочват малък процент от трафика към новата версия, преди тя да бъде внедрена навсякъде.

Health checks са от критично значение

Без подходящи health checks стратегията ви за deployment ще се провали. Dockup конфигурира автоматично:

  • Liveness probes: Установяват дали приложението ви работи
  • Readiness probes: Установяват дали приложението ви е готово да обслужва трафик

Заключение

Deployment-ите без прекъсване са постижими с правилните инструменти и стратегии. Dockup се грижи автоматично за всичко това, за да можете да се съсредоточите върху разработването на функционалности, вместо върху управлението на инфраструктурата.