自动化能自动化的一切
然后介绍了使用Terraform和Packer开源工具完成云上自动运维的具体实现过程
云上自动化资源架构和变更实践
https://yq.aliyun.com/articles/218891?spm=5176.100239.blogcont159008.36.Vzs09S
如何用开源工具进行Multi-Cloud的自动化资源架构和变更?
DevOps和基础设施自动化
据数据统计,在2015年DevOps的被采纳率是66%,而到了2016年就达到了74%,在这短短的一年间增加了8%,对于现在的企业来说,是否采用DevOps,使用得好不好,不仅仅是企业运行的好坏问题,而是生与死的问题。
什么是DevOps?有人说采用敏捷开发,追求最小的可交付价值,快速的开发敏捷是Dev
Ops;也有人说建立良好的监控体系能够自动迅速的反馈提高交付质量就是DevOps;也或者是建立良好的组织和文化,建立企业之间各个部门之间相互良好的沟通方式,以快速交付软件的价值为目的,就是DevOps;还有说DevOps就是打破开发和运营之间的壁垒。那么这些是DevOps吗?
依我看来,DevOps是能够加速从需求收到最后应用和服务交付的一切流程和方法。只有我们采用敏捷的方法,始终追求一个目标,然后建立快速的监控和反馈体系,来提高我们交付的质量,建立企业之间各个部门之间沟通信任的交流环境,以最快的交付服务应用为目的的企业文化,然后基于自动化的工具和服务作为基础来实现目标的快速交付,只有这几个部分有机的组合,才能取得DevOps最大效益。
那么以下问题怎么样来解决呢?
- 通过云服务实现容量规划:因为在云上我们可以快速以分钟级创建资源,并不需要过多的考虑怎么样扩容。我们是按需来规划,我们当前需要多少就规划多少,那么就把一个拍脑袋来规划容量的事情变成当前可及的事情。
- 云产品的采购计划也相对简单,不需要准备机房、布置网络、安装软硬件这些工作,如果我们采用Packer的模板来创建基础设施,也可以一键来准备这些东西,将一个几小时或者几周时间变成分钟级的任务。
- 如果采用CodePipeline等类似的SaaS服务,我们也不需要准备应用的构建和部署工具。因为我们可以很方便的去派生一套新的环境,如果我们需要一套干净的环境时候,我们就可以很快在分钟级来创建这些资源。不用应对开发和测试运营之间因为环境一致性引发的各种争论,业务如果要增长要扩容,对于云上也是Terraform一个简单的命令能完成的事情,所以在云上基础设施自动化DevOps,解决了对于线下来说非常难以解决的基础设施自动化的问题。让DevOps变得更简单、更方便。
- 云上DevOps工具提供了覆盖DevOps的整个环节,从代码的提交到应用发布的整个生命流程,我们可以有灵活的选择开源工具和专业的产品。我们不仅仅能在同一供应商之间选择,也可以在多个云平台厂商之间进行选择。
https://yq.aliyun.com/articles/219185?spm=5176.100239.blogcont159008.37.Vzs09S
云上DevOps-CodePipeline,Packer和Terraform集成实践探索
DevOps本文是对云上DevOps的一种探索,希望让读者能够意识到相对于传统的环境下的DevOps,云上环境能够提供许多传统环境下不能提供的能力,起到一个抛砖引玉的作用。从CodePipeline这个产品来说,接下来我们会针对用户的场景来深度的集成Packer,Terraform,使其能够更加符合云上DevOps的特点,也欢迎广大的读者提出自己的应用场景和需求,来共同探讨云上DevOps的最佳实践。
DevOps越来越火,各种产品层出不穷,技术人员如果不谈谈这个词,就会显得很落伍了,在这种形势下,阿里云也推出了自己的DevOps公共云产品CodePipeline,本文并不想介绍已经铺天盖地的DevOps概念,而是结合阿里云的产品CodePipeline和开源工具Packer,Terraform来实践一种全新云上的DevOps方案,从构建代码,创建自定义镜像,然后基于包含新应用的镜像来创建运行应用的整个基础设施,包括ECS,VPC网络,安全组等等,然后发布应用,从无到有一键完成
https://yq.aliyun.com/articles/159008?spm=5176.100239.blogcont220164.35.mBHBet
阿里云黎山:如何利用开源DevOps工具完成云上的自动运维
https://yq.aliyun.com/articles/109822?spm=5176.100239.blogcont74435.33.QSzMYq
Multi-Cloud模式下Terraform和Packer开源工具实践分享
用工具实现自动化
自动化高于手工
按照固定流程所进行的手工工作,比如手工回归测试和手工部署工作,无趣、缓慢且无法审计。如果能将其代码化,且用版本控制系统管理起来,并加以自动化,这既能节省以后手工运行的大量时间,又能体验到开发测试和部署脚本工作的乐趣。
基础设施即代码高于手工配置
传统Ops的部署工作有些需要用鼠标在界面上点来点去,效率很低;效率高一些的Ops用了自动化脚本,但很多脚本都没有进行版本控制,更别提针对脚本的自动化测试了。如果能够将基础设施的维护工作都通过编写代码并加以版本控制来完成,那么会带来很多好处,比如Ops可以不用通过访问生产环境,就能知道生产环境上的配置情况;非运维人员如Dev,就有机会去学习这些运维配置代码并且加以修改,提升整个团队的DevOps能力;另外工具能方便地读取这些代码,来自动化地维护基层设施,大幅度提升Ops的工作效率。
https://yq.aliyun.com/articles/79509?spm=5176.100239.blogcont159008.43.Vzs09S
前面的思想可以归纳为一句话:自动化能自动化的一切。其优点是:用代码描述基础设施的创建、变更、销毁;代码编写好,验证也是正确的,之后每次执行任务都不会出错;非常快速,高效;代码代替文档,有历史记录,可回滚,不用担心文档更新不及时或人员流动带来的“黑盒”问题;不用通过访问生产环境,就能知道生产环境上的配置情况;提高整个团队的DevOps能力。
Reference
- 云栖公众号:https://yq.aliyun.com/opstools
- Terraform Aliyun官方 Github地址:https://github.com/alibaba/terraform-provider
- Packer Aliyun官方 Github地址:https://github.com/alibaba/packer-provider
- Terraform 官方地址:https://www.terraform.io
- Packer官方地址:https://www.packer.io
巧用Terraform和Packer开源工具完成云上自动运维
应用2的特点是需要做网络隔离,需要将其整个的应用架构搭在VPC网络内,同时有对外网络访问的需求,同时也有应用对外提供服务。所以,整个的架构是VPC下面有两个子网,通过NAT网关和共享带宽包提供对外请求,然后通过负载均衡提供入网能力。要实现以上架构需要七个步骤:创建VPC、创建VSWITCH、创建NAT网关、新建共享带宽包、创建ECS、创建SLB、创建SNAT、挂载SLB。
https://yq.aliyun.com/articles/74435?spm=5176.100239.blogcont159008.39.Vzs09S