panorama des technologies web et devops · 2018-03-30 · panorama des technologies web et devops...

39
Panorama des Technologies Web et Devops Didier DONSEZ Université Grenoble Alpes Polytech’Grenoble & LIG IUT de Valence / L3 CASIR / Avril 2018

Upload: others

Post on 20-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 32: 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

Dashboard Gentelella

Page 33: 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

Dashboard SB Admin 2

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

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

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

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

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

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

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