SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Car-Contacts
Une application Native Cloud Bluemix
Développement d’une application Native Cloud Bluemix
et déploiement avec Docker dans un modèle DEVOPS
13/04/2016
Sommaire
2
Contexte
Présentation
fonctionnelle
Architecture
Générale
Configuration
Bluemix Configuration du
DevOps Workspace
Démonstration
Contexte
► FESA : Fédération des Entreprises Spécialisées de l’Automobile
► 6 800 établissements spécialisés dans l’automobile
► Potentiel de 3,5 millions d’utilisateurs finaux
► Digitalisation des établissements adhérents
► Garder le contact avec les clients finaux
3
Solution
Développement
Pré –production
Production
TMA /Support technique et fonctionnel
Clients établissements
Etablissements adhérents FESA : Portail
FESA
Application Mobile
Portail établissement
Back Office
Portail établissements
Recevoir les
informations de la
FESA
Diffuser des
annonces auprès
des clients finaux
Planifier
les RDV
Application Mobile
Gérer son profil et ses
véhicules Recevoir les
informations de
mon
établissement
Trouver un
établissement
Architecture générale
7
8
Architecture initiale
Serveur applicatif
- Portail
- Backoffice
- API mobile
Applications mobiles
- iPhone
- Android
Base de données
SMS Gateway
Serveur SMTP
Serveurs de Push
- APNS
- GCM
Choix applicatifs
► OS : Debian stable (Jessie)
► Serveur : Apache2
• Portail : PHP 5, HTML 5, jQuery
• CMS : Drupal 7
• API : REST / JSON
► Applications Mobiles : Cordova, jQuery Mobile
► Base de données : MySQL Server 5.x
► Cache : Memcached (official Docker image)
► Lock : Redis (official Docker image)
9
Structure de l’image Docker (cf. Git)
Dockerfile
Conf /etc
Cron /etc
Scripts /scripts
Src /var/www/html
10
Séquence d’appel (de haut en bas et de gauche à droite)
Dockerfile
/compress-
js.sh
/compress-
css.sh
/run.sh
/configure-
environment.
sh
/mount-
volumes.sh
/set-base-
permissions.
sh
/set-drupal-
permissions.
sh
/usr/bin/sup
ervisord
apache2
cron /cronlock.sh
backup-
volumes
(daily)
send-sms
(hourly)
rsyslog
11
Configuration Bluemix
12
L’organisation FESASogetiFR–FESAUK
Spaces
Car-Contacts_Dev
(eu-gb.mybluemix.net)
File Share Persistent Volumes
CF Bridge App Services
Containers
Car-Contacts_Staging
(slcloud.fr)
As above… As above …
Car-Contacts_Prod
(car-contacts.fr)
As above… As above…
Dev
Rapid prototyping,
experiments, …
Image Repository
13
Architecture sur un espace Bluemix
DevOps
Workspace
Main B&D
pipeline
Main
Container
Group
Fileshare
Backup
Volume
Private
Volume
Public Volume
Sessions
Volume
CF Bridge App
(service
binding)
ClearDb
(MySQL)
SendGrid
(email)
Twilio (SMS)
IBM Push
Notifications
New Relics
(Monitoring)
Load Impact?
(load & perf
testing)
Memcached
B&D
pipeline
Memcached
Container
Redis B&D
pipeline
Redis
Container
Persistent
Volume
14
Configuration du DevOps Workspace
15
3 projets
► car-contacts
• L’application elle-même, regroupe le site, l’appli mobile, et le backoffice
► car-contacts-memcached
• Utilisé par les instances applications pour optimiser les performances
► car-contacts-redis
• Utilisé comme « cron lock »
16
Les étapes pour DEV, STAGING, PROD
Git
• GITFLOW
Build
• Default build
job from
develop,
release,
master
branches
Assess
• IBM
Vulnerability
Assessment
Deploy
• Cf. next slides
for parameters
Test
• Ping, unit
tests, New
Relics
17
Gitflow Workflow
18
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
Memcached
19
DEV-Build construit l’image à partir de la branche « develop »
STAGING-Build construit l’image de préprod à partir de la branche « release »
PROD-Build contrauira l’image de production à partir de la banche « master »
Memcached
20
Remplacer « dev » par « staging »
ou « prod » selon l’environnement
Clé non valide, donnée ici
à titre d’exemple
Redis
21
DEV-Build construit l’image à partir de la branche « develop »
STAGING-Build construit l’image de préprod à partir de la branche « release »
PROD-Build construira l’image de production à partir de la banche « master »
Redis
22
Clé non valide, donnée ici
à titre d’exemple
Remplacer « dev » par « staging »
ou « prod » selon l’environnement
Car-contacts – Build & Deploy
23
DEV-Build construit l’image à partir de la branche « develop »
STAGING-Build construit l’image de préprod à partir de la branche « release »
PROD-Build construira l’image de production à partir de la banche « master »
Car-contacts – Déploiement
24
Car-contacts – Déploiement
25
► « Optional deploy arguments »
• -v public:/mnt/volume-public -v private:/mnt/volume-private -v backup:/mnt/volume-
backup -v sessions:/mnt/volume-sessions --env MEMCACHED_HOST=XXX.XXX.XX.XX --
env MEMCACHED_USER=toto --env MEMCACHED_AUTH=toto42 --env
REDIS_HOST=XXX.XXX.XX.XX --env REDIS_AUTH=toto42 --env APP_ENV=PROD --env
TWILIO_FROM=+33012345678
► « Deployer script »
• Commenter cette ligne :
• /bin/bash deployscripts/deploycontainer.sh
• Décommenter cette ligne :
• #/bin/bash deployscripts/deploygroup.sh
• Ajouter juste avant la dernière ligne :
• echo -e "Map additional routes to ${CONTAINER_NAME}_${BUILD_NUMBER}”
cf ic route map -n app -d car-contacts.fr ${CONTAINER_NAME}_${BUILD_NUMBER}
cf ic route map -n toto -d car-contacts.fr ${CONTAINER_NAME}_${BUILD_NUMBER}
cf ic route map -n www -d car-contacts.fr ${CONTAINER_NAME}_${BUILD_NUMBER}
echo -e "Done mapping routes"
Car-contacts – Déploiement
26
Démonstration
27
Merci
SOGETI France

Contenu connexe

Tendances

[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin ![XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
Cellenza
 
Webinar Softlayer MSP / ISV en Francais - Novembre 2015
Webinar Softlayer MSP / ISV en Francais - Novembre 2015Webinar Softlayer MSP / ISV en Francais - Novembre 2015
Webinar Softlayer MSP / ISV en Francais - Novembre 2015
Nicolas Verdier
 
Webinar Softlayer de Septembre 2015 en Francais
Webinar Softlayer de Septembre 2015 en FrancaisWebinar Softlayer de Septembre 2015 en Francais
Webinar Softlayer de Septembre 2015 en Francais
Nicolas Verdier
 
Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
Microsoft Technet France
 

Tendances (20)

IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
IBM Bluemix Nice Meetup #6 20170627 - Agenda Serverless
IBM Bluemix Nice Meetup #6   20170627 - Agenda ServerlessIBM Bluemix Nice Meetup #6   20170627 - Agenda Serverless
IBM Bluemix Nice Meetup #6 20170627 - Agenda Serverless
 
[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2
 
Paris container day rex younited credit
Paris container day   rex younited creditParis container day   rex younited credit
Paris container day rex younited credit
 
IBM Bluemix Paris meetup #23 - 20170425
IBM Bluemix Paris meetup #23 - 20170425IBM Bluemix Paris meetup #23 - 20170425
IBM Bluemix Paris meetup #23 - 20170425
 
Développez des applications Mobiles iOS, Android, Windows Phone et Windows 8 ...
Développez des applications Mobiles iOS, Android, Windows Phone et Windows 8 ...Développez des applications Mobiles iOS, Android, Windows Phone et Windows 8 ...
Développez des applications Mobiles iOS, Android, Windows Phone et Windows 8 ...
 
IBM Bluemix Paris meetup - #PG4D - 20160914-3
IBM Bluemix Paris meetup - #PG4D -  20160914-3IBM Bluemix Paris meetup - #PG4D -  20160914-3
IBM Bluemix Paris meetup - #PG4D - 20160914-3
 
Présentation de SQL Azure
Présentation de SQL AzurePrésentation de SQL Azure
Présentation de SQL Azure
 
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin ![XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
 
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
 
Devforumfrancois Tonic
Devforumfrancois TonicDevforumfrancois Tonic
Devforumfrancois Tonic
 
Adopter le cloud avec microsoft
Adopter le cloud avec microsoftAdopter le cloud avec microsoft
Adopter le cloud avec microsoft
 
Projet sur le Cloud Computing
Projet sur le Cloud ComputingProjet sur le Cloud Computing
Projet sur le Cloud Computing
 
Webinar Softlayer MSP / ISV en Francais - Novembre 2015
Webinar Softlayer MSP / ISV en Francais - Novembre 2015Webinar Softlayer MSP / ISV en Francais - Novembre 2015
Webinar Softlayer MSP / ISV en Francais - Novembre 2015
 
Webinar Softlayer de Septembre 2015 en Francais
Webinar Softlayer de Septembre 2015 en FrancaisWebinar Softlayer de Septembre 2015 en Francais
Webinar Softlayer de Septembre 2015 en Francais
 
Comparaison des solutions Paas
Comparaison des solutions PaasComparaison des solutions Paas
Comparaison des solutions Paas
 
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
 
Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
 
Webinar Alfresco/Smile - Juillet 2013
Webinar Alfresco/Smile - Juillet 2013Webinar Alfresco/Smile - Juillet 2013
Webinar Alfresco/Smile - Juillet 2013
 
2011.11.22 - Le Club Cloud des Partenaires - 8ème Forum du Club Cloud des Par...
2011.11.22 - Le Club Cloud des Partenaires - 8ème Forum du Club Cloud des Par...2011.11.22 - Le Club Cloud des Partenaires - 8ème Forum du Club Cloud des Par...
2011.11.22 - Le Club Cloud des Partenaires - 8ème Forum du Club Cloud des Par...
 

En vedette

Démarche mise en place de référentiel d'architecture
Démarche mise en place de référentiel d'architectureDémarche mise en place de référentiel d'architecture
Démarche mise en place de référentiel d'architecture
Mouhsine LAKHDISSI
 

En vedette (12)

Méthodologie de gestion de projets
Méthodologie de gestion de projetsMéthodologie de gestion de projets
Méthodologie de gestion de projets
 
Planification stratégique et mise en marché
Planification stratégique et mise en marchéPlanification stratégique et mise en marché
Planification stratégique et mise en marché
 
Formation gestion de projet - 02 - la demande
Formation gestion de projet - 02 - la demandeFormation gestion de projet - 02 - la demande
Formation gestion de projet - 02 - la demande
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
 
Cellenza microservices - tour d'horizon - v0.1
Cellenza   microservices - tour d'horizon - v0.1Cellenza   microservices - tour d'horizon - v0.1
Cellenza microservices - tour d'horizon - v0.1
 
Schema directeur et urbanisation du si
Schema directeur et urbanisation du siSchema directeur et urbanisation du si
Schema directeur et urbanisation du si
 
Démarche mise en place de référentiel d'architecture
Démarche mise en place de référentiel d'architectureDémarche mise en place de référentiel d'architecture
Démarche mise en place de référentiel d'architecture
 
Analyse fonctionnelle: tronc commun technologique
Analyse fonctionnelle: tronc commun technologiqueAnalyse fonctionnelle: tronc commun technologique
Analyse fonctionnelle: tronc commun technologique
 
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
 
Programmation fonctionnelle en JavaScript
Programmation fonctionnelle en JavaScriptProgrammation fonctionnelle en JavaScript
Programmation fonctionnelle en JavaScript
 
Faire une app en JS moderne
Faire une app en JS moderneFaire une app en JS moderne
Faire une app en JS moderne
 
Future of Retail #FutureOf
Future of Retail #FutureOfFuture of Retail #FutureOf
Future of Retail #FutureOf
 

Similaire à IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI

BlueXML Developer Studio
BlueXML Developer StudioBlueXML Developer Studio
BlueXML Developer Studio
bch
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
vlabatut
 
Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)
LeTesteur
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
Ulrich VACHON
 

Similaire à IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI (20)

BlueXML Developer Studio
BlueXML Developer StudioBlueXML Developer Studio
BlueXML Developer Studio
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Silverlight 4
Silverlight 4Silverlight 4
Silverlight 4
 
Cycle de vie d'un projet web agile avec TFS 2013, Azure VM et Monaco
Cycle de vie d'un projet web agile avec TFS 2013, Azure VM et MonacoCycle de vie d'un projet web agile avec TFS 2013, Azure VM et Monaco
Cycle de vie d'un projet web agile avec TFS 2013, Azure VM et Monaco
 
Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Starter Kits
Starter KitsStarter Kits
Starter Kits
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Public Launch Cyclone Preview
Public  Launch  Cyclone  PreviewPublic  Launch  Cyclone  Preview
Public Launch Cyclone Preview
 
Mon CV Detaillé
Mon CV Detaillé Mon CV Detaillé
Mon CV Detaillé
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 

Plus de IBM France Lab

20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
IBM France Lab
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
IBM France Lab
 
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM France Lab
 

Plus de IBM France Lab (20)

20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
 
20200114 - IBM Cloud Paris Meetup - DevOps
20200114 - IBM Cloud Paris Meetup - DevOps20200114 - IBM Cloud Paris Meetup - DevOps
20200114 - IBM Cloud Paris Meetup - DevOps
 
20200128 - Meetup Nice Côte d'Azur - Agile Mindset
20200128 - Meetup Nice Côte d'Azur - Agile Mindset20200128 - Meetup Nice Côte d'Azur - Agile Mindset
20200128 - Meetup Nice Côte d'Azur - Agile Mindset
 
Défis de l'IA : droits, devoirs, enjeux économiques et éthiques
Défis de l'IA : droits, devoirs, enjeux économiques et éthiquesDéfis de l'IA : droits, devoirs, enjeux économiques et éthiques
Défis de l'IA : droits, devoirs, enjeux économiques et éthiques
 
Meetup ibm abakus banque postale
Meetup ibm abakus banque postaleMeetup ibm abakus banque postale
Meetup ibm abakus banque postale
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
 
IBM Watson IOT - Acoustic or Visual Insights
IBM Watson IOT - Acoustic or Visual InsightsIBM Watson IOT - Acoustic or Visual Insights
IBM Watson IOT - Acoustic or Visual Insights
 
Retour expérience Track & Trace - IBM using Sigfox.
Retour expérience Track & Trace - IBM using Sigfox.Retour expérience Track & Trace - IBM using Sigfox.
Retour expérience Track & Trace - IBM using Sigfox.
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
 
IBM Cloud Paris Meetup - 20190520 - IA & Power
IBM Cloud Paris Meetup - 20190520 - IA & PowerIBM Cloud Paris Meetup - 20190520 - IA & Power
IBM Cloud Paris Meetup - 20190520 - IA & Power
 
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
 
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
 
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
 
IBM Cloud Paris Meetup - 20190129 - Assima
IBM Cloud Paris Meetup - 20190129 - AssimaIBM Cloud Paris Meetup - 20190129 - Assima
IBM Cloud Paris Meetup - 20190129 - Assima
 
IBM Cloud Paris Meetup - 20190129 - Myrtea
IBM Cloud Paris Meetup - 20190129 - MyrteaIBM Cloud Paris Meetup - 20190129 - Myrtea
IBM Cloud Paris Meetup - 20190129 - Myrtea
 
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelleIBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
 
IBM Cloud Côte d'Azur Meetup - Blockchain Business Processes & Rule-based Sm...
IBM Cloud Côte d'Azur Meetup - Blockchain Business Processes &  Rule-based Sm...IBM Cloud Côte d'Azur Meetup - Blockchain Business Processes &  Rule-based Sm...
IBM Cloud Côte d'Azur Meetup - Blockchain Business Processes & Rule-based Sm...
 
IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop
IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger WorkshopIBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop
IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop
 
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public AdministrationIBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
 

IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - SOGETI

  • 1. Car-Contacts Une application Native Cloud Bluemix Développement d’une application Native Cloud Bluemix et déploiement avec Docker dans un modèle DEVOPS 13/04/2016
  • 3. Contexte ► FESA : Fédération des Entreprises Spécialisées de l’Automobile ► 6 800 établissements spécialisés dans l’automobile ► Potentiel de 3,5 millions d’utilisateurs finaux ► Digitalisation des établissements adhérents ► Garder le contact avec les clients finaux 3
  • 4. Solution Développement Pré –production Production TMA /Support technique et fonctionnel Clients établissements Etablissements adhérents FESA : Portail FESA Application Mobile Portail établissement Back Office
  • 5. Portail établissements Recevoir les informations de la FESA Diffuser des annonces auprès des clients finaux Planifier les RDV
  • 6. Application Mobile Gérer son profil et ses véhicules Recevoir les informations de mon établissement Trouver un établissement
  • 8. 8 Architecture initiale Serveur applicatif - Portail - Backoffice - API mobile Applications mobiles - iPhone - Android Base de données SMS Gateway Serveur SMTP Serveurs de Push - APNS - GCM
  • 9. Choix applicatifs ► OS : Debian stable (Jessie) ► Serveur : Apache2 • Portail : PHP 5, HTML 5, jQuery • CMS : Drupal 7 • API : REST / JSON ► Applications Mobiles : Cordova, jQuery Mobile ► Base de données : MySQL Server 5.x ► Cache : Memcached (official Docker image) ► Lock : Redis (official Docker image) 9
  • 10. Structure de l’image Docker (cf. Git) Dockerfile Conf /etc Cron /etc Scripts /scripts Src /var/www/html 10
  • 11. Séquence d’appel (de haut en bas et de gauche à droite) Dockerfile /compress- js.sh /compress- css.sh /run.sh /configure- environment. sh /mount- volumes.sh /set-base- permissions. sh /set-drupal- permissions. sh /usr/bin/sup ervisord apache2 cron /cronlock.sh backup- volumes (daily) send-sms (hourly) rsyslog 11
  • 13. L’organisation FESASogetiFR–FESAUK Spaces Car-Contacts_Dev (eu-gb.mybluemix.net) File Share Persistent Volumes CF Bridge App Services Containers Car-Contacts_Staging (slcloud.fr) As above… As above … Car-Contacts_Prod (car-contacts.fr) As above… As above… Dev Rapid prototyping, experiments, … Image Repository 13
  • 14. Architecture sur un espace Bluemix DevOps Workspace Main B&D pipeline Main Container Group Fileshare Backup Volume Private Volume Public Volume Sessions Volume CF Bridge App (service binding) ClearDb (MySQL) SendGrid (email) Twilio (SMS) IBM Push Notifications New Relics (Monitoring) Load Impact? (load & perf testing) Memcached B&D pipeline Memcached Container Redis B&D pipeline Redis Container Persistent Volume 14
  • 15. Configuration du DevOps Workspace 15
  • 16. 3 projets ► car-contacts • L’application elle-même, regroupe le site, l’appli mobile, et le backoffice ► car-contacts-memcached • Utilisé par les instances applications pour optimiser les performances ► car-contacts-redis • Utilisé comme « cron lock » 16
  • 17. Les étapes pour DEV, STAGING, PROD Git • GITFLOW Build • Default build job from develop, release, master branches Assess • IBM Vulnerability Assessment Deploy • Cf. next slides for parameters Test • Ping, unit tests, New Relics 17
  • 19. Memcached 19 DEV-Build construit l’image à partir de la branche « develop » STAGING-Build construit l’image de préprod à partir de la branche « release » PROD-Build contrauira l’image de production à partir de la banche « master »
  • 20. Memcached 20 Remplacer « dev » par « staging » ou « prod » selon l’environnement Clé non valide, donnée ici à titre d’exemple
  • 21. Redis 21 DEV-Build construit l’image à partir de la branche « develop » STAGING-Build construit l’image de préprod à partir de la branche « release » PROD-Build construira l’image de production à partir de la banche « master »
  • 22. Redis 22 Clé non valide, donnée ici à titre d’exemple Remplacer « dev » par « staging » ou « prod » selon l’environnement
  • 23. Car-contacts – Build & Deploy 23 DEV-Build construit l’image à partir de la branche « develop » STAGING-Build construit l’image de préprod à partir de la branche « release » PROD-Build construira l’image de production à partir de la banche « master »
  • 25. Car-contacts – Déploiement 25 ► « Optional deploy arguments » • -v public:/mnt/volume-public -v private:/mnt/volume-private -v backup:/mnt/volume- backup -v sessions:/mnt/volume-sessions --env MEMCACHED_HOST=XXX.XXX.XX.XX -- env MEMCACHED_USER=toto --env MEMCACHED_AUTH=toto42 --env REDIS_HOST=XXX.XXX.XX.XX --env REDIS_AUTH=toto42 --env APP_ENV=PROD --env TWILIO_FROM=+33012345678 ► « Deployer script » • Commenter cette ligne : • /bin/bash deployscripts/deploycontainer.sh • Décommenter cette ligne : • #/bin/bash deployscripts/deploygroup.sh • Ajouter juste avant la dernière ligne : • echo -e "Map additional routes to ${CONTAINER_NAME}_${BUILD_NUMBER}” cf ic route map -n app -d car-contacts.fr ${CONTAINER_NAME}_${BUILD_NUMBER} cf ic route map -n toto -d car-contacts.fr ${CONTAINER_NAME}_${BUILD_NUMBER} cf ic route map -n www -d car-contacts.fr ${CONTAINER_NAME}_${BUILD_NUMBER} echo -e "Done mapping routes"