DevOps Perspectives [Decoding DevOps Conference - InfoSeption]
Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops...
Transcript of Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops...
![Page 1: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/1.jpg)
Panorama des Technologies Web et Devops
Didier DONSEZUniversité Grenoble AlpesPolytech’Grenoble & LIG
IUT de Valence / L3 CASIR / Avril 2018
![Page 2: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/2.jpg)
Qui suis-je ?
![Page 3: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/3.jpg)
DevOps
● Dev(elopment) – Op(eration)s● Objectifs
– MVP, Rapid Production Deployment
● Moyens– Continuous Integration (CI)– Continuous Delivery (CD)– Apllication Performance Monitoring (APM)
![Page 4: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/4.jpg)
Le scénario DevOps
![Page 5: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/5.jpg)
Etapes de DevOps (o)
Express
Daphnée
Frontend developerBackend developerFull stack developer
![Page 6: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/6.jpg)
Etapes de DevOps (i)
Express
HTTP
Daphnée
![Page 7: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/7.jpg)
Etapes de DevOps (ii)
HAProxy Express
HTTPHTTPS
Daphnée Olivier
Backup for Crash Recovery
![Page 8: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/8.jpg)
Etapes de DevOps (iii)
HAProxy
Spring
Grafana InfluxDB
metrics
HTTPHTTPSTelegraf
Agent
Momo
![Page 9: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/9.jpg)
Etapes de DevOps (iv)
HAProxy
HAProxy
Spring
Spring
MySQL
Grafana InfluxDB
HTTPHTTPS
metrics
TelegrafAgent
Rémi
![Page 10: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/10.jpg)
Etapes de DevOps (v)
HAProxy
HAProxy
Spring
Spring
MySQL
MySQL
Grafana InfluxDB
HTTPHTTPS
metrics
James
Replication
Rémi
Wordpress
Wordpress
James
![Page 11: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/11.jpg)
Etapes de DevOps (v)
HAProxy
HAProxy
Spring
Spring
MySQL
MySQL
Grafana InfluxDB
HTTPHTTPS
metrics
Criteo
Replication
Serge
![Page 12: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/12.jpg)
Etapes de DevOps (vi) SLM
HAProxy
HAProxy
Spring
Spring
MySQL
MySQL
Grafana InfluxDB
HTTPHTTPS
metrics
Criteo
Replication
Sophie
Trello
Prestashop
![Page 13: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/13.jpg)
Etapes de DevOps (vii)
HAProxy
HAProxy
Spring
Spring
MySQL
MySQL
Grafana InfluxDB
HTTPHTTPS
metrics
Criteo
Replication
Pierre
Trello
Prestashop
![Page 14: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/14.jpg)
En conlusion…
• Des fonctonnalités simples : – Servir– Collecter,– Transporter,– Traiter,– Stocker… des données des diférentes sources
• … mais une architecture logicielle complexe !
![Page 15: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/15.jpg)
La complexité… au service des propriétés non fonctonnelles
• Sécurité• Haute disponibilité• Performances• Passage à l’échelle• Agilité
![Page 16: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/16.jpg)
Sécurité
• Objectfs : – Aucune corrupton de données– Aucun vol de données– Aucune ataque par déni de service
• Techniques mises en œuvre :– Chifrage des données – Protocoles de communicaton sécurisés – Pare-feux – Techniques logicielles contre les ataques par déni de
service– Audit/Test de sécurité
![Page 17: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/17.jpg)
Exemple de rançon pour une base Mongo non protégée
● $ db.PLEASE_READ_ME.find()● { "_id" : ObjectId("58a7287db7dc324adb249fdf"), "info" :
"Don't panic. Your DB is in safety and backed up (check logs). To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.", "amount" : "0.1 BTC", "data_we_have" : { "local" : [ "startup_log" ], "first_database" : [ "users", "preferences" ], "MyAppXXX" : [ "emails" ] }, "Bitcoin Address" : "1NSz9TRBGKHKFdjdjH2Gme3LwDi5", "email" : "[email protected]" }
![Page 18: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/18.jpg)
Haute-disponibilité
• Objectf : – Aucune interrupton de service
• Techniques mises en œuvre :– Monitoring – Détecton de fautes – Protocoles de réplicaton – Mécanismes de redondance – Mécanismes de « fail-over »– Circuit Breakers– Equilibreur de charge– Testers de résilience
![Page 19: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/19.jpg)
Performances
• Objectf : – Réducton du coût d’infrastructure IaaS– Respect des SLA
• Techniques mises en œuvre :– Monitoring– Performance Debugging
Detecton des contentons sur les verroux N Copy Placement multicoeurs (Thread pinning)
– Equilibreur de charge– SLA Monitoring
![Page 20: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/20.jpg)
Passage à l’Echelle
• Objectf : – Supporter des variatons dans la charge– en minimisant les coûts d’infrastructure ou d’énergie
• Techniques mises en œuvre :– Monitoring– Sharding– N Copy – Elastcité dynamique– Cloud hybride (cloud burstng)
![Page 21: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/21.jpg)
Agilité
• Objectf – Time To Market– Philosophie « Minimal Viable Product » du Lean Startup
• Techniques mises en œuvre :– DevOps
Service immédiatement en producton Blue – Green Deployment
● Rolling Update● Fast rollback
● A/B Testng ou Split Testng Micro-services Serverless Architecture
![Page 22: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/22.jpg)
Les grands composants● Database Systems
– SQL does not fit all !– NoSQL is not unique !
● Backends– Servent des ressources REST
● Frontends– Implémente une SPA
● Tooling– IDE & Forge
![Page 23: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/23.jpg)
Data Models & Database SystemsOne does not fit all !
SQL● Oracle, MySQL/MariaDB,
Postgres, HSQL ...
NoSQL (Not 1 NF)● File Systems
– HDFS
● Table– Hbase (Big Table)
● Directories (LDAP)● Key-Value Stores
– Cassandra, Redis, Memcached, ...
● Document-oriented DB– MongoDB, CouchDB, ...
● ….
● Graph-oriented DB– Neo4J, ...
● Time-Series DB– OpenTSDB, InfluxDB, …
● Text Oriented– Lucene, OpenNLP, ElasticSearch– Geolocation
● GIS, Geo extensopns in MongoDB, Postgres, MySQL, ...
– Streams● Kafka, Flume
Performance● In-memory DB– MySQL Cluster, Redis, ...
![Page 24: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/24.jpg)
Database SystemsMultiple Data Models
![Page 25: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/25.jpg)
Gestionnaires de fonctions● Exemple
– CMS– Micro-Blogging– Ticketing / Issue Tracking– Shopping– ERP– Enterprise Social Network (ESN)– Newletter Campaign– …
● Notes– Utilise le propre systême de persistence– Expose une API (REST)– Disponible via un container Docker (Démo Wordpress)
![Page 26: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/26.jpg)
CAP Theorem (Brewer)
• Un SD ne peut garantr qu’au max. 2 propriétés
![Page 27: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/27.jpg)
RESTFul Services● Principles des services REST
– Hièrarchie d’URLs● /blog● /blog/12345● /user● /user/didier
– CRUD appliqué à HTTP● C(reate) → PUT● R(etrieve) → GET● U(pdate) → POST● D(elete) → DELETE
● Description– OpenAPI (Swagger)
● Voir http://editor.swagger.io
![Page 28: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/28.jpg)
Frontends & Backends● Tendance architecture
– Frontend SPA (Single Page Application)● AngularJS, React, Vue.js …
– Backend RESTFul● Remark : services Pub-Sub (websocket, PubNub, …)
● Misc.– Full Stacks (Backend Node.js)
● MEAN, Sails, Meteor …– Voir le comparatif live http://todomvc.com/
– API Gateway
![Page 29: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/29.jpg)
JHipster
● Domain– Microservice(s) + Single Web Page Application
● Model : JDL (~UML with pagination pragmas)● Generator
– Frontend : AngularJS v1.x or 5, Bootstrap– Backend : Spring
● Micro-Services (API Gateway, Swagger)● Optional WebSocket● Authentication, Rate Limit● Databases : SQL, Cassandra, MongoDB, Elastic, Kafka
– Devops● Docker containers, CI, Load injection, APM (Metrics, ELK), QA (SonarCube) ...
![Page 30: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/30.jpg)
The JHipster MicroService Architecture
![Page 31: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/31.jpg)
Thèmes Frontend Web● Thème Dashboard
– Organisation type tableau de bord– Regroupe des libs js dont Bootstrap– Boilerplate pour des canevas Full stack.
● Avantages– Permet de se passer d’un Web Designer dans un premier
temps– Gain de temps de dev.– Ergonomie connue.
● 20+ assez connus– Gentelella (11400 stars sur GitHub), SB Admin2, …
● https://colorlib.com/wp/free-bootstrap-admin-dashboard-templates/
![Page 34: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/34.jpg)
Monitoring consoles
● Connexion temps réel à des TSDBs– Customisable, Snippets intégrables
![Page 35: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/35.jpg)
Architecture Cloud● On-Demand Computing
– Scalabilité dynamique– Pay-per-use, Plan, Auction (AWS spot instance)
● Public, Privé, Hybride● Providers : FaaS, IaaS, PaaS, CaaS, SaaS● Gestionnaire de clusters privés (OpenStack, Mesos)● Gestionnaire de clusters containers (CaaS, Swarm,
Kubernetes)● Virtualisation vs Containerisation
![Page 36: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/36.jpg)
Microservices
● Voir cours Microservices
![Page 37: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/37.jpg)
Virtual Machines and Containers
● Voir cours Docker
![Page 38: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/38.jpg)
Serverless Architecture
● Principe : Reactive Programming– Traitement asynchrone déclenché sur événement
● Requête HTTP / Mail → traitant (Java, JS, Python)
● Facturation pour PaaS Serverless● à la requête, au temps de traitement.
● Implémentations– PaaS :AWS Lambda, Google Functions, Azure
Functions, Bluemix OpenWhish
On-premise : Apache OpenWhish, Kuberless
![Page 39: Panorama des Technologies Web et Devops · 2018-03-30 · Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence](https://reader030.fdocuments.in/reader030/viewer/2022041015/5ec5d63809d47022543be1a7/html5/thumbnails/39.jpg)
Tooling DevOps
● Jenkins – Gitlab● Ansible – Puppet – Chef -Cloudify● Openshift (Redhat)● Tools : gulp, npm, grunt, bower, yeoman,
webpack, browserify, maven, graddle, ant, …● Netflix OSS (Simian Army)● IDE : Eclipse, IntelliJ IDEA, Netbeans, Atoms,
Chrome Devtools