CGI Architecture des SI 10/01/2019 · 2019. 3. 9. · "We don't rollback, we fix it" (etsy) CGI –...
Transcript of CGI Architecture des SI 10/01/2019 · 2019. 3. 9. · "We don't rollback, we fix it" (etsy) CGI –...
CGI – Architecture des SI – 10/01/2019
CGI – Architecture des SI – 10/01/2019
QUI SOMMES NOUS ?
Francis BELLANGER
Chief Troll Officer
@CGI Lyon
5ème
LEADER MONDIAL
1976
FONDÉ DEPUIS
73 000
PROFESSIONNELS
+ 5 000
CLIENTS
400
BUREAUX
4
CONTINENTS
CGI – Architecture des SI – 10/01/2019
GESTION DU RUN
PATTERNS D’ARCHITECTURE MODE ET TENDANCE
NAISSANCE D’UN SI DEFINITIONS
AGENDA
DEPLOIEMENT
CGI – Architecture des SI – 10/01/2019
NAISSANCE D’UN SI
LA BOUTIQUE DE PELUCHES DE M. DUDUCHE
LA BOUTIQUE DE PELUCHES DE M. DUDUCHE – MON BEAU PETIT SI 1.0
LA BOUTIQUE DE PELUCHES DE M. DUDUCHE – MON BEAU SI 2.0
LA BOUTIQUE DE PELUCHES DE M. DUDUCHE – MON SI 3.0
DUDUCHE WORLD COMPANY SI 4.0
CGI – Architecture des SI – 10/01/2019
ARCHITECTURE
DÉFINITIONS
DÉFINITIONS - ARCHITECTURE
Socle Technique Besoins Métier Engagement de Service
Architecture
DÉFINITIONS ARCHITECTURE
L’architecture est une discipline qui vise à étudier, définir et proposer les évolutions du système d’information, dans le respect des contraintes métier et des objectifs stratégiques de l’entreprise.
DÉFINITIONS - DIAGRAMME
Perspective qui dépend de son auteur et compréhensible par lui seul.
Dessin Write-Only
CGI – Architecture des SI – 10/01/2019
DIAGRAMMES
Quelques « beaux » exemples…
CGI – Architecture des SI – 10/01/2019
GESTION DU RUN
PATTERNS D’ARCHITECTURE MODE ET TENDANCE
NAISSANCE D’UN SI DEFINITIONS
AGENDA
DEPLOIEMENT
CGI – Architecture des SI – 10/01/2019
RUN
Engagement de Service
ENGAGEMENT DE SERVICE SLA
Recovery Point Objective
Recovery Time Objective
Service Level Agreement
RPO RTO
CGI – Architecture des SI – 10/01/2019
ENGAGEMENT DE SERVICE
ENGAGEMENT DE SERVICE
CGI – Architecture des SI – 10/01/2019
RUN
Supervision
CGI – Architecture des SI – 10/01/2019
SUPERVISION
« la surveillance du bon fonctionnement d’un système
(d’information) ou d’une activité (métier) » (source Wikipedia)
CGI – Architecture des SI – 10/01/2019
SUPERVISION
Supervision Technique
Sujet souvent très bien maitrisé : • CPU • MEM • I/O • PROCESS • %use FS
Supervision Applicative
Sujet mal maitrisé, voire non implémenté : • Etat de santé d’un système • Fonctionnement des flux inter-
applicatifs • Supervision des logs
CGI – Architecture des SI – 10/01/2019
RUN
Robustesse
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – HAUTE DISPONIBILITÉ
• Répartition de charge
• Tolérance à la panne
• Redondance matérielle
• Shadow operations
• Dépendance vis-à-vis des autres applications
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – HAUTE DISPONIBILITÉ
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – SCALABILITÉ
« la capacité d'un produit à s'adapter à un changement d'ordre
de grandeur de la demande (montée en charge). En particulier
sa capacité à maintenir ses fonctionnalités et ses performances
en cas de forte demande »
(source Wikipedia)
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – SCALABILITÉ
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – CONNEXIONS AVALES
ERR_CONNECTION_TIMED_OUT ERR_READ_TIMEOUT
Pattern Circuit Breaker
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – TRANSACTIONS
ACID
Transactions XA
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – TRANSACTIONS
Reprise des traitements
CGI – Architecture des SI – 10/01/2019
ROBUSTESSE – TRANSACTIONS
CGI – Architecture des SI – 10/01/2019
LOGS
Les Logs
Un vrai challenge
CGI – Architecture des SI – 10/01/2019
LOGS
• Détection et analyse d’erreur
• Preuve de bon fonctionnement
• Performances applicative et état de santé
• Indicateurs métiers
• Disponibilité des ressources
CGI – Architecture des SI – 10/01/2019
RUN
APM
CGI – Architecture des SI – 10/01/2019
LOGS
CGI – Architecture des SI – 10/01/2019
APM
Application Performance Management
CGI – Architecture des SI – 10/01/2019
APM
CGI – Architecture des SI – 10/01/2019
RUN
PCA - PRA – PCI – PRI – DRP - BCP
CGI – Architecture des SI – 10/01/2019
PCA - PRA – PCI – PRI – DRP - BCP
PCA : Plan de continuité d'activité (BCP en anglais) PRA : Plan de reprise d'activité (DRP en anglais) PCI : Plan de continuité informatique PCO : Plan de continuité opérationnelle PRI : Plan de reprise informatique Faire face aux menaces
REDONDANCE DES SITES
Hot Site Warm Site Cold Site
CGI – Architecture des SI – 10/01/2019
RUN
BACKUPS
CGI – Architecture des SI – 10/01/2019
BACKUPS
Backup – définition : Truc coûtant 2 bras / 2 jambes qui n'a jamais servi pour remonter une production
CGI – Architecture des SI – 10/01/2019
GESTION DU RUN
PATTERNS D’ARCHITECTURE MODE ET TENDANCE
NAISSANCE D’UN SI DEFINITIONS
AGENDA
DEPLOIEMENT
CGI – Architecture des SI – 10/01/2019
DÉPLOIEMENT
Comment mettre mon application en prod… … sans tout péter
CGI – Architecture des SI – 10/01/2019
4 grands types de processus de déploiement
• Manuel : suivi d’une procédure et d’opérations lancées manuellement
• Semi-automatisé : Automatisation partielle (certaines technos, phases
spécifiques, etc.)
• Automatisé : Déclenchement à la demande ou par événement
• Douloureux : Mettre en production est une épreuve de force où tout peut
arriver, la durée et les chances de réussite sont aléatoires
PROCESSUS DE DÉPLOIEMENT
CGI – Architecture des SI – 10/01/2019
DÉPLOIEMENT CONTINU – POURQUOI ?
Time to repair
Qualité
Time to market
"We don't rollback, we fix it" (etsy)
CGI – Architecture des SI – 10/01/2019
RUN
ZERO DOWNTIME DEPLOYMENT
CGI – Architecture des SI – 10/01/2019
ZERO DOWNTIME DEPLOYMENT - OBJECTIFS
Garantir que les déploiements fréquents induits par le Continuous Deployment ne dégradent pas la qualité de service Permettre de déployer une nouvelle version sans arrêt de service
ZERO DOWNTIME DEPLOYMENT – BLUE / GREEN DEPLOYMENT
ZERO DOWNTIME DEPLOYMENT – CANARY RELEASE
ZERO DOWNTIME DEPLOYMENT – PRÉCAUTIONS
Affinité de session Blue/Green Deployment
Sessions partagées Attention à l’adhérence au produit
Back Full Stateless Pas si simple à mettre en œuvre
Gestion de session HTTP
ZERO DOWNTIME DEPLOYMENT – PRÉCAUTIONS
Mise à jour de base de données
• Release code applicatif multi-schema (N et N+1)
• Expension du schéma (ajout N+1)
• Suppression code applicatif multi-schema (suppr. N)
• Constraction du schéma (suppr. N)
CGI – Architecture des SI – 10/01/2019
GESTION DU RUN
PATTERNS D’ARCHITECTURE MODE ET TENDANCE
NAISSANCE D’UN SI DEFINITIONS
AGENDA
DEPLOIEMENT
2 TYPES DE PROBLÈMES
Problème technique
Problème soluble Problème de conception, d’algorithmie, de compatibilité, de méconnaissance ou de mauvaise utilisation d’outil Aussi appelé bug
Problème d’architecture
Problème insoluble – au sens ou il n’y a pas de solution parfaite Résolu uniquement avec un compromis entre performances et coûts de mise en oeuvre
ATTENTION
Il n’existe aucune architecture « parfaite » ou qui ne présente que des avantages
Un outil / framework ne peut pas résoudre un problème d’architecture
No Silver Bullet: Essence and Accidents of Software Engineering by Frederick P. Brooks, Jr. http://www.cs.nott.ac.uk/~pszcah/G51ISS/Documents/NoSilverBullet.html
CGI – Architecture des SI – 10/01/2019
EXEMPLE
TECHNICIEN INTERVENANT SUR SITE INDUSTRIEL
EXEMPLE
HR
Business App
Medical App
Access Control
• Embauche de la personne / changements de contrat • Changement de poste
• Gestion des droits d’accès physiques • Gestion des droits d’accès applicatifs
• Application métier utilisée par le technicien
• Application des médecins délivrant les certificats médicaux
EXEMPLE – COMMUNICATION POINT À POINT
HR
Business App
Medical App
Access Control
+ Couplage Faible
- Monitoring
EXEMPLE – ENTERPRISE SERVICE BUS
HR
Business App
Medical App
Access Control
+ Monitoring
Configurable
- SPOF
Complexité
ESB (routage, transco, etc.)
EXEMPLE – API MANAGEMENT
HR
Business App
Medical App
Access Control
+ Monitoring Ouverture
- Gouvernance
API Management
EXEMPLE – MICRO-SERVICES
HR
Business App
Medical App
Access Control
+ Scale-Out facilité
DevOps proof
- Complexité
Gouvernance
API Management
1960 : Mainframes
1995 - Web applications / Java / C#
2007 – Mobile applications
2000 - RIA – Flex / Silverlight / JavaFX
20XX – Web Components ?
1990 : Personal Computers > Mainframes
1950s - 1GL – Binary / Machine code
1960s - 2GL - Assembly
1970s - 3GL – C / C++
1980s - 4GL – JDeveloper / PowerBuilder / Windev
1990s - Computer Aided Software Engineering
2005 : Cloud
2010 – HTML5 – Angular.JS
LA MODE TECHNOLOGIQUE
CGI – Architecture des SI – 10/01/2019
Build
Run
TENDANCES
Des
ign
Co
de
Pla
n
Test Syn
c
DEV OPS
INDUSTRIALISATION
ARTISANAT
CHOISIR LE BON OUTIL
LA SIMPLICITÉ
LAST WORDS
MERCI DE VOTRE ATTENTION