S'S ALGORITHM

基本上只会在云上部署IaC了现在,所以放入云学习笔记。IaC的好处不言而喻。

Chef和Ansible鼓励采用过程性编程语言,在这种语言中,用户可以编写代码来指示工具如何逐步实现所要达到的最终状态。Terraform、CloudFormation、SaltStack、Puppet和OpenStack Heat都鼓励使用声明性编程语言,在这种语言中,用户可以编写代码来指示工具所要达到的最终状态,而IaC工具将负责决定具体的实现步骤。显然过程性语言需要更多思考和考虑,但是指示最终状态的声明性语言,则更好。Terraform的plan命令则可以预览将要发生的事情。

过程性代码很难重用,因为你要考虑历史记录。

src是一开始理想的有很多文件结构的代码,但是似乎测试不是很,于是简化了版本,给每个dataset一个文件,是src2的代码内容,跑的很好,有以下效果:

  1. 代码环境可以分开,dev中merge后可以在开发环境部署,main中merge后可以在生产环境部署
  2. 在GithubActions中的的workflow中,使用terraform部署时候的var文件,来动态选择对象project就可以了,环境变量的文件在env文件夹中定义即可

前提条件:在上述的workflow的yml文件中还要动态定义使用的认证信息,使用了workloadidentity,需要在GCP中提前设置好

另外测试了一些关于表格定义的内容有一些注意事项:

一些我玩的时候的局限性:

学习笔记