modernisation des processus de livraison t.i. red hat day · 2017-11-29 · java ee (jboss eap)...

40
RED HAT DAY Modernisation des processus de livraison T.I. Martin Sauvé Architecte de solutions [email protected]

Upload: others

Post on 22-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

RED HAT DAYModernisation des processus de livraison T.I.

Martin SauvéArchitecte de [email protected]

Page 2: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Adrian Cockroft - ancien architecte en chef chez Netflix

Page 3: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Les T.I. ont évoluées

Page 4: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Serveur d’applications 2000-2014

Framework / APIs

App

Services Intergiciels

Plateforme - opérations

App App App App App

Persistance | Sécurité| Transaction| Messagerie| HTTP

Déploiements| Gestion| Monitoring | HA | Logging

Machine virtuelle | Système exploitation

4

Page 5: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Le développement se transforme

ArchitectureInfrastructure

Monolithe

N-Tier

Microservices

Centre de données

Services gérés

Hybride

Processus

Waterfall

Agile

DevOps

Page 6: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

WATERFALL DEVOPS

Passage à DEVOPS pour une livraison plus rapide en petites étapes

Page 7: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Architecture en petites composantes applicatives

MONOLITH

SVC

SVC

SVC

SVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

µSVC

PRE-SOA SOA MICROSERVICES

Avancement technologique favorisant les µSVC: logiciels à moindre coût, conteneurs, latence et efficacité des réseaux.

Page 8: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Utilisation des conteneurs pour gérer les composantes

ConteneurVM

SVC

µSVC

VIRTUALISATIONTRADITIONNELLE

MICROSERVICES EN CONTENEURS: LÉGERS, FLEXIBLES, PRÊTS POUR LE CLOUD

VM

SVC

Plateforme de Conteneurs

Conteneur

µSVC

Conteneur

µSVC

Page 9: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Développer des applications modernes ‘Cloud-Native’

CONTENEUR

App Server

SVC

CONTENEUR

SVC

Un conteneurDans un conteneur

Traditionnelle Moderne

Utilisation du conteneur pour:- Résilience- Montée en charge- Portabilité- Configuration- Anti-fragilité

Page 10: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

10

Qu’est-ce qu’un conteneur ?

Page 11: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

11

Les développeurs ont plus de choix que jamais!

Funktion

50% du marché entreprise

Page 12: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Serveur d’applications 2015-...

Runtime

App

Cloud Platform

Data

Build| Deploy| Scheduling | Scaling | Elasticity | Metrics | Logging

Security IMDG Messaging

Runtime

Svc

Runtime

Svc

Infonuagique/Data Center

12

Page 13: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Pas une cible

OPTIONS POUR MODERNISER LES APPLICATIONS

ApplicationsExistantes

Rehost (lift/shift)

Replatform (lift/reshape)

Repurchase

Refactor (rewrite, decouple apps)

Analyse et priorisation Retire

Retain as is (for now)

ComplexitéDe

Réécriture ?

Applications à haut degré de changement ou d’utilisation

Petites applications ou applications statiques

Page 14: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

RUNTIMES(Container images and Maven Artifacts)

JAVA EE(JBoss EAP)

MICROPROFILE

(WildFly Swarm)

OPENSHIFT SERVICES

REACTIVE(vert.x) NODE.JS APACHE

TOMCAT

CERTIFIED FRAMEWORKS(Maven Artifacts)

SPRING BOOT / CLOUD

NETFLIX OSS Ribbon

OpenShift.io

(DeveloperSaaS)

Generators

IDE

etc.

Management

APM

Metrics

ServiceDiscovery Config.

Logging

Health Check

Load Balancing

CI/CDSSOMessaging IMDG API Mgmt

NETFLIX OSSHysterix ...

OPENSHIFT APPLICATION RUNTIMES(RHOAR)

Page 15: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Pourquoi RHOAR ?Polyglotte

• Plateforme non-liée à un langage de programmation• Focus initial sur Java et JavaScriptMeilleures solutions OSS

• Conteneur, Kubernetes, MicroProfile, Java, JavaScript, SpringArchitectures multiples

• Monolithes agiles (Java EE existant, Spring MVC)• Mini et micro-services• Serverless [plan futur] Sécurité• Chaîne de développement sécurisée et validée

15

Page 16: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

DEMO #1

OpenShift Application Runtimes

Plateforme Micro Services

16

Page 17: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Comment démarrer ?

Page 18: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

T.I. BI-MODAL

MODE 1• 1 app = 1 VM

• Cycle de vie = Année

• Haute disponibilité

pour les VM

• Résilience =

Matériel/Serveur

• “Scale Up” (serveur ou

vm plus puissant)

MODE 1

MODE 2

MODE 2• 1 app = plusieurs VMs

• Cycle de vie = Jours / Heures

• Haute disponibilité non

nécessaire

• Résilience = Par l’application

• “Scale Out” (ajout de serveurs

ou vms)

Page 19: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Une approche gagnante

DÉVELOPPERApplication Microservices

MODERNISER Applications Traditionnelles

ÉTAPE

1

Nouvelles apps natives en nuage

Héritage informatique

Agile, Rapide, DevOps et exposer les APIsRénover et exposer les APIs

API

API

Moderniser l’intergiciele et l’infrastructure

Conteneurs et cloud hybride

ÉTAPE

2

BÂTIR DES PONTSIntégration/Caching/Frontière

ÉTAPE

3Microservices

Page 20: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

1 – ÉTRANGLER LE MONOLITH

20

Page 21: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

2 – AJOUT D’UN MICROSERVICE

Inventaire

X

21

Page 22: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

3 – PUIS UN AUTRE

Catalogue

Inventaire

XX

22

Page 23: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

4 – ÉCRASER LE MONOLITHE

23

Page 24: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

5 – ENLEVER LES COMPOSANTES MORTES

24

Page 25: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Outils et écosystème

Page 26: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Kubernetes

● Configuration distribuée● Découverte de services● Catalogue de service● Balanceur de charge● Gestion des versions● Déploiements automatisés● Montée en charge à la demande ou

automatique● Bilan de santé et monitoring● Auto-guérison (self-healing)

Page 27: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

OpenShift est Kubernetes

• Libre-service pour les équipes

• Flux de travail pour les développeurs

• Focus sur l’entreprise (RBAC, OAuth, LDAP…)

• Registre de conteneurs intégré

• Jenkins (CI/CD) intégré

• Déclencheurs et automatisation des builds et déploiements

• Réseautique Logicielle (SDN)

• Outil ligne de commande, API et console web

Page 28: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Kubernetes est une infrastructure déclarative pour les microservices

Page 29: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Red Hat – Travail dans les communautéshttps://github.com/kubernetes/community/blob/master/sig-list.md

45% des SIGS Kube sont co-gérés by Red Hat● API Machinery● AUTH● Autoscaling● Big Data● CLI● Network● Node● OpenStack● Scheduling● Service Catalog● Storage● Container Identity● Resource Management

Runtime Conteneurshttps://github.com/opencontainers/runchttps://github.com/containerd/containerdhttps://github.com/moby/mobyFocus sur les composantes suivantes:

● version/master● area/networking● area/storage● area/runtime● kind/performance● area/runtime● area/security● area/plugins● area/daemon

Page 30: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Kubernetes pour l’entreprise

https://devstats.k8s.io

Page 31: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

DEMO #2

Pipeline Micro Services sur

Kubernetes/Openshift

31

Page 32: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Surveillance, surveillance, surveillance!

Page 33: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

33

Envoy proxy

Page 34: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

34

Page 35: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

DEMO #3

Surveillance et Sécurité

35

Page 36: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Stratégie Multi-CloudsOpenShift ne dépend que de RHEL

Physique, Virtualisation, cloud public (AWS, Azure, GCE, SoftLayer, etc)

Applications facilement portables entre les différents environnements

OpenShift permet:

• Opérations uniformisées

• Expérience développeur uniformisée

• Expérience support uniformiséé

Page 37: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

37

En résumé, réduction de la complexité … donc:

● Réduction des risques

● Réduction des coûts

● Augmentation de l’agilité

Stratégie Multi-Clouds

Page 38: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

Réduction des risques

● *Vous* êtes responsable du cycle de vie et non le fournisseur de service

● Facilité de migration cloud à cloud. Risque de dépendance réduit

● Support complet de l’image du conteneur à l’hôte.● Sécurité Red Hat: SELinux, OpenSCAP, Isolation réseau,

Security Response Team, etc.

Réduction des coûts

● Uniformité de l’automatisation et des outils● Moins de formation requise pour les développeurs,

opérateurs, supports● Effectuer et gérer l’intégration d’entreprise UNE FOIS

○ Contrôle des changements, authentication, authorization, secrets, logging….

● Moins de ressources humaines pour opérer des environnements disparates

● Compétition entre les fournisseurs infonuagiques

Augmentation de l’agilité

● Re-assignation des ressource dev/eng/ops vers les différents cloud au besoin

● Re-déploiement des applications sur différents clouds ou dans votre centre de données au besoin

Page 39: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

OpenShift est complémentaire au clouds publics

- OpenShift Dedicated est un service géré d’OpenShift par Red Hat

- OpenShift Service Broker permet l’accès aux services des clouds publics

OPENSHIFT SERVICE CATALOG

AnsibleServiceBroker

OpenShiftTemplateBroker

CloudServiceBroker

OtherServiceBrokers

ANSIBLE

OPENSHIFT

PUBLIC CLOUD

OTHER COMPATIBLE SERVICES

Ansible Playbook Bundles

OpenShiftTemplates

PublicCloudServices

OtherServices

Page 40: Modernisation des processus de livraison T.I. RED HAT DAY · 2017-11-29 · JAVA EE (JBoss EAP) MICROPROFIL E (WildFly Swarm) OPENSHIFT SERVICES REACTIVE (vert.x) NODE.JS APACHE TOMCAT

DEMO #4

Multi-clouds et broker de services

40