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

本文介绍了运维自动化的发展历程,包括IAAS、PAAS和SAAS的概念,详细阐述了运维工程师的核心职能,如平台架构组件、日常运营保障和性能优化。重点讲解了Linux运维工程师的职能,特别是堡垒机和灰度环境的应用。程序发布的流程,包括预发布验证和灰度发布,以及自动化运维工具Ansible的简介。文章还探讨了如何通过自动化工具提升运维效率和系统稳定性。
摘要由CSDN通过智能技术生成

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由此诞生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值