协议即代码:如何重构基础架构而不破坏



这是TechLeadConf 2020-06-09上的演讲的记录在开始之前,请尝试自己回答问题,与基础架构进行交互对您有什么期望?例如,需要多长时间:



  • 部署新的测试环境。
  • 更新容器内的Java和/或OS版本。
  • 授予服务器访问权限。


TechLeadConf



, . -, ?





, , . , - . , , . .





C + + =





? . , . , : .



  1. . . , . / -( !). 10-15 . - . , , - - , . , .
  2. . , jira, email, slack . . " , , ". .
  3. . . : jira, 7 .






, , , . , . CoreOS compose . k8s . : YML git? ? , . . , . . . — , . . : , .



?







, . , , . , . , . : … … . -. , .



Agreements as Code





Jira. , . - - . . DSL, Ansible . . - . ? ?



Agreements as Code





/ . .



  • * — "" . / / .
  • — / .




:



  • , — . confluence , , .
  • , — , . REST api , DNS . .
  • , — . email? ? ?
  • , — , , .. . , , . , * IaC.


-> ->





. .



  • — , , , .
  • — . confluence . .
  • — " "() . , * as Service .




, ?



  • , — . , , LDAP . -> -> LDAP.
  • , — , .. , . AWS, * as Service , - . , , .
  • , — . - email , ; , web .
  • , — , , *( , .. !), .


, * as Service.



.



, . , , . , / . :



  • .
  • .
  • ...


Ansible: 120 VM c Coreos Centos 18





, configuration management . , , , .. , . Ansible, Ansible: 120 VM c Coreos Centos 18 . 1,5 ? — 80% reverse engineering 20% , . :



CFM 2 Ansible



  1. .
  2. .
  3. .
  4. .
  5. .
  6. №2.


Ansible,



Ansible重构



Ansible. - , , .. . , air gap( ). . Ansible, , :



  1. .
  2. .
  3. .
  4. /, .


Ansible ?



Ansible测试



, . Jenkins Pipeline, :



  1. .
  2. Jenkins.
  3. lint .
  4. molecule


IaC



IaC重构



, / * as Service. . :



  1. .
  2. .
  3. .
  4. .
  5. .
  6. ( ! ).
  7. .


. : , , . :



  • — , , .
  • — , , .
  • — , .






, , IaC . , , . :



  • — YML . , , - .
  • — Ansible .
  • — .


, :



  • .
  • .
  • .


, , . / .



IaC testing pyramid. !



IaC测试金字塔



DevopConf , 200 000 . , , : , , , .



  • Static Analysis — , . , .
  • Unit — IaC . Ansible Molecule.
  • Integrationunit, .
  • E2E — , .


?



, . . . , ? .



№1





, .. , . , .



№2





. .



, . SLOC:



  • 2000 — .
  • 4000
  • 6000 — .
  • 8000 — E2E .


Lessons learned



  1. .
  2. Agreements as ode .
  3. -> -> .
  4. . .
  5. / .
  6. IaC testing pyramid. !







All Articles