Dużo zalezy od samej aplikacji. Pierwszy nietrywialny problem: jak zapenić dostępność usługi kiedy baza jest migrowana na nowszą wersje
Musisz tak projektować zmiany, żeby były kompatybilne wstecz, nawet jeżeli to zwiększy ilośc wdrożeń, bo wdrażasz nowa wersje kompatybilna wstecz, potem wersje ktora to czysci i migruje dane na nowa, te ktore wpadly do systemu podczas migracji
Jezeli masz jakas mega zmiane to mozesz odstapic od reguly i wprowadzic ja normalnym trybem, gdzie usługa jest niedostepna przez jakis czas, ale nie powinno byc takich zmian duzo.
Drugi: w przypadku awarii, jak przywrócić poprzednią bazę i powtórzyć transakcje, które poleciały do nowej wersji.
To samo co wyzej - wprowadzajac nowa wersje musisz byc komptatybilny wstecz i liczyc sie z tym, ze masz dwa modele danych przez pewien czas, dopiero majac nowy model wdrazasz wersje, ktora pozbywa sie starego
Nie wiem co rozumiesz przez pojęcie bezstanowy web, ale ludzie produkcyjnie tak działają, czyli B/G deployment, bazy danych, migracje, kolejki i się da. To, że jest to trudniejsze i bardziej czasochłonne jest kosztem wprowadzenia zero downtime deployment, cieżko mi wymyśleć realny przykład gdzie nie ma to kosztów, pomijajac zestawienie odpowiedniej infrastruktury, jeżeli takiej nie masz, PoCe nie PoCe, testy