Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade our stack to latest Python 3.12 #355

Open
10 tasks
jimleroyer opened this issue May 14, 2024 · 9 comments
Open
10 tasks

Upgrade our stack to latest Python 3.12 #355

jimleroyer opened this issue May 14, 2024 · 9 comments
Assignees
Labels
Epic Reliability Task related to reliability. Security | Sécurité Tech Debt An issue targeting an identified technical debt

Comments

@jimleroyer
Copy link
Member

jimleroyer commented May 14, 2024

Description

As a software developer working on GCNotify stack,
I want the Python stack to be upgraded at latest supported version,
So that I can leverage the latest features of the language and better/safer code.

As a system ops working on GCNotify stack,
I want the Python stack to be upgraded at latest supported version,
So that I can leverage the latest performance improvement
And process notifications faster.

WHY are we building?

To get latest performance improvements, features and security updates of the Python language/runtime.

Several improvements from Python 3.10 to 3.12 will benefit us:

  • Speed improvements
  • Language improvements
  • Security and bug fixes
  • Library upgrades

WHAT are we building?

Upgrade the stack to the latest possible version of Python. A few considerations:

  • It is possible that we cannot upgrade to the latest of the latest (3.12 at the time of this writing for the stable version), as this might be blocked by a dependency library that did not release a version supporting the latest. For example, we might have to upgrade from version 3.10 to version 3.11, and wait a bit longer to migrate to version 3.12.
  • The lambdas might have additional considerations that might limit the possible maximum Python version we can use, such as supported runtime and also monitoring libraries that need to support that environment (such as New Relic). Consider doing this work in Upgrade lambda and New Relic to latest supported version #354 .

VALUE created by our solution

Better performance, security and reliability.

Acceptance Criteria

  • utils 2
  • document-download-api 2
  • admin 2
  • api 3
  • The Kubernetes components running on Python are upgraded to Python version 3.12.

QA Steps

  • Run load tests and compare performance to 3.10 (about 5500 emails / min max sustained)
  • Smoke tests are ran against newly upgraded lambdas.
  • Performance tests are ran against newly upgraded lambdas.
  • Run rollercoaster tests
  • Run a bug bash with the team to test all upgraded components.

Run in staging for at least a few days to ensure it's sane before pushing to production

@jimleroyer jimleroyer added Reliability Task related to reliability. Security | Sécurité Tech Debt An issue targeting an identified technical debt labels May 14, 2024
@sastels
Copy link

sastels commented Nov 13, 2024

@sastels sastels self-assigned this Nov 13, 2024
@sastels
Copy link

sastels commented Nov 15, 2024

also admin WIP cds-snc/notification-admin#1996

@sastels
Copy link

sastels commented Nov 18, 2024

also started on api

@sastels
Copy link

sastels commented Nov 19, 2024

fixing many broken tests 😭

@sastels
Copy link

sastels commented Nov 20, 2024

Tests passing, ran admin / api / dd-api locally and all working! Going to give the changes another read through and then put for review.

@sastels
Copy link

sastels commented Nov 20, 2024

Will convert this card to an epic and create separate cards for the 4 repos.
utils 2
document-download-api 2
admin 2
api 3

@sastels
Copy link

sastels commented Nov 20, 2024

Documented how to build and run admin and dd-api on dev. dd-api crashed on start :/ This is a problem for Thursday Steve.

Thursday Steve should also break up this card.

@jimleroyer
Copy link
Member Author

It seems the DD-API pod restart once in a while even without the Python upgrade. Steve will double-validate and create a card to follow up on that if that's the case.

@sastels
Copy link

sastels commented Nov 25, 2024

(main branch) dd-api pods not restarting on prod, this might just be a dev issue.

@jimleroyer jimleroyer changed the title Upgrade our stack to latest Python Upgrade our stack to latest Python 3.12 Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Reliability Task related to reliability. Security | Sécurité Tech Debt An issue targeting an identified technical debt
Projects
None yet
Development

No branches or pull requests

2 participants