Hashicorp tools の 2015/11/30 〜 2016/04/18 の更新分をすごくざっくり追った資料です
Hashicorp trends( 2015/11/30 - 2016/04/18 )Heartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 1
View Slide
Tools• Vagrant• Packer• Serf• Consul• Terraform• Vault• Nomad• OttoHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 2
Vagrant• 1.7.4 -> 1.8.1• Linked Clone• Ϛελʔ VM ͔Β৭ΜͳΫϩʔϯ VM Λ࡞Δػೳ• VM ϑϧίϐʔͰແ͘ϚελʔΫϩʔϯ͔Βͷ͚ࠩͩอ࣋͢Δ• Vagrant up ͷ͕࣌ؒ͘ͳΔͷͱσΟεΫΛ͍ͬͺ͍Θͳͯ͘͢Ή• Snapshot• ੲ sahara ͍ͬͯ͏ϓϥάΠϯͰ࣮ݱͯͨͭ͠• ಛఆλΠϛϯάͰεφοϓγϣοτΛऔΕΔɾ෮ݩͰ͖Δ• ಛఆͷঢ়ଶ͔ΒͷҰ࣌తͳݕূͱ͔͍ͨ͠߹ʹ͑ͦ͏• Vagrant powershell ͱ͔͍ͭͨHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 3
Packer• 0.8.6 -> 0.10.0• 0.9 Ͱ ansible remote provisioner ͕͍ͨ• packer build ͷޙ ansible Λ remote ͔Β࣮ߦͰ͖Δ• playbook_file Ͱ playbook ͷϑΝΠϧΛࢦఆ࣮ͯ͠ߦ• ansible ͕ࣦഊ͢Δͱ packer build ࣦഊͱͳΓ terminate ͞ΕΔ• Chef on Windows ͕͍ͭͨ• 0.10.0 Ͱ Azure Resource Manager Ͱ VHD Λ࡞Ͱ͖ΔΑ͏ʹͳͬͨHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 4
Serf• 0.7 ϦϦʔε• serf rtt ͱ͍͏ϊʔυؒͷ RTT ਪఆΛऔಘͰ͖ΔαϒίϚϯυ͕Ճ• ݱࡏͷϊʔυ͔Βผͷϊʔυ͘͠ผͷϊʔυ͔Βߋʹผͷϊʔυͷ RTT ਪఆΛऔಘՄೳ• Vivaldi ΞϧΰϦζϜΛ༻• serf info ͱ͍͏ event handler ΛදࣔͰ͖ΔαϒίϚϯυ͕Ճ• gossip protocol ͷϊʔυোݕग़ʹ TCP fallback ػೳΛՃHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 5
Consul• 0.5.2 -> 0.6.4• consul rtt ͱ͍͏ϊʔυؒͷ RTT ਪఆΛऔಘͰ͖ΔαϒίϚϯυ͕Ճ• API ͔Βར༻Մೳ (serf rtt ͱಉ༷ͷػೳ)• LMDB ΛࣺͯͯجϕʔεͷΠϯϝϞϦ DB Ҡߦ• cgo ಉ࣌ʹࣺͯͯ 100% golang ʹͳͬͨ• Prepared query ػೳͷಋೖ• HTTP API ΛͬͯෳࡶͳΫΤϦΛࣄલʹఆ͓ٛͯ͘͜͠ͱ͕ग़དྷΔ• DNS ͷΫΤϦࣄલʹఆ͓ٛͯ͘͜͠ͱ͕Մೳ• ྫ͑ಛఆͷ DNS ΛҾ͍ͨ࣌ʹ ""master" λάΛ͍࣋ͬͯͯɺconsul rtt Ͱۙ͘ʹ͋ΔϊʔυΛ 3 ͭฦ͢" ͷڍಈΛఆٛͰ͖Δ• ACL ͕͍֦͢͝ு͞Ε·ͨ͠• ϔϧενΣοΫػೳ͕֦ு͞Ε·ͨ͠• TCP Check (ఆظతͳ TCP ଓ) ͱ Docker check (ఆظతͳίϯςφͰͷίϚϯυ࣮ߦ) ͕Ճ͞Εͨ• TCP fallback ͕Ճ͞ΕͨHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 6
Terraform• 0.6.8 -> 0.6.14• terraform validate ͱ͍͏ syntax validation ͢ΔαϒίϚϯυ͕Ճ• terraform untaint ͱ͍͏ taint ঢ়ଶͷϦιʔεΛ untaint ʹ͢ΔαϒίϚϯυ͕Ճ• ലେͳͷ resource Ճ• AWS/Azure/GCP ֤छ ...• Docker, VMware ...• influxdb, mysql, postgres...• datadog, github, chef, ultradns...Heartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 7
Vault• 0.4.0 -> 0.5.2• vault list ͱ͍͏伴ͱσΟϨΫτϦΛදࣔͰ͖ΔαϒίϚϯυ͕Ճ• ACL ػೳ͕େ෯ʹ֦ு• HA Physical backends ͰෳͷσʔλετϨʔδΛ༻Ͱ͖ΔΑ͏ʹͳͬͨ• backend ͱ ha_backend ͱ͍͏σΟϨΫςΟϒͰࢦఆՄೳ• unseal key ʹؔ͢Δػೳ͕֦ு͞Ε·ͨ͠• rekey ͱ archiving(keybase.io ͷ PGP 伴ͱ࿈ܞՄೳ)͕ग़དྷΔΑ͏ʹͳΓ·ͨ͠• unseal key Λͬͨ root token ͷ regenerate ͕ग़དྷΔΑ͏ʹͳΓ·ͨ͠• ࠓ·Ͱ root token Λ revoke ͨ͠Βऴྃͩͬͨ• AWS STS ͷαϙʔτ/DynamoDBɾPostgreSQL Physical backend ͷαϙʔτHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 8
Nomad• 0.2.1 -> 0.3.1• Periodic Jobs ػೳͷՃ• ఆظ࣮ߦ͞ΕΔλεΫΛఆٛ͢Δ͜ͱ͕Մೳ• nomad status Ͱۙͷ࣮ߦδϣϒͷঢ়ଶͱ࣍ͷδϣϒͷ࣮ߦ͕࣌ݟΕΔ• ϩάϩʔςʔγϣϯɾϩάΞΫηεػೳͷՃ• λεΫ͝ͱͷϩάϩʔςʔγϣϯΛࢦఆՄೳ• ϑΝΠϧɾ࠷େϑΝΠϧαΠζ• nomad fs ls ${JOB_ID} ${NAMESPACE} ͷ fs ls fs cat ͷαϒίϚϯυͰϩάʹΞΫηεՄೳʹͳͬͨ• Job Queue ػೳͷՃ• Ϋϥελʹར༻ՄೳͳϦιʔε͕ଘࡏ͠ͳ͍߹δϣϒΛ block ͢Δ• ྫ͑ CPU (MHz) Ͱࢦఆ͕ͨ͠Γͳ͍߹ͳͲ CPU ͕ۭ͘·Ͱ࣮ߦ͞Εͳ͍• Ϧιʔε͕ۭ͍ͨΒͦͷϦιʔεΛͬͯδϣϒΛ࣮ߦ͢ΔHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 9
Otto• มߋͳ͠• 0.2.0 ϦϦʔε४උத• App Type ͷՃ: Python, Java• App Type ϓϥάΠϯͷՃ• Layered Dev Environments ػೳͷՃ• ։ൃڥͷ֤ΛΩϟογϡ͢ΔػೳΒ͍͠• ৽͍͠։ൃڥΛ࡞Δͱ͖ʹΩϟογϡΛ͏ͷͰૣ͘ͳΔΒ͍͠Heartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 10
ࢀߟจݙ• https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md• https://github.com/mitchellh/packer/blob/master/CHANGELOG.md• https://github.com/hashicorp/serf/blob/master/CHANGELOG.md• https://github.com/hashicorp/consul/blob/master/CHANGELOG.md• https://github.com/hashicorp/terraform/blob/master/CHANGELOG.md• https://github.com/hashicorp/vault/blob/master/CHANGELOG.md• https://github.com/hashicorp/nomad/blob/master/CHANGELOG.md• https://github.com/hashicorp/otto/blob/master/CHANGELOG.mdHeartbeats ϓϩμΫτษڧձ Hashicorp (2016/04/18) - Yoshikawa Ryota ( @rrreeeyyy ) 11