Jolanta Kriaučiūnienė dirba DevOps inžiniere SaaS įmonėje, kuri teikia buhalterines paslaugas mažoms įmonėms. Praėjusių metų lapkritį jos komanda nusprendė perkelti pagrindinę aplikaciją iš Azure į AWS per vieną savaitgalį. Planas atrodė logiškas. Realybė buvo sudėtingesnė.
Penktadienio vakarą komanda pradėjo duomenų bazės replikavimą. Pirmos dvi valandos praėjo sklandžiai.
Kur prasidėjo problemos
Seštadienio rytą paaiškėjo, kad DNS propagacijos laikas buvo įvertintas per optimistiškai. Dalis klientų po perjungimo vis dar atsidurdavo senoje aplinkoje, nes jų DNS cache nebuvo atsinaujinęs.
Komanda nebuvo paruošusi aiškios komunikacijos plano klientams. Jolanta sako, kad tai buvo didžiausia organizacinė klaida, ne techninė.
Kas padėjo stabilizuoti situaciją
Jie naudojo Route 53 geolocation routing, kad galėtų kontroliuoti, kurie klientai eina į naują aplinką. Tai leido palaipsniui perjungti srautą, o ne vienu metu.
Sekmadienio vakare migracija buvo baigta. Tačiau Jolanta pabrėžia, kad sėkmingas rezultatas nebuvo vien dėl gero plano. Labai padėjo tai, kad komanda turėjo aiškų rollback planą ir neturėjo spaudimo jo nenaudoti.
Rollback planas ne tada svarbiausia, kai viskas gerai. Jis svarbus tada, kai komanda gali juo pasinaudoti be gėdos.
Dabar jie bet kokiai migracijai naudoja bandomąjį perjungimą su nedidele klientų grupe prieš pilną perjungimą. Paprastas sprendimas, kuris anksčiau atrodė nereikalingas.
