L’élasticité, c’est comme le sexe chez les ados : tout le monde en parle, tout le monde se vante d’avoir la plus belle, la plus élastique... (on parle bien d'infrastructure !) mais au final, quand on creuse un peu, c’est souvent des bouts de ficelles qui font tenir tout ça.
17. Élasticité ?
• Il se passe quoi si je passe au JT de 20 sur TF1 ?
• Je paye combien quand j’ai 3 utilisateurs ?
18. Élasticité ?
• Il se passe quoi si je passe au JT de 20 sur TF1 ?
• Je paye combien quand j’ai 3 utilisateurs ?
• Virtualisation + Cloud = IaaS
19. Élasticité ?
• Il se passe quoi si je passe au JT de 20 sur TF1 ?
• Je paye combien quand j’ai 3 utilisateurs ?
• Virtualisation + Cloud = IaaS
• Mais comment je mets à jours ma configuration ?
23. HashiCorp
• VirtualBox -> Mitchell Hashimoto
• Fonde en 2012 avec Armon Dadgar HashiCorp
• Développe des produits “devops”
24. HashiCorp
• VirtualBox -> Mitchell Hashimoto
• Fonde en 2012 avec Armon Dadgar HashiCorp
• Développe des produits “devops”
• En opensource
25. HashiCorp
• VirtualBox -> Mitchell Hashimoto
• Fonde en 2012 avec Armon Dadgar HashiCorp
• Développe des produits “devops”
• En opensource
• Et en mode commercial
56. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
57. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
58. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
59. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
60. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
61. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
62. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
• consul-client:~$ curl 127.0.0.1:8500/v1/kv/hello
63. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
• consul-client:~$ curl 127.0.0.1:8500/v1/kv/hello
• [{“LockIndex":0,"Key":"hello","Flags":
0,"Value":"Q29uc3VsIGRldm9wcw==","CreateIndex":
10968,"ModifyIndex":10978}]
64. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
• consul-client:~$ curl 127.0.0.1:8500/v1/kv/hello
• [{“LockIndex":0,"Key":"hello","Flags":
0,"Value":"Q29uc3VsIGRldm9wcw==","CreateIndex":
10968,"ModifyIndex":10978}]
65. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
• consul-client:~$ curl 127.0.0.1:8500/v1/kv/hello
• [{“LockIndex":0,"Key":"hello","Flags":
0,"Value":"Q29uc3VsIGRldm9wcw==","CreateIndex":
10968,"ModifyIndex":10978}]
• consul-client:~$ curl --request PUT --data '"Fixed string"' 127.0.0.1:8500/
v1/kv/hello
66. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
• consul-client:~$ curl 127.0.0.1:8500/v1/kv/hello
• [{“LockIndex":0,"Key":"hello","Flags":
0,"Value":"Q29uc3VsIGRldm9wcw==","CreateIndex":
10968,"ModifyIndex":10978}]
• consul-client:~$ curl --request PUT --data '"Fixed string"' 127.0.0.1:8500/
v1/kv/hello
• true
67. Consul / KV
• consul-client:~$ consul kv get hello
• Error! No key exists at: hello
• consul-client:~$ consul kv put hello 'Consul devops'
• Success! Data written to: hello
• consul-client:~$ consul kv get hello
• Consul devops
• consul-client:~$ curl 127.0.0.1:8500/v1/kv/hello
• [{“LockIndex":0,"Key":"hello","Flags":
0,"Value":"Q29uc3VsIGRldm9wcw==","CreateIndex":
10968,"ModifyIndex":10978}]
• consul-client:~$ curl --request PUT --data '"Fixed string"' 127.0.0.1:8500/
v1/kv/hello
• true
120. ACL 2/4
• Feb 12 17:19:29 consul-01 consul[18761]: http: Request GET /v1/
agent/self, error: Permission denied from=127.0.0.1:36107
121. ACL 2/4
• Feb 12 17:19:29 consul-01 consul[18761]: http: Request GET /v1/
agent/self, error: Permission denied from=127.0.0.1:36107
• Feb 12 17:19:33 consul-01 consul[18761]: agent: Coordinate
update blocked by ACLs
122. ACL 2/4
• Feb 12 17:19:29 consul-01 consul[18761]: http: Request GET /v1/
agent/self, error: Permission denied from=127.0.0.1:36107
• Feb 12 17:19:33 consul-01 consul[18761]: agent: Coordinate
update blocked by ACLs
• ubuntu@consul-client:~$ consul members
123. ACL 2/4
• Feb 12 17:19:29 consul-01 consul[18761]: http: Request GET /v1/
agent/self, error: Permission denied from=127.0.0.1:36107
• Feb 12 17:19:33 consul-01 consul[18761]: agent: Coordinate
update blocked by ACLs
• ubuntu@consul-client:~$ consul members
• “”
124. ACL 2/4
• Feb 12 17:19:29 consul-01 consul[18761]: http: Request GET /v1/
agent/self, error: Permission denied from=127.0.0.1:36107
• Feb 12 17:19:33 consul-01 consul[18761]: agent: Coordinate
update blocked by ACLs
• ubuntu@consul-client:~$ consul members
• “”
• ubuntu@consul-client:~$ consul info
125. ACL 2/4
• Feb 12 17:19:29 consul-01 consul[18761]: http: Request GET /v1/
agent/self, error: Permission denied from=127.0.0.1:36107
• Feb 12 17:19:33 consul-01 consul[18761]: agent: Coordinate
update blocked by ACLs
• ubuntu@consul-client:~$ consul members
• “”
• ubuntu@consul-client:~$ consul info
• Error querying agent: Unexpected response code: 403 (Permission
denied)
156. Conclusion
• J’aime systemd
• Je n’aime pas upstart (encore moins depuis que j’ai fait ces
slides)
• J’aime encore plus systemd
157. Conclusion
• J’aime systemd
• Je n’aime pas upstart (encore moins depuis que j’ai fait ces
slides)
• J’aime encore plus systemd
• Consul permet de simplifier l’élasticité
158. Conclusion
• J’aime systemd
• Je n’aime pas upstart (encore moins depuis que j’ai fait ces
slides)
• J’aime encore plus systemd
• Consul permet de simplifier l’élasticité
• Mais potentiellement ajouter des problèmes