From: | Nikolay Samokhvalov <samokhvalov(at)gmail(dot)com> |
---|---|
To: | Zahir Lalani <ZahirLalani(at)oliver(dot)agency> |
Cc: | "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Framework for 0 downtime deploys |
Date: | 2021-05-22 12:31:30 |
Message-ID: | CANNMO+LfxEfXbTbCyFaDiFNoMbeofaFucO73nLf4sL3oDEg=Cw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
No silver bullets exist (yet). A couple of things I can recommend:
1. GitLab's experience of changing schema without downtime and maintaining
backward compatibility – they have open documentation and a lot of things
solved and documented
- start here:
https://docs.gitlab.com/ee/development/migration_style_guide.html
- check their migration_helpers.rb, plenty of useful things there
2. What my team and I are doing with respect to database migration testing:
https://postgres.ai/. We created Database Lab Engine, an open-source tool
to clone databases of any size in seconds and test, manually or
automatically in CI, anything you want using "full-size" databases. It can
help you catch and block dangerous changes leading to downtime, as well as
(if you have a well-maintained set of tests for CI) enforce the backward
compability.
Nik
On Sat, May 22, 2021 at 2:12 PM Zahir Lalani <ZahirLalani(at)oliver(dot)agency>
wrote:
> Confidential
>
> Hello All
>
>
>
> I wonder if I could garner some of the wealth of experience on this group:
>
>
>
> Our current application deployments (every 3 weeks) require about 30min
> downtime. We are now tasked of making this 0 downtime.
>
> From all the reading I have done, we have solutions for the infrastructure
> and code deploy, but with regards to the DB the main issue seems to be
> keeping the new deploy backwards compatible – functions/tables/fields – all
> of it.
>
>
>
> That seems like quite a large management task and would require careful
> reviews of changes. Is there any type of framework that already manages
> this type of capability? Or are there aspects of PG that we should be using
> in this regard?
>
>
>
> Thx
>
>
>
> Z
>
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Kellerer | 2021-05-22 12:32:57 | PG 14 - can't upgrade from a database using an aggregate with anyelement and anyarray |
Previous Message | Zahir Lalani | 2021-05-22 11:11:46 | Framework for 0 downtime deploys |