@DambrineF
Florian Dambrine
Senior DevOps Engineer - @GumGum
La Tech Amiénoise
06 Novembre 2018
Invente le In-Image Advertising en 2007
Publicité innovante et solution de "visual intelligence" pour les agences et les sites marchands
Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal resources
-- Jesse Robins
https://searchitoperations.techtarget.com
Les explications que vous pouvez lire dans le suite de cette présentation où les définitions sur ce qu'est un DevOps sont purement basées sur des impressions personnelles et ne font en aucun cas d'eux des postulats.
C'est un état d'esprit qui permet aux développeurs [DEV] et aux administrateurs systèmes [OPS] de travailler efficacement ensemble, dans l'optique de rendre leurs clients satisfaits et heureux.
C'est l'utilisation d'outils permettant de:
Infrastructure
vue par les Devs
Équipe DevOps
Un nouvel état d'esprit
De nouveaux outils
Prêt à relever les challenges dans un monde qui bouge vite!
+
=
Image Science
Web Team
Data Science
Big Data
8 Ingénieurs
5 Ingénieurs
19 Ingénieurs
4 Ingénieurs
11 Ingénieurs
10.5 Ingénieurs pour 1 DevOps
250 serveurs pour 1 DevOps
Tue Apr 12 23:47:14 -0700 2016, {"id":"c3abd0fe-1f4f-41ce-99bc-2f1a00da4a56","t":1460530034053,"cl":"js","ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36","ip":"72.0.177.26","cc":"US","rg":"OR","ct":"Redmond","pc":"97756","mc":821,"isp":"TDS Telecom","bf":"a7c33d2da9571a12da8c2f6b7fc9547a714166ab","vst":"cdbc2841-7592-4653-ae8f-5f5cd44ea8ca","lt":"Fri Apr 08 07:52:39 -0700 2016","sip":"10.11.153.143","awsr":"us-west-1"}, {"e":"other","et":"3","v":"1.1","t":"dbc517e1","ab":40621,"u":"http://cdn-s3.si.com/s3fs-public/styles/si_article_main/public/2015/11/29/2016-us-olympic-trials-schedule-track-and-field.jpg?itok=kZsubl3W","seq":"1","tr":"0.6","af":"false","pv":"c5cacfc9-5b94-4ff1-8e83-55984fc4794f","pu":"http://www.si.com/olympics/2016-us-olympic-trials-schedule-track-and-field-events","do":"*.si.com","zti":1,"vi":2,"pi":12366,"bu":1,"pcki":5945,"argi":1020,"pri":1,"uti":21,"adi":491,"ei":119,"agi":39,"spi":185,"di":122,"atmi":347,"ii":141,"cli":1,"aolid":290,"cid":2427,"cre":"true","pcc":["IAB17","IAB17-23","IAB17-38","IAB17"],"pevt":["GGE8-3","GGE3-5","GGE8-12","GGE18-1","GGE10-4","GGE8","GGE18","GGE10","GGE3"]}
ECS Cluster
<feature-1>
<feature-2>
<dev>
<stage>
<master>
app.gumgum.com
stage.va.ggops.com
dev.va.ggops.com
feature-2.dev.va.ggops.com
feature-1.dev.va.ggops.com
commit > build > test > release > deploy
app/
├── ...
├── Dockerfile
└── .drone.yml
L’application 12 facteurs est une méthodologie pour concevoir des logiciels en tant que service qui :
- Utilisent des formats déclaratifs pour mettre en oeuvre l’automatisation
- Offrent une portabilité maximum entre les environnements d’exécution
- Sont adaptés à des déploiements sur des plateformes cloud modernes
- Minimisent la divergence entre le développement et la production,
- Peuvent grossir verticalement (nombre vs. taille)
# .drone.yml
---
pipeline:
build:
image: node:alpine
commands:
- yarn
test:
image: node:alpine
commands:
- yarn test
pre-release:
image: node:alpine
commands:
- yarn build
- tar -zcvf build.tar.gz -C build .
when:
event: tag
release:
image: plugins/github-release
secrets: [ github_token ]
files:
- build.tar.gz
when:
event: tag
notify:
image: plugins/slack
channel: drone
secrets: [ slack_webhook ]
when:
status: [ success, failure ]
---
# docker-compose.yml
version: '3'
services:
web:
depends_on:
- db
build: './Dockerfile'
ports:
- "5000:8001"
db:
image: postgres
volumes:
- ./mounts/db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: <PG_USER>
POSTGRES_PASSWORD: <PG_PASSWORD>
POSTGRES_DB: stockerize_prod