你知道亚马逊每天发布多少个版本吗?京东呢?世界顶级的互联网公司是如何做好运维的,笔者抛砖引玉和大家一起探讨。 越来越多的互联网平台诞生,产品不错,研发实力也不错,但是版本更替经常出问题,变更了一次配置引起了多个连锁反应,今天笔者就结合着对ITIL的理解以及互联网运维的经验和趋势来给大家分享一下,如何做好互联网网站的运维。 运维主要做什么:保证开发、测试、生产环境的稳定,保证Qos、保证业务的需求,支持快速发布部署。说起来容易,做起来就很难了,绝大部分公司都做不好,那我们该如何做到呢? 首先,运维应该由如下组成: 基础设施搭建,包括服务器选型、服务器上架、网络架构设计与实施、资产信息入库。 系统运维:负责操作系统定制优化(包含自动化装机系统),运维基础服务搭建,主要包括(DNS、ldap、NTP等) 应用运维:直接面对研发和业务,主要工作包括参与架构设计、应用上线,性能调优、troubleshooting、Qos分析与监控、容量规划等工作,需要深入了解熟悉各种开源软件,深入了解应用,如php和java CDN运维:负责CDN运维,面对应用运维和开发,负责各种内容加速(download、web、video、live),会涉及大集群管理,高并发环境 DBA:负责数据库以及数据缓存层搭建,构建高可用,服务化的关系型或者key/vaule数据库,比较专业 安全团队:负责安全相关工作,主要包括:网络安全、系统安全、应用安全、业务安全(互联网很重要)入侵检测、审计、安全评估、安全预警、漏洞评估和修复、安全培训(部分公司已经将安全独立与运维之外,称之为安全中心) 运维工具平台,主要包括:CMDB、监控报警系统、运维自动化平台等等 接下来,谈谈运维发展的几个阶段以及怎么达到这几个阶段: 第一阶段:运维标准化自动化阶段 从网络、硬件、系统、软件等各个层面指定标准,在标准化的前提下实现自动化,包括自动化装机系统、配置管理工具,自动上线系统、监控报警系统、CMDB,如此同时搭建好各个运维基础工具,将运维工程师从大量没有价值的重复劳动中解脱出来 本阶段一定要维护好CMDB,同时做好事件管理,CMDB是之后进行变更的基础,事件管理是之后快速解决问题的信息来源。 第二阶段:精细化运维 精细化运维:构建统一的日志收集分析平台(实时和离线),加强数据收集,系统日志、应用日志、loadbalance日志等等,定时自动化多维度日志分析,监控Qos,并与监控报警系统结合,实现Qos准实时监控,并对各个服务的容量做分析和设定标准(变化的),当达到警戒值是能快速扩容,如果资源冗余能快速回收。 本阶段一定做好容量管理,变更管理,对应的业务阶段是业务快速发展。 第三阶段:运维服务化和弹性计算 运维服务化:构建资源池,可提供各种通用组件来支持研发,将运维包装成服务,为研发提供各种解决方案,研发需要的话直接通过接口调用就行了,他们不需要关心这个服务的性能、状态。这块可实施的从前端到后端,有LB、中间件(cache层、消息队列、调度系统)、DB(mysql、kvdb)层等等。 弹性计算:利用虚拟化技术,构建服务器资源池,并与监控报警系统联动(如当某个应用平均load达到某个值自动新增服务器,并加入到LB中),实现各个应用的自动扩容,自动故障恢复。 本阶段要考虑讲Devops的概念引入到和开发团队的整合,真正做到快速部署发布,以及高度自动化的集成。 相信以上的工作如果都做好了,你也能像亚马逊和京东一样每天发布成百上千个版本,实现运维的高价值。 ——gary |
|
来自: Bladexu的文库 > 《创业管理》