栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

运维自动化发展历程及技术应用

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

运维自动化发展历程及技术应用

运维自动化发展历程及技术应用
  • 1.IAAS、PAAS、SAAS
  • 2.运维工程师核心职能
  • 3.Linux运维工程师职能划分
    • 3.1实际应用场景分析
    • 3.2 什么是堡垒机、什么是灰度环境
    • 3.3 程序发布
    • 3.4 常用的自动化运维工具
    • 3.5 Ansible简介

1.IAAS、PAAS、SAAS

在开始了解自动化前,先了解一下什么是IAAS、PAAS、SAAS。

  • IAAS:基础架构即服务
    IAAS是Infrastructure as a service的简称,基础设施即服务。提供基础的硬件设施服务,用户在这个硬件基础上可自行安装操作系统和服务。可以简单理解为是卖硬件的。
  • PAAS:平台及服务
    PaaS是Platform-as-a-Service的简称。PaaS是在基础设施即服务的基础上添加操作系统和环境,用户直接把软件和数据放到上面即可就可使用完成服务。可以简单理解为是卖操作系统环境的。
  • SAAS:软件即服务
    SAAS是Software-as-a-Service的简称.SAAS是在PAAS基础上添加了数据和应用,用户拿来直接使用即可,俗称“一条龙服务”具有代表性的就是—淘宝

2.运维工程师核心职能
  1. 平台架构组件
    负责参与并审核架构设计的合理性和可运维性,搭建运维平台技术架构,通过开源解决方案,以确保产品在发布之后能高效稳定的运行,保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。

  2. 日常运营保障
    负责用运维技术或运维平台确保产品可以高效的发布上线,负责保障产品7*24小时稳定运行,在此期间对出现的各种问题可以快速定位并解决;在日常工作中不断优化系统架构和部署的合理性,以提升系统服务的稳定性。

  3. 性能、效率优化
    用自动化的工具/平台提升软件在研发生命周期中的工程效率。不断优化系统架构,提升部署效率、优化资源利用率支持产品的不断迭代,需要不断的进行架构优化调整。以确保整个产品能够在功能不断丰富和复杂的条件下,同时保持高可用性。

3.Linux运维工程师职能划分

如下图所示,Linux运维工程师在整个IT架构中主要是预上线、上线和后期维护。简单的说就是负责把开发人员开发好的软件,进行上线,并保证服务的稳定、高效运行。

3.1实际应用场景分析
  1. Dev开发环境
    - 使用者:程序员
    - 功能:程序开发软件,测试BUG的环境
    - 管理者:程序员

  2. 测试环境
    - 使用者:QA测试工程师
    - 功能:测试经过Dev环境,测试通过的软件功能
    - 管理者:测试工程师
    说明:测试环境往往有多套(例;Android和IOS系统,不同的系统开发环境不一样测试环境肯定也不一样),测试环境满足测试功能即可,不宜过多。

  3. 发布环境:代码发布机,有些公司叫堡垒机(安全屏障)
    - 使用者:运维
    - 功能:发布代码至生产环境
    - 管理者:运维(有经验的)
    - 发布机:通常为2台 (主备)

  4. 生产环境
    - 使用者:运维,极少数情况开放权限给核心开发人员。
    - 功能:对用户提供公司产品的服务
    - 管理者:只能是运维人员
    - 生产环境服务器数量一般比较多,且应用非常重要,往往需要自动化工具协助部署配置应用。

  5. 灰度环境(生产环境的一部分)
    - 使用者:运维
    - 功能:在全量发布代码前将代码的功能面向少数精准用户发布的环境,可基于主机或用户执行灰度发布
    - 案例:共100台生产服务器,先发布其中的10台服务器,这10台服务器就是灰度服务器
    - 管理者:运维
    - 灰度环境:往往该版本的功能变动较大,为保险起见特意让一部分用户优化体验该功能,待这部分用户使用没有大问题的时候,再全量发布到所有的服务器中。

3.2 什么是堡垒机、什么是灰度环境

堡垒机:
堡垒机就是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事溯源)。堡垒机也叫运维审计系统,它的核心是可控及审计。可控是指权限可控、行为可控。权限可控,比如某个工程师要离职或要转岗了。如果没有一个统一的权限管理入口,将是一场梦魇。行为可控,比如我们需要集中禁用某个危险命令,如果没有一个统一入口,操作的难度可想而知。

灰度环境:
灰度环境,又名金丝雀发布,或者灰度测试,是指在黑与白之间能够平滑过渡的一种发布方式。在其上可以进行A/B testing(测试),即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。

3.3 程序发布
  • 预发布验证:
    新版本的代码先发布到服务器上(跟线上环境配置完全相同,只是未介入到调度器)

  • 程序发布:
    不能导致系统故障或造成系统完全不可用
    不能影响用户体验

  • 灰度发布:

  • 发布路径:
    /webapp/tuangou-1.1
    /webapp/tuangou
    /webapp/tuangou-1.2
    //用户在访问应用的时候访问的是中间这个目录,中间这个目录在链接着当前的版本目录。

  • 发布过程:在调度器上下线一批 主机(标为maintanance状态)—> 关闭服务—>部署新版本的应用程序—>启动服务—>在调度器上启动这一批服务器

  • 自动化灰度发布:脚本、发布平台

3.4 常用的自动化运维工具
  • Ansible:Python开发,中小型应用环境,向前运用最多,最火的。
  • Saltstack:Python开发,执行效率高
  • Puppet:ruby开发,功能强大,配置复杂,重型,适合大型环境
  • Fabric:Python开发
  • Chef:ruby开发,国内应用少
  • Cfengine
  • func
3.5 Ansible简介
  • 创始人,Michael DeHaan(Cobbler与Func的作者)
    2012年3月9号发布了0.0.1版本,2015年10月17日被红帽收购。其作者兼创始人是Michael DeHaan。Michael DeHaan曾经供职于Puppet Labs、RedHat、Michael,在配置管理和架构设计方面有丰富的经验。其在RedHat任职期间主要开发了Cobble,经历了各种系统简化、自动化基础架构操作的失败和痛苦,在尝试了Puppet、Chef、Cfengine、Capistrano、Fabric、Function、Plain SSH等各式工具后,决定自己打造一款能结合众多工具优点的自动化工具,Ansible由此诞生。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号