1. The roadMap To devOps
Engineering : My Journey
Thème:
par Elie Sirius
2. 1. Définition
Le devops — ou DevOps est un mouvement en
ingénierie informatique et une pratique technique
visant à l'unification du développement logiciel (dev)
et de l'administration des infrastructures
informatiques (ops), notamment l'administration
système.
C'est un concept qui permet de gérer ensemble les
tâches liées aux équipes de développement et
d'exploitation tout en mettant en place avec agilité
des logiciels avec une industrialisation plus rapide.
3. 2. Pourquoi un devOps??
Excellence opérationnelle
les équipes déploient 208 fois plus aisément les projets.
L’intégration continue permet une mise à jour plus rapide des
nouvelles versions. Les entreprises font 3 fois moins d’erreurs et
corrigent 24 fois plus vite par rapport à une gestion classique.
DevOps utilise un modèle de livraison continue dans lequel les
équipes développent, écrivent, testent et publient des logiciels dans
des cycles de temps courts.
Sécurité des projets
Le DevOps est également une méthode de travail prudente. Les
équipes sécurisent les projets dès leur mise en place, lors de la
phase de conception. Le travail est certes mis en commun mais
clairement décortiqué afin d’éviter les erreurs.
Chaque action passe par une phase automatisée de tests pour
vérifier que les nouvelles fonctionnalités sont viables
4. The RoadMaps
Comme le nom l’indique devOps est composer de
deux mots Developpement et Operations et pour
y parvenir il faudra maîtriser les deux partie.
Essayons de détailler chaque partie dans la suite
1. Développement
2. Opérations
5. 1. Développement
La première étape vers la pratique DevOps est le
développement.
Il faut connaître comment les langage de
programmation fonctionnent ce qui aident lors de
l’automatisation.
Parmis les langages de programmation les plus
utilisés on peut citer :
python, javascript(et nodejs), php, c++, html(bien
sure), …
L'idée est d’apprendre au moins un langage de
programmation pour comprendre comment les
langages de programmation fonctionnent car les
caractères uniques de chaque langage ne vont pas
trop impacter l’automatisation.
a. Code
6. b. Os Conceptions
un devOps doit comprendre le fonctionnement d’un
système d’exploitation parce que comme nous le
savons chaque système est unique
par exemple pour l’unix comprendre :
- I/O management
- service management (systemd)
- sockets
- networking concepts
- file systems
- commandes shell
- etc..
7. 2. Opérations
La plupart des serveurs sont sous un système d'opération linux
Quelques distributions linux a mentionné: centos, debian, ubuntu,
fedora, redhat etc..
un devOps doit avoir un minimum de connaissance dans:
- ssh et OpenSSL vivre dans le terminal apprendre les
commandes et comment elles sont exécutées
- networking ping,netstat,osi Model,tcpdump et protocoles de
sécurités tel que DNS, https, ftp, SSL/TLS protocole Email
comme SMTP,IMAPS,POP3S,DMARC
- bash scripting pour l’automatisation de certaines tâches
- Text manipulation AWK,SED,GREP, SORT..
- Process monitoring ps, top, htop ...
2.1. administration server basic
8. 2.2. Setup
- configuration du firewall dans le
système du choix de l'environnement
codage
- configuration reverse proxy et setup
- configuration du load balancer
- configuration du forward Proxy
- configuration du caching server
- configuration complète du web server
comme Nginx, apache,IIS
9. 2.3 Virtualisation
le métier en soit d’un devOps c’est la création, l’automatisation
et la gestion des environnements de codage l’une de meilleur
moyen de le faire et par virtualisation.
● la création
les devOps utilisent la virtualisation par la technologie
DOCKER.
Un devOps doit savoir:
- créer des containers linux avec Docker, LXC, ...
- container Orchestration avec Kubernetes, Docker swarm,
Nomad
- gestion de configuration avec Ansible, salt, chef, puppet
- etc..
10. ● l’automatisation
le plus grand avantages de la technologie
de virtualisation par docker est
l’automatisation du cycle de déploiement.
un devOps doit savoir :
- manipuler l’outil Git et ses commandes
- se familiariser avec les repositories docker
hub
- configurer l’automatisation
CI/CD(Continuous Integration et
continuous deployment) avec les outils
comme Gitlab CI, Circle CI, Travis CI
11. ● Gestion
Comme tout système informatique il arrive
qu’il crash ou qu’il soit pirater
un devOps doit être capable de gérer ce
genre de situation
autrement dit savoir:
- gestion de logs dans le shell ou terminal
- maîtriser l’outil elastic services (elk
elasticsearch logstash kibana stack)
- manipuler de platform comme splunk,paper
trail etc..
12. ● Monitoring
l’environnement de travail pour un devOps
généralement c’est le terminal ce qui réduit la
capacité d’une bonne gestion des processus en
cours ou dans le cas des plusieurs serveurs tout
les serveurs.
voilà pourquoi un devOps doit aussi maîtriser:
- les infrastructures du monitoring
comme prometheus, grafana etc ..
- les application du monitoring comme Jaeger,
New relic etc ..
13. 3. Cloud
on ne peux pas parler du devOps sans le
cloud.Tous comme on n parle pas d’un admin sys
sans servers.
Le cloud est composé de serveurs souvent sous
linux dans des centres de données à l’échelle de la
planète.
un devops doit être capable de :
- configurer un serveur sur le cloud soit sur
AWS, GOOGLE CLOUD, ms AZURE
DigitalOcean.
- savoir manipuler les micro services offert par
le cloud je cite Kubernetes, Docker Swarm
etc…
- networking