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

Fixes #85: Write an ADR-010 about the infrastructure #86

Merged
merged 50 commits into from
May 1, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
4956011
Create 010-infrastruture.md
ThomasCardin Dec 15, 2023
ae01252
Create 010-infrastructure.fr-ca.md
ThomasCardin Jan 3, 2024
28941ec
Update and rename 010-infrastruture.md to 010-infrastruture.en-ca.md
ThomasCardin Jan 3, 2024
c423fdd
issue #85: Alternatives Considered (template)
ThomasCardin Jan 3, 2024
60fc769
resolved comments, added formating rules consistent with organisation
SonOfLope Mar 4, 2024
3b7a666
Issue #85: removed double
SonOfLope Mar 4, 2024
1fe591c
Merge branch 'main' into 85-write-an-adr-about-the-infrastructure
SonOfLope Mar 4, 2024
7f0de8f
Issue #85: Resolving merge conflicts insettings.json
SonOfLope Mar 4, 2024
ddd1c93
workflow path cleanup
SonOfLope Mar 4, 2024
3da9d35
Issue #85: Update documentation with comparison details and adopted s…
SonOfLope Mar 19, 2024
357af54
issue #122: gitops adr (fr)
ThomasCardin Apr 4, 2024
8095b18
Issue #85: Update workflow
SonOfLope Apr 8, 2024
910a1e0
Add ADR 013 completed and template for 012
SonOfLope Apr 8, 2024
652257b
adds secret management ADR
SonOfLope Apr 8, 2024
08bbfea
update secret management with reference to our architecture doc
SonOfLope Apr 8, 2024
b116468
issue #85: adr on container and container orchestration
ThomasCardin Apr 10, 2024
435257f
Issue #85: Vouch-proxy ADR
SonOfLope Apr 12, 2024
511c5a4
Issue #85: Fix markdown
SonOfLope Apr 12, 2024
c66445c
issue #85: adr containers
ThomasCardin Apr 12, 2024
4368f9f
issue #85: networking adr
ThomasCardin Apr 15, 2024
62d4d56
issue #85: security adr (wip)
ThomasCardin Apr 17, 2024
b5211bb
issue #85: markdown linting fix for security adr
ThomasCardin Apr 17, 2024
070adb3
issue #85: en-ca adr for gitops, security, container and networking
ThomasCardin Apr 18, 2024
4deb6d7
Issue #85: Finalize ADR 10
SonOfLope Apr 18, 2024
596342b
Merge remote-tracking branch 'origin/main' into 85-write-an-adr-about…
ThomasCardin Apr 18, 2024
3ddda9f
Merge branch '85-write-an-adr-about-the-infrastructure' of https://gi…
ThomasCardin Apr 18, 2024
dc40e0a
Issue #85: translate to EN remaining ADR's
SonOfLope Apr 18, 2024
10ed080
issue #85: redundancy
ThomasCardin Apr 18, 2024
d20c380
Merge branch '85-write-an-adr-about-the-infrastructure' of https://gi…
ThomasCardin Apr 18, 2024
36d6e37
issue #85: redundancy (en)
ThomasCardin Apr 18, 2024
a2e0374
Update adr/013-IaC-tool.fr-ca.md
SonOfLope Apr 22, 2024
514b8ed
Update adr/013-IaC-tool.fr-ca.md
SonOfLope Apr 22, 2024
9378ccb
Issue #85: typo containers ADR
SonOfLope Apr 22, 2024
09453de
Update adr/015-authentication-management.fr-ca.md
SonOfLope Apr 22, 2024
8b19873
Issue #85: Add editorConfig and clean up ci
SonOfLope Apr 22, 2024
854f342
issue #85: typo
ThomasCardin Apr 22, 2024
e147c79
issue #85: fixed repo-standard errors
ThomasCardin May 1, 2024
45d2376
issue #85: added TESTING.md
ThomasCardin May 1, 2024
c569cfa
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
648ecee
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
08089d4
issue #85: markdown errors, line-length
ThomasCardin May 1, 2024
5ad3d05
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
0bf68f5
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
437dbba
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
52ee2e2
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
9ed04cf
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
b49170e
issue #85: dead links
ThomasCardin May 1, 2024
9f2470c
Merge remote-tracking branch 'origin/main' into 85-write-an-adr-about…
ThomasCardin May 1, 2024
3f4ddab
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
fdc4276
issue #85: fixed some markdown linting errors
ThomasCardin May 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
189 changes: 189 additions & 0 deletions adr/010-infrastructure.fr-ca.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
# ADR-010 : Infrastructure

## Résumé Exécutif

Cette section fournit un bref résumé de la décision prise, en soulignant les
points principaux afin que le lecteur puisse comprendre l'essentiel sans avoir
à lire l'ensemble du document.

## Contexte

Notre équipe fait face à des défis en matière de déploiement de solutions, notamment dans le choix des fournisseurs de cloud. Historiquement, nous utilisions Google Cloud Run et Azure App Service. Cependant, en raison de l'absence de compte Google Cloud et des restrictions d'accès sur Azure, nous nous retrouvons à basculer d'un compte à l'autre, entraînant d'importants temps d'arrêt pour nos applications.
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

De plus, la création manuelle de tous les services sur les fournisseurs de cloud via le ClickOps s'est avérée fastidieuse. En ce qui concerne la sécurité, nous utilisons actuellement un Key Vault dans Azure pour récupérer manuellement les valeurs des variables d'environnement, mais cela ne constitue pas une solution optimale pour la gestion des secrets.

Le scalling de nos applications n'est pas actuellement une priorité, car nous avons une visibilité fixe sur le nombre d'utilisateurs. Cependant, nous n'avons pas encore mis en oeuvre de solution de scaling.
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

En ce qui concerne le monitoring et la télémétrie, nous n'avons actuellement rien en place en dehors des outils fournis par les fournisseurs de cloud. Nous reconnaissons la nécessité d'améliorer ces aspects pour une gestion plus efficace de nos applications.
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

Bref, de nombreuses tâches sont actuellement effectuées manuellement. Bien que nous disposions de github workflow pour déployer des images Docker, la gestion des déploiements sur différents fournisseurs de cloud n'est pas automatisée. En cas d'erreur en production, aucune solution ne permet aux développeurs de résoudre rapidement le problème
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

Voici quelle que cas d'utilisations qui on été discuter qu'on voudrait gérer:
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

- Gérer la base de données PostgreSQL (et bientôt PostgreSQL ML) sans recourir au ClickOps ;

- Accroître la redondance des données de manière plus efficace ;

- Déployer, gérer, surveiller et instrumenter les applications au sein de l'organisation ;

- Améliorer la gestion des secrets ;

- Éliminer les silos entre l'équipe de sécurité et l'équipe DevOps au sein de l'organisation ;

- Mettre en place des déploiements sur tous les fournisseurs de cloud en cas de pannes. Cela inclue une persistances des données dans les différents cloud provider ;
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

- Automatisation du scalling (HPA) ;
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

- Adopter une stratégie de sauvegarde et de reprise après sinistre ;

- Créer une documentation facile de lecture et d'adaption pour permettre une transition "shift-left" ;
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

- Éviter les points de défaillance uniques.

## Décision

Notre solution consistera à déployer des clusters Kubernetes sur différents fournisseurs de cloud. Voici les composants qui seront déployés pour gérer divers cas d'utilisation

- Gestion des secrets: HashiCorp Vault. Cependant, nous prévoyons d'explorer d'autres solutions avant de nous engager pleinement avec Vault ;

- Gestion des deployments: ArgoCD et Kustomize (nous envisageons également Flux) ;

- Gestion des environnements de developpement: vcluster ;

- Gestion des VM's (au besoins): KubeVirt ;
SonOfLope marked this conversation as resolved.
Show resolved Hide resolved

- Gestion de l'instrumentation des applications: OpenTelemetry et Clickhouse ;

- Gestion du monitoring: Grafana et Prometheus pour collecter des métriques spécifiques aux applications déployées avec Helm ;

- Gestion du load balancing: Ingress NGINX ;

D'autres composants seront ajoutés au besoin.

## Alternatives Considérées

Cette section présente les différentes options ou solutions considérées avant
d'arriver à la décision finale. Chaque alternative est généralement discutée
dans une sous-section.

### Mozilla SOPS

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Contour

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Kong

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Traefik

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### HAProxy Ingress

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Istio Ingress

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Flux

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Carvel ytt

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### cdk8s

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### Carvel ytt

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

### kapp-controller

Avantages :

- Aspects positifs de cette alternative.

Inconvénients :

- Aspects négatifs de cette alternative.

## Conséquences

Cette partie décrit les résultats attendus, positifs comme négatifs, de la
décision. Cela peut inclure son impact sur différentes parties prenantes ou
toute action qui doit être prise à la suite de la décision.

## Références

Toute documentation, recherche ou données soutenant la décision peuvent être
citées ici. Cela peut inclure des articles académiques, des articles de blog ou
des documents internes.
63 changes: 63 additions & 0 deletions adr/010-infrastruture.en-ca.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# ADR-XXX : Title
rngadam marked this conversation as resolved.
Show resolved Hide resolved

## Optional Illustration

This section can contain diagrams, flowcharts, or any visual aids that help in
understanding the architecture decision. It is optional and should be included
if it adds value to the document.

## Executive Summary

This section provides a brief summary of the decision being made, outlining the
main points so that the reader can understand the gist without reading the
entire document.

## Context

The context section sets the stage and provides background information necessary
to understand the problem or decision. It might include the scope of the
decision, stakeholders involved, and current circumstances.

## Decision

This section clearly states the decision that has been made, and may also
include justification and reasoning.

## Alternatives Considered

This section presents the different options or solutions considered before
arriving at the final decision. Each alternative is usually discussed in a
subsection.

### Alternative 1

Pros:

- Positive aspects of this alternative.

Cons:

- Negative aspects of this alternative.

### Alternative 2

Pros:

- Positive aspects of this alternative.

Cons:

- Negative aspects of this alternative.

Add as many alternatives as necessary.

## Consequences

This part outlines the expected outcomes, both positive and negative, of the
decision. This may include its impact on different stakeholders, or any actions
that need to be taken as a result of the decision.

## References

Any documentation, research, or data that support the decision can be cited
here. This can include academic papers, blog posts, or internal documents.