Mix-IT 2016
21 Apr 2016
Cet article est une prise de notes du Mix-IT 2016 qui a eu lieu à CPE Lyon.
La conférence avec des crêpes et du cœur. mix-it.fr
Tester et valider ses déploiements
Plusieurs outils pour déployer et monitorer son code :
- SaltStack -> Déploiement (alternative : ansible, chef, puppet)
- Shinken -> Monitoring mais Sensu est bien mieux pour les API Rest
Les devs mettent en place des tests UF, font du TDD… Mais en tant que sysops, c’est assez pénible de tester les scripts de déploiements.
Plusieurs niveaux de vérifications :
1 - Syntaxe
1
ansible-playbook foo.yml --check
2 - Script
Utiliser un serveur jetable : préparer une machine virtuelle via VirtualBox et Vagrant, faire une conf, puis exécuter
3 - Supervision
Exécuter des vérifications périodiquement et envoyer des alertes en cas de problème.
Tout cela peut être intégrer dans un Jenkins.
Test Driven Infrastructure
Mise en place des checks -> Checks négatifs -> Déploiement -> Checks positifs
Checks de supervision + configuration de déploiement = Validation des déploiements
Implémentation de déploiement du serveur de supervision :
- Config de déploiement du serveur de supervision
- Config de déploiement du service
- Config de déploiement de la supervision du service
Exécution :
- Déploiement de la supervision
- Checks -> négatif
- Déploiement service
- Checks -> positif
Go, from Zero to Hero
Très proche de Python ou Ruby mais plus rapide car compilé.
- JSON encoding
- HTTP server
- Types
- Interfaces
- Goroutines
On peut apprendre les concepts de Go en 2h.
Livre à lire : Site Reliability Engineering
HTTP/2 pour le développeur Web
Les problèmes de HTTP/1
Problème de latence. La bande passante n’est plus le problème.
Techniques de contournement :
- Domain sharding
- Concaténation des assets
- Sprites
HTTP/2
Ancêtre de HTTP/2 : SPDY
Plusieurs améliorations :
- Une seule connexion TCP
- Multiplexing : plusieurs requêtes = une seule connexion
- Binary framing
- Flow control
- HPACK
- TLS obligatoire
Informations utiles :
- les frames sont visibles dans les net-internals de chrome
- Nginx supporte HTTP/2
Stream prioritization
Amélioration de TCP sur les serveurs :
- Linux kernel 3.2+
- Cache-Control & Etag
- Gzip / deflate
- Image compression
Dev toolset :
- NSSKeyLog
- Wireshark
- DevToolBar (possibilité d’ajouter de la latence)