在云计算大数据时代,企业的不断上云,业务的不断发展,技术架构的不断演进,导致资源、应用和数据的管理成本不断增加,运维难度不断加大。业务场景的不断和复杂和变化,不得不引起我们更多的思考:
- 业务基础设施架构如此复杂,是否可以实现一键搭建?
- 自定义云镜像,能否实现批量生产?
- 数据安全,是企业和个人最关心的事儿~ AK,证书,敏感数据如何实现自动加密,获取,存储?
- 不想手动登录机器,如何实现应用开发运维?
- 机器这么多,架构这么复杂,如何快速迁移到阿里云上?
- 企业上云,多家云资源如何统一管理?
- ...
面对这些问题和困扰,如果能借用一种或者多种自动化工具,让机器来帮我们做一些繁琐的工作,而我们只需关注一些简单的配置,那么将大大提高工作效率。
如何让机器给我们做事情呢?这就是基础设施即代码(Infrastructure As Code,IaC)。即,将我们的阿里云资源,云镜像建立过程,应用部署过程以及数据管理流程等,以代码的方式定义在模版中,利用开发者工具通过对这些模板的有效管理来实现对阿里云资源,应用以及数据的有效管理。
目前,阿里云已经实现了对主流开源管理工具 Terraform、Ansible、Packer、Vault、Bosh等的成功接入和支持,可帮助开发者在自动化运维,多云管理,云迁移,数据安全等领域释放更多生产力,助力云基础设施的高效、统一管理。
Terraform,让资源管理更简单
Terraform是一个开源的资源编排工具。利用 Terraform 的语法,将资源以代码的形式定义在Terraform模板,然后借助于阿里云提供的
Terraform Provider来实现对阿里云资源,如 ECS instance,VPC,VSwitch,SLB 等的统一创建和管理。
以现有模板
terraform-alicloud-classic-load-balance为例,将一个经典的负载均衡架构中,所涉及的资源 VPC,VSwitch,ECS Instance,RDS,Security Group,SLB 以及 OSS Bucket 定义在一个统一的模板文件
main.tf
中,依次运行如下的命令,即可实现对这个系统架构的快速搭建和一键释放。
# 下载模板并进入模板目录
$ git clone https://github.com/terraform-alicloud-modules/terraform-alicloud-classic-load-balance.git && cd terraform-alicloud-classic-load-balance
# 初始化 Terraform
$ terraform init
# 预览所要创建的资源
$ terraform plan
# 创建所有资源
$ terraform apply
# 一键释放所有资源
$ terraform destroy
目前,阿里云 Terraform Provider 已经覆盖了22个阿里云的产品,支持100多个resource和datasource,并提供了丰富的
Examples和
Modules,持续提升开发者的体验和效率,释放更多生产力。
Packer,无需关心如何创建镜像
Packer是一个自动化制作云镜像的开源工具。Packer 的出现使得客户无需再去关心云镜像建立的详细过程,无需登录控制台、登录机器手动制作云镜像,只需关心镜像中所要安装什么软件,定制什么服务,下载什么应用即可,阿里云
Packer Builder一键帮你制作属于自己的云镜像。
以现有
Example Jenkins为例,利用阿里云 Packer Builder,一键制作 Jenkins 镜像:
# 下载Example
$ git clone https://github.com/alibaba/packer-provider.git
# 一键制作Jenkins镜像
$ packer build examples/alicloud/jenkins/alicloud.json
目前,阿里云 Packer Builder 已支持制作 14 种操作系统发行版镜像的制作,包括我们最长用的 Ubuntu,CentOS,Windows等。
Bosh,简化平台架构的部署和管理
Bosh是一个可以为小型或大型云软件实现的发布,部署和生命周期管理的项目。阿里云
Bosh CPI实现了对 Bosh 的支持,进而成功地支持了第一个开源 PaaS 平台 CloudFoundry 在阿里云上的落地,帮助更多的企业和开发者实现了使用阿里云的需求。
目前,我们已经提供了详细的
CloudFoundry 落地阿里云的技术方案,欢迎大家参考。
Ansible,自动化管理阿里云资源
Ansible是一款自动化部署应用的强大工具,实现了登录机器,上传/下载应用包,部署应用以及管理应用等一系列流程的自动化。阿里云在 Ansible 强大的自动化管理能力的基础上,提供了多个云资源管理的
Module,如
ali_instance
,
ali_vpc
ali_slb_lb
等。借助这些 Module,用户可以将对云资源的管理流程加入到应用部署的管理流程中,从而实现从资源创建到应用部署一键式的过程,进一步提升自动化的能力,提升运维效率。
Example alicliud_ecs_vpc,借助阿里云提供的Module,可实现对 ECS instance,VPC,VSwitch,安全组,ECS disk等资源的自动化创建和删除:
# 下载Example并进入example目录
$ git clone https://github.com/alibaba/ansible-provider.git && cd ansible-provider/examples/alicloud-ecs-vpc
# 一键创建云资源
$ ansible-playbook alicloud.yml
# 一键删除云资源
$ ansible-playbook destroy.yml
Vault, 密钥管理更简单
Vault是一个用户管理密钥和管理敏感数据的工具。它实现了对 AccessToken,AccessKey,Password,安全证书,密钥等敏感数据的统一管理和存储。阿里云对Vault的接入,提供了
Secrets Engine Auth Method,让更多的开发者无需再为设置繁琐的环境变量和静态密钥文件而苦恼,也无需再为丢失密钥和AK泄漏而担心,所有的敏感数据都可交由 Vault 来管理,当需要的时候,实时通过 Vault 命令获取即可,即省事,又安全。