openshift · 2 openshift technical overview openshift container platform opérations automatisés...
TRANSCRIPT
Openshift Expérience développeur
Martin Sauve22 Août 2018
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
Flux de développement
3
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
5
Pour bâtir une application simple…
Une interface utilisateur Java, un API REST et une base de données…
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
7
SpringBoot + Postgresql démo
Environnement traditionnel
Démo
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…
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
10
Une plateforme d’entreprise sécurisée pour la gestion de conteneurs Kubernetes pour vos applications traditionnelles et cloud-native.
OPENSHIFT TECHNICAL OVERVIEW11
Flux de travail - Conteneurs
CodeDéploiement
sur CDKValidation Git Push Pipeline
Dev Env Déploiement
QA Env Promotion
PROD Env Promotion
12
Même application sous OpenShift
Démo
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é
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 ?
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é
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)
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
.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
Test
Production
Développement
Code Source
Binaire ImageConteneur
Un « build », plusieurs déploiements
Virtuel
Infonuagique
Physique
Code Source
Binaire ImageConteneur
Un « build », plusieurs déploiements
Visibilité
21
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.
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
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
Évolution
Service
Config
Svc Discovery
Routing
Circuit Breaker
Tracing
Service
Platform Container Platform (+ Service Mesh)
...2014 2018
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
27
Visibilité de vos applications
Démo!
Questions?
Merci!plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat