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 #355

Open
13 tasks
jimleroyer opened this issue May 14, 2024 · 8 comments
Open
13 tasks

Upgrade our stack to latest Python #355

jimleroyer opened this issue May 14, 2024 · 8 comments
Assignees
Labels
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.

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 latest agreed and possible Python version.
  • The lambdas components are done by task Upgrade lambda and New Relic to latest supported version #354 and not this task.
  • Run rollercoaster tests
  • Run load tests and compare performance to 3.10 (about 5500 emails / min max sustained)
  • have a bugbash on it
  • deploy and test on dev
  • document in tricks and tips how we can deploy branches to dev

QA Steps

  • Smoke tests are ran against newly upgraded lambdas.
  • Performance tests are ran against newly upgraded lambdas.
@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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