敏捷基础设施

敏捷基础设施

Cloud Native的基石是微服务架构、敏捷基础设施及公共基础服务。基础设施至关重要。
敏捷基础设施也可称为基础设施即代码(Infrastructure as Code)或者可编程基础设施(Programmable Infrastructure)
常用的基础设施自动化工具包括Ansible、Terraform等,使用DSL定义、描述环境,更容易理解和维护。

传统基础设施的挑战

  • 资源利用率低:缺乏弹性和统一有效的管理
  • 服务器数量呈爆炸性增长:传统方式难以管理
  • 没有标准化:人工管理导致差异配置
  • 系统脆弱:缺乏自动化,配置难,恢复慢

敏捷基础设施的目标

  • 标准化。所有的基础设施最好都是标准的,没有个性化配置。开发环境、测试环境及生产环境无差异。
  • 可替换。任意节点都能够被轻易地创建、销毁、替换。
  • 自动化。所有的操作都通过工具自动化完成,无须人工干预。
  • 可视化。当前环境要做到可控,就需要对当前的环境状况可视。
  • 可追溯。所有的配置统一作为代码进行版本化管理,所有的操作都可以追溯。
  • 快速。资源申请及释放要求秒级完成,以适应弹性伸缩和故障切换的要求。

基础设施运维的阶段

第一阶段,人工阶段
- 专门的人工负责安装、配置和部署,因人为原因导致故障概率大
- 物理机根据用途严格区分使用,不能互相干扰
- 标准化通过规范约束,效果甚微,效率低下

第二阶段,脚本阶段
- 内部制定标准,要求必须严格执行
- 通过部分脚本实现部署、启动、停止,但仍需要运维人员的操作
- 基础资源使用通过虚拟机方式,需要准确规划和控制虚拟机规模 

第三阶段,工具阶段
- 运维人员通过私有云管理虚拟机,通过CI工具实现持续部署
- 通过虚拟机镜像来封装常用依赖环境
- 开发环境和测试环境、生产环境差距很大,容易导致上线后出现问题

第四阶段,敏捷基础设施阶段
- 自动化的全面实施和落地,日常操作层面极少需要运维人员介入
- 通过容器封装环境和打包镜像,生产环境直接部署镜像,以容器化实现开发、测试、生产环境的一致
- 通过容器调度平台管理容器,资源利用率更高
- 通过配置文件描述环境

敏捷基础设施的价值

  • 将基础设施配置完全当作编写代码(脚本或文件)来进行,使基础设施具有不变性,只要发布就不允许更改,若要更改需要重新发布
  • 替换了所有人工命令操作,一切都可以通过工具完成,更容易形成标准化,操作更可靠
  • 调整了研发流程,改变了角色职责,简化流程,开发人员不仅可以写业务服务的代码,还可以定义运行业务服务的基础设施
  • 在没有运维人员参与的情况下,所有开发流程都是由全栈工程师主导,申请生产环境的资源,自动化配置,部署应用等,
  • 有编码和架构能力的运维人员开发和运营云平台和工具

posted @ 2018-11-28 00:26  Anliven  阅读(523)  评论(0编辑  收藏  举报