pagopa / dx

Devex repository for shared tools and pipelines.
https://pagopa.github.io/dx/docs/
1 stars 0 forks source link

Add healthcheck ping and optional slot swap #77

Open BurnedMarshal opened 1 month ago

BurnedMarshal commented 1 month ago

List of changes

Add some improvements in deploy webapp pipeline:

Motivation and context

The deploy pipeline has not a step that verify that the health check endpoint is alive after the deployment. A broken web app could be deployed causing production outages. For some kind of deploy the team should have the possibility to deploy only on staging slots testing the application before the production switch. Moreover some deploy could be handled with progressive traffic routing between stage and productions slots.

Type of changes

Does this introduce a change to production resources with possible user impact?

Other information

lucacavallaro commented 1 month ago

We intentionally removed the ping from the health check because, with the right environment variables set (WEBSITE_SWAP_WARMUP_PING_PATH etc.), it becomes unnecessary.

See https://github.com/pagopa/dx/pull/47#discussion_r1645955762

BurnedMarshal commented 1 month ago

We intentionally removed the ping from the health check because, with the right environment variables set (WEBSITE_SWAP_WARMUP_PING_PATH etc.), it becomes unnecessary.

See #47 (comment)

Thanks for the information, I miss it. Unfortunately this pipeline has an hidden requirement to work properly and safely. If I'm not wrong only 2 function has the correct settings in their configuration fims and cgn-onboarding-portal-infra. We should think a way to inform clearly the final users about all the requirements. For now I'm removing the ping step and the related variable, adding a small comment with the Azure documentation reference.

lucacavallaro commented 1 month ago

We intentionally removed the ping from the health check because, with the right environment variables set (WEBSITE_SWAP_WARMUP_PING_PATH etc.), it becomes unnecessary. See #47 (comment)

Thanks for the information, I miss it. Unfortunately this pipeline has an hidden requirement to work properly and safely. If I'm not wrong only 2 function has the correct settings in their configuration fims and cgn-onboarding-portal-infra. We should think a way to inform clearly the final users about all the requirements. For now I'm removing the ping step and the related variable, adding a small comment with the Azure documentation reference.

maybe we can update the function/app services modules to include these variables by default

this pipeline has other hidden requirements, for example the RUN_FROM_PACKAGE variable (that is enforced by the function module)