$30 off During Our Annual Pro Sale. View Details »

Configuration Managementツールのポリシー定義用中間言語に関する考察/C...

Configuration Managementツールのポリシー定義用中間言語に関する考察/Considerations about an intermediate language of configuration management tools

Gosuke Miyashita

November 13, 2020
Tweet

More Decks by Gosuke Miyashita

Other Decks in Technology

Transcript

  1. Configuration Management • BurgessΒ1ʹΑΔͱɺConfiguration Managementͱ͸ʮ༧ Ίఆٛ͞ΕͨϙϦγʔͱΨΠυϥΠϯʹै͍ɺࣄલʹܾΊΒ ΕͨϏδωε্ͷ໨తΛୡ੒͢ΔΑ͏ɺωοτϫʔΫ઀ଓ͞ ΕͨϚγϯͷৼΔ෣͍Λ੍ޚ͢ΔϓϩηεʯͰ͋Δ 1 Burgess,

    Mark, and Alva L. Couch. 2006. “Modeling Next Generation Configuration Management Tools.” In LISA, 131–47. static.usenix.org. (PDF) ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 3
  2. Configuration Managementπʔϧ • Configuration ManagementΛߦ͏ͨΊͷιϑτ΢ΣΞ • Ҏ߱CMTͱུ͠·͢ • ୅දతͳ΋ͷʹCFEngine2, Puppet3,

    Chef4, Ansible5ͳͲ͕͋ Δ 5 Ansible is Simple IT Automation 4 Chef: Enabling the Coded Enterprise through Infrastructure, Security and Application Automation 3 Powerful infrastructure automation and delivery | Puppet 2 CFEngine ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 4
  3. CMTͰͷϙϦγʔఆٛͱৼΔ෣੍͍ޚͷྫ ϙϦγʔఆٛ package 'nginx' do action :install end service 'nginx'

    do action [:enable, :start] end ৼΔ෣੍͍ޚ $ chef-apply nginx.rb ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 6
  4. CMTͰ޷·ΕΔݴޠ • YAML͕࠷΋ਓؾ͕͋Δ • CMTͰ͸YAMLΛ࠾༻ͨ͠Ansible͕ਓؾ • CMTҎ֎Ͱ΋Kubernetes7͕YAMLΛ࠾༻ • ਓؾͷཧ༝ •

    CMTͷैདྷͷར༻ऀͰ͋ͬͨγεςϜ؅ཧऀʹϓϩάϥϛϯάΛߦΘͳ͍ਓ͕ଟ͍ • ࢓༷͕খ͘͞ɺม਺΍ϩδοΫ͕ͳ͍ͨΊɺ֮͑΍͘͢هड़͕؆ܿͰϝϯςφϯε ͠΍͍͢ʢͱࢥΘΕ͍ͯΔʣ 7 Kubernetes ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 8
  5. CMTҎ֎ͷIaC9πʔϧͷݴޠมભ • Terraform10͸ಠࣗݴޠɺCloudFormation11͸JSON/YAML • ͦͷޙϓϩάϥϛϯάݴޠ࠾༻ͷྲྀΕ • Pulumi12, CDK13ͳͲ • Kubernetes΋͜ͷྲྀΕ

    • Kubernetes with Pulumi14, CDK for Kubernetes(cdk8s)15ͳͲ 15 CDK for Kubernetes ͷ͝঺հ | Amazon Web Services ϒϩά 14 Kubernetes with Pulumi | Pulumi 13 AWS Ϋϥ΢υ։ൃΩοτ – ΞϚκϯ ΢Σϒ αʔϏε 12 Pulumi - Modern Infrastructure as Code 11 AWS CloudFormationʢςϯϓϨʔτΛ࢖ͬͨϦιʔεͷϞσϧԽͱ؅ཧʣ| AWS 10 Terraform by HashiCorp 9 Infrastructure as Codeͷུ ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 10
  6. CMT/IaC༻ϙϦγʔهड़ݴޠͷมભ • ಠࣗݴޠ → ϓϩάϥϛϯάݴޠ → YAML → ϓϩάϥϛϯά ݴޠɺͱ͍ͬͨมભ͕ݟ͑Δ

    • Ͳͷݴޠ͕࠷ద͔͸ɺར༻͢Δਓ΍ͦͷਓ͕ଐ͢Δ૊৫ͷঢ় گɺར༻ऀͷεΩϧɺ޷Έɺͦͷ࣌ͷपลٕज़΍ϕετϓϥ ΫςΟεͳͲʹґଘ͢Δ • ͕ͨͬͯ͠Ͳͷݴޠ͕CMTʹ࠷ద͔͸Ұ֓ʹ͸ݴ͑ͳ͍ ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 11
  7. ৼΔ෣੍͍ޚख๏ͷมભ • ݴޠಉ༷ɺৼΔ෣੍͍ޚ΋༷ʑͳख๏͕͋Δ • αʔόʔ/ΤʔδΣϯτܕ • ελϯυΞϩʔϯܕ • ΤʔδΣϯτϨεܕ •

    ݩʑɺCFEngine, Puppet, Chef͸αʔόʔ/ΤʔδΣϯτܕ • ελϯυΞϩʔϯͰ΋ར༻Մ • ͦͷޙग़͖ͯͨAnsible͸ΤʔδΣϯτϨεܕ • AnsibleͷӨڹ͔ɺMasterless Chef/Puppetͱ͍͏ϫʔυ͕ThoughtWorks Technology Radarʹొ৔16 16 Masterless Chef/Puppet | Technology Radar | ThoughtWorks ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 12
  8. ࠓޙͷݚڀͷਐΊํ • ·ͣ͸ݴޠΑΓ΋Configuration Managementશൠʹ͍ͭͯϦαʔνΛ͔ͬ͠Γߦ͍͍ͨ • ಛʹɺMark Burgessࢯ΍Alva CouchࢯΒ͕90೥୅͔ΒConfiguration Managementؔ࿈ ͷ࿦จΛग़͍ͯ͠ΔͷͰɺ·ͣ͸͔ͦ͜Β

    • CMT༻ݴޠʹؔͯ͠͸ɺઌߦݚڀ͕͍͔ͭ͋͘Δ18 19͕ɺConfiguration Managementͱ ͸ผͷྖҬ͔Β΋Ϧαʔνͨ͠ํ͕ྑͦ͞͏ 19 Ngoupé, Éric Lunaud, Clément Parisot, Sylvan Stoesel, Petko Valtchev, Roger Villemaire, Omar Cherkaoui, Pierre Boucher, and Sylvain Hallé. 2017. “A Declarative Approach to Network Device Configuration Correctness.” Journal of Network and Systems Management 25 (1): 180–209. 18 Delaet, Thomas, and Wouter Joosen. 2007. “PoDIM: A Language for High-Level Configuration Management.” In Proceedings of the 21st Large Installation System Administration Conference (USENIX LISA’07), 261–73. Usenix Association. ୈ7ճWebSystemArchitectureݚڀձ 2020/11/13 19