这不年底了吗最近在写年终工作总结汇报,领导让总结下对运维的理解然后给上面不懂技术的大领导看,然后就整理了下面这篇文章。

什么是运维?

运维是指在大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与健康运行

它集合了软硬件网络系统数据库开发安全监控应用架构存储大数据公私有云于一身的技术,通过系统状态监控事件预警业务调度排障升级等手段,使服务处于长期稳定可用的状态。

运维岗位的分类

  • 运维开发:运维平台的设计,开发和实施部署,如:资产管理系统、监控系统、自动发布平台、权限管理系统等等。
  • 应用运维:主要负责线上服务的发布变更、服务健康状况监控、服务的容灾高可用、数据安全备份和做故障排查等工作。
  • 系统运维:系统运维主要和系统及底层网络等打交道,如:硬件、IDC机房、网络拓扑、CDN加速和基础服务的建设等;对所有服务器的资产进行管理,服务器的调研选型、交付上架和后期维护等。
  • 数据库运维:需要对库、表、索引和SQL等制定规范,对数据库进行变更、监控、备份、高可用设计等工作。
  • 安全运维:进行常规的安全扫描、渗透测试、进行安全工具和系统研发以及安全事件应急处理。
  • 桌面运维(IT技术支持):负责员工电脑分配、内部账户管理、企业邮箱、门禁、打印机、财务ERP、服务器(Windows为主)以及员工办公软件问题的技术支持等对内工作。

运维的职责

  • 保证线上发布服务的正常稳定运行。
  • 考虑服务的可扩展性。
  • 从系统的稳定性和可运维性的角度,提出开发需求。
  • 定位系统的问题,甚至可以直接修正bug。
  • 对突然出现的问题做到快速定位响应和处理。

工作中运维应用的场景是什么样的?

普及一下Devops交付环常识

我们把开发交付划分为 需求计划–>编写代码–>构建–>测试–>版本发布–>部署上线–>运维–>状态监控 整个流程作为一个闭环,DevOps的目标是通过建立并不断完善持续交付的流水线。

运维的职责在这其中覆盖了产品从设计发布运行维护变更升级再到产品下线的整个生命周期。

产品发布之前

  • 对产品的业务熟悉;
  • 产品架构设计的合理性评估,包括是否存在单点,是否可容错,是否有强耦合等;
  • 资源评估,包括所需的服务器资源、网络资源以及资源的分布等,同时把相关产品对资源预算申请的合理性,控制服务成本;
  • 资源就位,将申请的服务器及基础环境/域名上线环境准备就位;

产品发布过程中

  • 产品发布阶段运维工程师负责发布的具体工作,将具体的软件和系统/硬件资源整合形成产品并对外提供服务;
  • 对于已上线服务的更新也属于发布范畴,这个时候的产品发布一般要保障在线发布,在不中断对外服务的情况下完成产品的升级;
  • 对于大型复杂的变更也存在中止服务,部署完成后再重新提供服务的情况,但这种情况需要运维工程师通过尽可能的技术手段来避免;

产品运行中的维护

  • 系统监控
    • 对服务运行的状态进行实时的监控,随时发现服务的运行异常和资源消耗情况;
    • 日常服务巡检以评估服务/业务整体运行状况,及时发现服务隐患;
  • 故障处理
    • 对服务出现的任何异常进行及时处理,尽可能避免问题的扩大化甚至中止服务。
    • 这之前运维工程师需要针对各类服务异常,如机房/网络故障、程序bug等问题出现时及时处理达到止损的目的。
  • 容量管理
    • 包括服务规模扩张后的资源评估、扩容、机房迁移、流量调度等规划和具体实施。

产品性能/成本优化

  • 产品对外提供服务最重要的一点是用户体验,用户体验中非常重要的是产品的可用性和响应速度。
  • 而如何用最合理的资源(如机器、带宽等)支持产品提供高可用和高速度的用户体验,这也是运维工程师的重要职责。

产品下线

发展良好的互联网产品将始终在线对外提供服务,但互联网产品快速迭代,也存在相当多孵化的产品最后被淘汰的情况。

这些产品都需要做下线处理,这个过程运维工程师主要做好资源回收的工作,将机器/网络等资源回收后纳入资源池中供其它服务使用。