目录:
什么是Linux运维
- 运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务上的上线与运作的正常
- 在运转的过程中,对他进行维护,集合了网络、系统、数据库、开发、安全、监控于一身的技术
- 运维又包括DBA运维,网站运维,虚拟化运维,监控运维,游戏运维等等
运维的分类
系统运维(SYS):
1. 负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);
2. 负责资产管理,服务器选型、交付和维修,网络建设、LVS负载均衡和SNAT建设
系统运维的工作职责
'''1.IDC数据中心建设'''
# 收集业务需求,预估未来数据中心的发展规模
# 骨干网的分布,数据中心建筑,以及Internet接入
# 网络防御能力、扩容能力、空间预留、外接专线能力、现场服务支撑能力等方面评估选型数据中心
'''2.网络建设 '''
# 设计及规划生产网络架构
# 包括:数据中心网络架构、传输网架构、CDN网络架构等,以及网络调优等日常运维工作。
'''3.LVS 负载均衡 '''
# LVS 是整个站点架构中的流量入口,根据网络规模和业务需求,构建负载均衡集群。
# 完成网络与业务服务器的衔接,提供高性能、高可用的负载调度能力,以及统一的网络层防能力。
'''4.CDN 规划和建设 '''
# CDN 工作划分为第三方和自建两部分
# 根据业务发展趋势,规划CDN新节点建设布局
# 完善CDN业务及监控,保障CDN 系统稳定、高效运行
# 分析业务加速频道的文件特性和数量,制定最优的加速策略和资源匹配
# 负责用户劫持等CDN日常故障排查工作
'''5.服务器选型、交付和维护 '''
# 负责服务器的测试选型,包含服务器整机、部件的基础性测试和业务测试,降低整机功率,提升机架部署密度等
'''6.OS、内核选型和 OS 相关维护工作 '''
# 负责整体平台的 OS 选型、定制和内核优化,以及 Patch 的更新和内部版本发布
# 建立基础的YUM包管理和分发中心,提供常用包版本库
# 跟进日常各类 OS 相关故障
# 针对不同的业务类型,提供定向的优化支持
'''7.资产管理 CMDB '''
# 记录和管理运维相关的基础物理信息,包括: 数据中心、网络、机柜、服务器、ACL、IP等各种资源信息
# 制定有效的流程,确保信息的准确性;
# 开放API接口,为自动化运维提供数据支持
'''8.基础服务建设 '''
# 业务对 DNS、NTP、SYSLOG 等基础服务的依赖非常高,需要设计高可用架构避免单点,提供稳定的基础服务
应用运维(SRE):
- 应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作
- 工作职责如下:设计评审、服务管理、资源管理、例行检查、预案管理、数据备份。
- 业务运维工作细则
1)监控线上的服务质量
2)响应异常/处理突发故障
3)在线发布/升级产品
4)和相应产品线的研发和测试协调处理产品问题
应用运维的工作职责
'''1.设计评审 '''
# 在产品研发阶段,参与产品设计评审,从运维的角度提出评审意见,使服务满足运维准入的高可用要求。
'''2.服务管理 '''
# 负责制定线上业务升级变更及回滚方案,并进行变更实施
# 能够发现服务上的缺陷,及时通报并推进解决
# 完善监控内容,提高报警准确度
# 在线上服务出现故障时,第一时间响应
'''3.资源管理 '''
# 对各服务的服务器资产进行管理,梳理服务器资源状况、数据中心分布情况、网络专线及带宽情况
# 能够合理使用服务器资源,根据不同服务的需求,分配不同配置的服务器,确保服务器资源的充分利用
'''4.例行检查 '''
# 根据制定的服务排查点,对服务进行定期检查
# 对排查过程中发现的问题,及时进行追查,排除可能存在的隐患
'''5.预案管理 '''
确定服务所需的各项监控、系统指标的阈值或临界点,以及出现该情况后的处理预案。
建立和更新服务预案文档,并根据日常故障情况不断补充完善,提高预案完备性。
'''6.数据备份 '''
# 制定数据备份策略,按规范进行数据备份工作。
# 保证数据备份的可用性和完整性,定期开展数据恢复性测试。
运维开发
1. 是给应用运维开发运维工具和运维平台的
2. 主要包含的平台:工单系统、CMDB、监控系统、ELK日志系统、CI/CD、LDAP、FAQ、培训系统、OpenStack平台
数据库运维(DBA):
1. 数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,
2. 对数据库进行变更、监控、备份、高可用设计等工作,详细的工作内容如下
3. 设计评审、容量规划、数据备份与灾备、数据库监控、数据库安全、数据库高可用和性能优化
4. 自动化系统建设、运维研发、运维平台、监控系统、自动化部署系统
运维安全(SEC):
1. 运维安全负责网络、系统和业务等方面的安全加固工作
2. 进行常规的安全扫描、测试,进行安全工具和系统研发以及安全事件应急处理
3. 工作内容如下:安全制度建立、安全培训、风险评估、安全建设、安全合规、应急响应。
基础运维的常见工作
- 服务监控技术:
包括监控平台的研发、应用,服务监控准确性、实时性、全面性的保障 - 服务故障管理:
包括服务的故障预案设计,预案的自动化执行,故障的总结并反馈到产品/系统的设计层面进行优化以提高产品的稳定性 - 服务容量管理:
测量服务的容量,规划服务的机房建设,扩容、迁移等工作 - 服务性能优化:
从各个方向,包括网络优化、操作系统优化、应用优化、客户端优化等,提高服务的性能和响应速度,改善用户体验 - 服务全局流量调度:
接入服务的流量,根据容量和服务状态在各个机房间分配流量 - 服务安全保障:
包括服务的访问安全、防、权限控制等 - 服务自动发布部署:
部署平台/工具的研发,及平台/工具的使用,做到安全、高效的发布服务 - 服务集群管理:
包括服务的服务器管理、大规模集群管理等 - 服务成本优化:
尽可能降低服务运行使用的资源,降低服务运行成本 - 数据库管理(DBA):
通过设计、开发和管理高性能数据库集群,使数据库服务更稳定、更高效、更易于管理。 - 平台化的开发:
类docker等平台的开发管理,及服务接入技术
Linux运维工作发展过程
运维的发展
- 手工管理阶段
- 工具批量操作阶段
- 平台管理阶段
- 系统自调度阶段
Linux运维日常使用软件和技能
运维工程师使用的运维平台和工具
- Web服务器:apache、tomcat、nginx
- 监控:prometheus、zabbix、openfalcon、nagios、cacti
- 自动部署:ansible、saltstack、puttet
- 负载均衡:keepalive、lvs、haproxy、nginx
- 备份工具:rsync、wget
- 问题追查:netstat、top、tcpdump、last
- 容器:docker、k8s、docker-compose、swarm
- 安全:kerberos、selinux、acl、iptables
- 虚拟化:openstack、xen、kvm
运维工程师要掌握的技能
- 扎实的计算机基础知识,包括计算机系统架构,操作系统,网络技术等;
- 通用应用方面需要了解操作系统、网络、安全,存储,CDN,DB等,知道其相关原理;
- 编程能力,小到运维工具的开发大到大型运维系统/平台的开发都需要有良好的编程能力;
- 数据分析能力:能够整理、分析系统运行的各项数据,从中发现问题及找到解决方向;
- 丰富的系统知识,包括系统工具、典型系统架构、常见的平台选型等;