openshift · 2 openshift technical overview openshift container platform opérations automatisés...

29
Openshift Expérience développeur Martin Sauve 22 Août 2018

Upload: others

Post on 20-Aug-2020

40 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Openshift Expérience développeur

Martin Sauve22 Août 2018

Page 2: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

OPENSHIFT TECHNICAL OVERVIEW2

OPENSHIFT CONTAINER PLATFORM

Opérations Automatisés

Kubernetes

Red Hat Enterprise Linux or Red Hat CoreOS

ServicesApplicatifs

CaaS PaaSMeilleure expérience des opérations

*bientôt

ServicesInfrastructure

Servicesaux Développeurs

Intergiciel, Réseaux de Services, FaaS, ISV

Métriques, Facturation, Registre, Journaux Outils de développement, CI/CD, IDE, Builds, S2I

Meilleure expérience dévelippeur

Page 3: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Flux de développement

3

Page 4: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Une journée typique….

4

Un développeur Java…. Avant OpenShift

Java est utilisé comme exemple.Les autres technologies vont impliquer des considérations similaires

Page 5: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

5

Pour bâtir une application simple…

Une interface utilisateur Java, un API REST et une base de données…

Page 6: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

6

Flux de travail traditionnel

Maven Configuration des outils

Java

BD…

CodeConfiguration du serveur de

BuildsBâtir App

SCM (Git, etc)

Configuration des environnements

Déploiement sur environnements

Poste de travail Serveurs

Page 7: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

7

SpringBoot + Postgresql démo

Environnement traditionnel

Démo

Page 8: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

8

SpringBoot + Postgresql● Installation de Maven, Java, Postgres DB● Configuration Spring – Serveur de configuration● Dépendances gérées localement● Versions gérées localement● Builds gérés localement

Potentiel d’erreurs élevé!

En bref…

Page 9: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Une journée typique….

9

Un développeur Java…. Avec OpenShift

Java est utilisé comme exemple.Les autres technologies vont impliquer des considérations similaires

Page 10: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

10

Une plateforme d’entreprise sécurisée pour la gestion de conteneurs Kubernetes pour vos applications traditionnelles et cloud-native.

Page 11: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

OPENSHIFT TECHNICAL OVERVIEW11

Flux de travail - Conteneurs

CodeDéploiement

sur CDKValidation Git Push Pipeline

Dev Env Déploiement

QA Env Promotion

PROD Env Promotion

Page 12: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

12

Même application sous OpenShift

Démo

Page 13: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

13

OCP SpringBoot + Postgresql sample application● Maven, Java par S2I (Source to Image). Standardisation● Configuration dans la gestion des sources. Kubernetes ConfigMap● Version Postgres standardisée.

En bref…

Processus répétable et automatisé

Page 14: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

14

Automatisation du cycle de vie.

Now I have my application running locally in OCP, how do I:

Nous avons notre application…

Comment automatiser la création d’environnements ?

Comment gérer les promotions entre les environnements ?

Quels sont les outils disponibles ?

Page 15: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

15

Outils – partie 1… à suivre!

Outil Quoi ? Quand ?

Ansible Automatisation de l’installation des logiciels, gestion de la configuration, déploiements d’application complexe.

• Configuration de l’infrastructure• Déploiements complexes• Alternative aux commandes « shell » dans

Jenkins

Jenkins Automatisation des tâches « non-humaine » du processus de développement logiciel avec l’intégration continue (CI) et assiste pour les aspects techniques de la livraison continue (CD)

• Orchestration du processus de CI/CD.• Builds applicatifs• Utilisation de plugins pour la majorité des

tâches, communauté vibrante

OpenShift S2I Automatisation des builds et déploiements d’applications

• Standardisation des builds• Meilleurs pratiques pour vos conteneurs• Gouvernance et répétabilité

Page 16: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

16

Cycle de vie automatisé

Créer Branche

Installation des environnement(s)

(Ansible)

Créer App

Autres

Installation de Jenkins

(Ansible)

Pipeline(Jenkins)

Build App(Jenkins, S2I)

SCM (Git, etc)

Déploiement Des Env (1..n)

(Ansible/Jenkins

Mise à jour de l’infra

(Ansible)

Page 17: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

17

Installation de deux environnements sur OpenShift et le flux CI/CD avec Ansible, Gabarits et S2I.

Démo

Test

Application

Base de données

Développement

Application

Base de données

CI/CD

Pipeline

Jenkins

Page 18: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

.war/.jar/.ear

HTML/.js

.py

.cs

DEVELOPMENT

.rb .js

Tomcat/EAP

Apache

Python 3

CLR

OPERATIONS

MRI/CRuby V8/npm

● Configure Windows/IDE● Install Tomcat● Install JDK 1.8.0_51● Configure Maven● Code

● Provision Hardware/VM● Install Tomcat● Install JDK● Deploy Artefact

OPERATIONS

● Configure VM/OS● Install RPMs● Apply Patches● Manage Dependencies

Traditionnel

Conteneurs

DEVELOPMENT

● Code● Commit

● Apply Patches● Manage Dependencies● Test/Secure and Validate

Curated and secured supply chain of containers

OPERATIONS

Page 19: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Test

Production

Développement

Code Source

Binaire ImageConteneur

Un « build », plusieurs déploiements

Page 20: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Virtuel

Infonuagique

Physique

Code Source

Binaire ImageConteneur

Un « build », plusieurs déploiements

Page 21: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Visibilité

21

Page 22: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Visibilité

22

En tant que développeur, je veux connaître l’état de mon application, avoir accès aux traces, logs et inforation, avoir de la visibilité sur les temps réponse et performance.

Page 23: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Architecture applicativeLe monde change…. Chaque utilisateur est unique.

23

ArchitectureOrientée Service

Service

Service

Service

Service

Service

Service

ESB

Service

Service

Service

Service

Service

Service

ArchitectureMicro-Services

Kubernetes

Service Proxy

Service Proxy

Service Proxy

Proxy

Proxy

Proxy

Service

Service

Service

KubernetesService Mesh

ArchitectureInfonuagique (CNA)

● Dumb Endpoints● Smart Pipe

● Smart Endpoints● Dumb Pipe

● Dumb Service● Smart Platform

Page 24: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Plateforme intelligente pour services distribués

ANYINFRASTRUCTURE

OpenShift Container Platform(Enterprise Kubernetes)

Amazon Web Services Microsoft Azure Google CloudOpenStackDatacenterLaptop

OpenShift Service Mesh(Istio + Jaeger)

ANYAPPLICATION

Service

CONTAINER

Service

CONTAINER

Service

CONTAINER

Service

CONTAINER

Service

CONTAINER

Essayer le à http://learn.openshift.com

Page 25: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Évolution

Service

Config

Svc Discovery

Routing

Circuit Breaker

Tracing

Service

Platform Container Platform (+ Service Mesh)

...2014 2018

Page 26: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

POD

ENVOY

SERVICE

POD

ENVOY

SERVICE

POD

ENVOY

SERVICE

Pilot Mixer Auth

SERVICE MESH(Réseau de services)

Sécurité, règles de routage, politiques, rapport, télémétrie, traces

JaegerISTIO

Page 27: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

27

Visibilité de vos applications

Démo!

Page 28: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Questions?

Page 29: Openshift · 2 OPENSHIFT TECHNICAL OVERVIEW OPENSHIFT CONTAINER PLATFORM Opérations Automatisés Kubernetes Red Hat Enterprise Linux or Red Hat CoreOS Services Applicatifs Meilleure

Merci!plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat