mirror of
https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/presentations.git
synced 2026-09-27 05:51:06 +00:00
add old presentations
This commit is contained in:
@@ -0,0 +1,70 @@
|
|||||||
|
# Migration test -> prod HAPROXY
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Sommaire
|
||||||
|
- Haute Disponibilité (HA) : éviter les coupures en prod
|
||||||
|
- Déploiement : copie de test à prod
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Stratégies de déploiement
|
||||||
|
- Blue Green Deployment
|
||||||
|
- Rolling Deployment
|
||||||
|
|
||||||
|
Ressources : [Ansible](https://docs.ansible.com/ansible/latest/playbook_guide/guide_rolling_upgrade.html#the-rolling-upgrade), [AWS](https://docs.aws.amazon.com/pdfs/whitepapers/latest/blue-green-deployments/blue-green-deployments.pdf#welcome), [Blog Personnel](https://blog.itaysk.com/2017/11/20/deployment-strategies-defined)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# HA
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# HA
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# HA
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# HA
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# HA : Notes
|
||||||
|
- Reverse proxy
|
||||||
|
- X-Forwarded-For
|
||||||
|
- Choix du logiciel : HaProxy, Nginx, Apache...
|
||||||
|
- Rollback difficile (sauf si...)
|
||||||
|
- Health checks
|
||||||
|
- Serveur "sur demande"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Copie test -> prod
|
||||||
|
- [ZFS](https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/gdml_deployment/-/blob/zfs/prod_deploy.sh?ref_type=heads)
|
||||||
|
- [rsync](https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/gdml_deployment/-/blob/main/haproxy/prod_deploy.sh?ref_type=heads)
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
| | ZFS | rsync |
|
||||||
|
| ------------------------------------ | --- | ----- |
|
||||||
|
| Abstraction hyperviseur | | x |
|
||||||
|
| Simplicité/Complexité de maintenance | | x |
|
||||||
|
| Simplicité/Complexité d'usage | | x |
|
||||||
|
| Déduplication des données | x | |
|
||||||
|
| Optimisation | x | |
|
||||||
|
| Rollback | x | (?) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Choix ?
|
||||||
|
* **Rsync** : pour les petits datasets ou pour des fichiers "statiques"
|
||||||
|
* **ZFS** : pour les grosses données (>)
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
# Migration Geodesic ZFS
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
# Needs
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
- Rsync
|
||||||
|
- Offline migration (data files)
|
||||||
|
- Online migration (dumps)
|
||||||
|
- Snapshots
|
||||||
|
- Virtual Machines
|
||||||
|
- ZFS/BTRFS
|
||||||
|
- Container-based solutions
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## rsync/scp : offline migration
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## rsync/scp : online migration
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## rsync/scp
|
||||||
|
#### Possible practical issues :
|
||||||
|
- File permissions
|
||||||
|
- Postgres permissions
|
||||||
|
- SSH keys
|
||||||
|
- Configuration mismatch
|
||||||
|
|
||||||
|
<!--- Static files : `rsync` or `scp` --->
|
||||||
|
```diff
|
||||||
|
+ No big architectural changes
|
||||||
|
- Lots of configuration
|
||||||
|
- Heavy : will take time to backup and restore
|
||||||
|
- Hacky ?
|
||||||
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Snapshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Snapshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Snapshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Snapshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### Virtual Machine cloning
|
||||||
|
```diff
|
||||||
|
- Must fiddle with hypervisor
|
||||||
|
- We don't want to nest virtual machines
|
||||||
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### ZFS
|
||||||
|

|
||||||
|
> Conventional Filesystem
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### ZFS
|
||||||
|

|
||||||
|
> Copy on write (CoW)
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### ZFS
|
||||||
|

|
||||||
|
> Simplified CoW representation
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### ZFS
|
||||||
|

|
||||||
|
> Snapshots using CoW
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### ZFS
|
||||||
|
#### Tools :
|
||||||
|
- [zrepl](https://zrepl.github.io/quickstart.html)
|
||||||
|
- [syncoid](https://github.com/jimsalterjrs/sanoid/wiki/Syncoid)
|
||||||
|
```diff
|
||||||
|
+ Automatic / Seamless
|
||||||
|
- Possible use of untested additional tools/programs
|
||||||
|
- Additional system complexity
|
||||||
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### Container-based solutions
|
||||||
|
#### LXD
|
||||||
|
- Hypervisor for Linux Containers (LXC) and virtual machines
|
||||||
|
- Can use ZFS
|
||||||
|
- Canonical maintaned
|
||||||
|
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ Automatic / Seamless
|
||||||
|
- Additional architectural complexity
|
||||||
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
#### Kubernetes Volume Cloning
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ Automatic / Seamless
|
||||||
|
- Additional architectural complexity
|
||||||
|
- Definitely Hacky
|
||||||
|
- Kubernetes
|
||||||
|
- Better handled with operators/pods
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user