Sobes.tech
Middle

Šta je Blue-Green deployment?

sobes.tech АИ

Одговор од АИ

Blue-Green implementacija je strategija za puštanje novih funkcija sa minimalnim vremenom zastoja, zasnovana na održavanju dva identična okruženja: "plavo" (trenutna, funkcionalna verzija) i "zeleno" (nova verzija).

Algoritam:

  1. Postoji aktivno "plavo" okruženje koje upravlja svim saobraćajem.
  2. Nova verzija aplikacije se implementira u potpuno identično, ali neaktivno "zeleno" okruženje.
  3. Nakon uspešnih testova u "zelenom" okruženju, saobraćaj se preusmerava na njega.
  4. "Plavo" okruženje se čuva za brzi rollback ili može biti korišćeno za buduće implementacije.

Ključne prednosti:

  • Minimalno vreme zastoja: Prebacivanje saobraćaja se dešava gotovo trenutno.
  • Jednostavan rollback: U slučaju problema sa novom verzijom, saobraćaj se lako može vratiti na "plavo" okruženje.
  • Manji rizik: Nova verzija se testira u izolovanom okruženju pre promene saobraćaja.

Nedostaci:

  • Duple resurse: Potrebni su resursi za održavanje dva potpuna okruženja.
  • Upravljanje stanjem: Može biti teško upravljati stanjem aplikacije ako koristi bazu podataka sa stalnim promenama.

Primer promene saobraćaja korišćenjem load balancera:

// Konfiguracija load balancera ( pojednostavljena)
{
  "listeners": [
    {
      "port": 80,
      "protocol": "HTTP",
      "default_actions": [
        {
          "type": "forward",
          "target_group_arn": "arn:aws:elasticloadbalancing:..." // ARN grupe instanci "plavog" okruženja
        }
      ]
    }
  ]
}
# Komanda za preusmeravanje saobraćaja na "zeleno" okruženje
# (primer za AWS CLI, pretpostavlja se dostupnost ARN nove ciljne grupe)
aws elbv2 modify-listener --listener-arn "arn:aws:elasticloadbalancing:..." --default-actions Type=forward,TargetGroupArn="arn:aws:elasticloadbalancing:..." // ARN grupe instanci "zelenog" okruženja