CGI Architecture des SI 10/01/2019 · 2019. 3. 9. · "We don't rollback, we fix it" (etsy) CGI –...

Post on 29-Aug-2020

0 views 0 download

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