Linux运维实战项⽬进阶
项⽬描述
项⽬需求
近年来为适应业务发展的需求,世界500强XX企业准备进⾏⼤规模的电⼦商务建设, 同时,希望能通过Linux平台,利⽤开源技术,来实现⼤型互联⽹电⼦商务⽹站架构建设和业务⽀撑,现要求成⽴运维技术保障部门,并邀请你担当运维部门经理,对整个运维部门进⾏部署和规划。当你拿到该项⽬时,需要做以下⼏⽅⾯事情

整体项⽬分为四个⼤阶段:
⼀、前期筹划阶段
⼆、项⽬实施阶段
三、项⽬升级改造阶段
四、项⽬验收和维护阶段
⼀、前期筹划阶段

1、业务需求描述:
本公司计划组建电⼦商务⼦公司,计划三个⽉内进⾏业务上线,上线前,需要完成⼈员配置、服务器选型、基础系统、软件选型、架构⽅案设计初步可实施⽅案等相关准备⼯作。
本公司上线初期,每⽇PV300W,总请求3000W, QPS并发⽇均值300,峰值900,先实现本业务量架构和基础服务。上线1个⽉后,集团会⼤⼒推⼴相关业务,预计三个⽉后将达到每⽇总请PV2500W 总请求数2.5亿 QPS⽇均为2000, QPS峰值6000。
假设单台server能承载200QPS,单台缓存能承载2000QPS,缓存命中率90%,单台数据库能承载5000QPS,每次QPS都包含⼀次数据库查询。
⽬前需要给出两套⽅案,前期⽅案和后期⽅案:
前期⽅案:适应于初期上线阶段,架构容量能保证峰值的2倍,能⽀撑公司正常业务,有基础设施,保证正常上线下流程。
后期⽅案:在前期⽅案基础上,进⾏改造,适⽤于推⼴后阶段,需要保证架构容量能保证峰值的2倍。全部应⽤⽆单点,要求有测试环境,全部系统⽆单点,并要求架构可快速扩容,有监控、管理、备份⽅案和策略,需要降级⽅案,切换⽅案,上线流程⽅案。
⼆、项⽬准备⼯作
1、⼈员分⼯规划

2、硬件和软件选型

3、架构设计

第⼀阶段业务⽀撑架构图

三、项⽬实施阶段
项⽬实施步骤(先画出⾃⼰的架构图) :
1、服务器信息录⼊(IP、内存、 CPU、硬盘)
2、操作系统选型和批量安装(系统安装)
3、系统初始化(关闭不需要的服务、做安全控制、建⽴
对应⽬录、调整系统核⼼参数)
4、根据服务器⾓⾊,安装应⽤(根据选择⾓⾊进⾏服
务)
5、对应⽤进⾏和配置和管理
6、代码上线和服务器启动
7、对应服务确认,确保业务正常(服务可访问,业务正
常)
8、所需监控项⽬添加(系统和应⽤)
9、前端业务规则配置(负载均衡配置后端逻辑)
10、对外提供服务 (对外可提供服务)
要求:
1、全部机房服务器跟时钟服务器进⾏时钟同步
2、全部机房服务器都有⾃⼰的主机名
3、所有主机名可通过机房DNS服务做解析,跳板机可⽆密码登陆机房其他所有机器
4、软件放到/usr/local/软件名⽬录中, /etc/下有软连接配置⽂件,数据都放到/data/⽬录下,如⽹页数据放到/data/webapps/ , ⽇志放到/data/logs/,如/data/logs/nginx.log,所有应⽤尽可能源码安装,没有的可官⽹download
5、图⽚需要放到单独服务器,前端负载均衡做规则分离
6、监控需要监控⽹卡流量、内存、 CPU、磁盘使⽤、load、应⽤软件状态等指标
7、 Mysql每周⽇夜⾥3点做⼀次全量备份,周⼀到周六每天夜⾥2点做⼀次增量备份。本地备份完,放到备份服务器上。确保放成功后,将本地备份删除
8、 Haproxy对于业务实现应⽤层监控,基于http头部信息监控
9、可通过域名访问到对应⽹站和内容
10、要求⽤Puppet管理web server的nginx.conf、php.conf配置⽂件
11、⽤Ansible或者shell脚本批量对线上Web服务可进⾏代码更新,更新策略为⼀台⼀台更新
12、所有服务,都需要开机⾃动启动,并有服务管理脚本
13、 /data/logs⽬录下所有⽇志每天夜⾥1点,以.log结尾的进⾏压缩归档,并以压缩全格式时间命名
四、项⽬升级改造阶段
公司电商⽹站原只有每⽇PV300W,总请求3000W的业务量,随着集团业务要⾼速发展,预计三个⽉后,⽹站数据情况将增长为PV2500W 总请求数2.5亿的中型互联⽹规模⽹站,所需服务器200+此时,⽹站程序需要进⾏⼀次⼤改版, ⽼板也要求你对运维架构进⾏⼀次全⾯改造和业务升级,来满⾜新的业务场景。
要求:
在前期⽅案基础上,进⾏改造,适⽤于推⼴后阶段,需要保证架构容量能保证峰值的2倍。全部应⽤系统⽆单点,要求有测试环境、压测环境,核⼼节点主从切换⽅案,并要求架构可快速扩容,有监控、管理、备份⽅案和策略,需要有降级⽅案,回滚⽅案,上线流程等⽅案。


扩展项⽬架构图:

项⽬要求:
按上述描述,需要完成PV2500W 总请求数2.5亿, QPS峰值6000,的中型互联⽹规模⽹站架构, 假设单台server能承载200QPS,单台缓存能承载2000QPS,缓存命中率90%,单台数据库能承载5000QPS,每次QPS都包含⼀次数据库查询。
1、⽹站需要实现⾸页、列表页、详情页的缓存策略。通过varnish来抗⾼并发请求,缓存策略可⽤内存⽅式。
2、图⽚做分离需要缓存策略,并通过varnish进⾏缓存,缓存策略可⽤硬盘映射⽅式。
3、图⽚需要⽤分布式mogileFS做存储,做2份副本。
4、前端7层负载均衡实现mobile、 admin、 www站分离。
5、设⽴安全区域,安全区域只允许172.16⽹段和跳板机访问。
6、可尝试实现JumpServer跳板机项⽬。
7、搭建Mysql⾼可⽤架构,可选⽤MHA⽅案。
8、监控需要全覆盖⽆死⾓,监控系统、⽹络、应⽤、业务数据。(业务可调⽤LVS或者haproxy⽹络连接数来展⽰)
9、设计压测模型,通过压测⼯具,可评估系统的正常容量、峰值、 95线、等常见业务指标。
10、有⾃动化⽅案管理,可针对不同业务快速进⾏扩容。
11、有完善的备份⽅案,可针对不同配置⽂件、程序代码、数据库等进⾏有效备份。
12、对⽇志进⾏每⽇压缩归档处理,从业务、应⽤、等⾓度进⾏处理。
13、给出上线⽅案、回滚、降级⽅案,并能通过上线⽅案,更新程序代码从2.5更新到2.6版本。 (实现⽆缝切换)
Linux运维实战项⽬进阶的更多相关文章
- LINUX运维实战案例之文件已删除但空间不释放问题的分析与解决办法
1.错误现象 运维的监控系统发来通知,报告一台服务器空间满了,登陆服务器查看,根分区确实没有空间了,如下图所示: 这里首先说明一下服务器的一些删除策略,由于Linux没有回收站功能,我们的线上服务器所 ...
- Linux运维实战之DNS(bind)服务器的安装与配置
转自http://sweetpotato.blog.51cto.com/533893/1598225 上次博文我们讨论了DNS的基础,本次博文我们重点来看看如何配置一台DNS服务器. [本次博文的主要 ...
- Linux运维实战之磁盘分区、格式化及挂载(一)
在网络系统中,磁盘和文件系统管理是两个非常基本.同时也是非常重要的管理任务,特别是文件系统管理,因为它与用户权限和整个网络系统的安全息息相关.本次博文的主题是关于Linux系统中磁盘分区.格式化及挂载 ...
- Linux运维实战——如何利用文件节点删除乱码文件
引言 linux系统中删除文件可以用rm [filename] 命令,然而有些系统或程序自动生成的文件或者文件夹名称却是乱码. 虽然部分文件/文件夹可以通过复制粘贴名字的方式来删除,但是仍然有些文件无 ...
- Linux 运维工程师学习成长路线上要经历哪四个阶段?
之前曾看到一篇新闻,Linux之父建议大家找一份基于Linux和开源环境的工作.今天就来聊一聊我的想法,本人8年Linux运维一线经验,呆过很多互联网公司,从一线运维做到运维架构师一职,也见证了中国运 ...
- Linux运维工程师学习成长路线
不过大家的留言都很精彩,希望大家也可以去留言区逛一逛~~ 好在这不是最后一期送书,之前已经有了好多活动,小编一定继续为大家多送些福利. 希望大家可以一如既往的关注脚本之家,支持爱你们的小编,共同进步! ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- Linux运维项目实战系列
Linux运维项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-项目实战2-实现基于LVS负载均衡集群的电商网站架构 2.1项目实战2.1-nginx 反向 ...
- [ Linux运维学习 ] 路径及实战项目合集
我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构.提升部署效率.优化资源利用率,确保服务可以7*24H不间断地为用户提供服务. ...
随机推荐
- JavaScript 函数的方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JSP环境搭建及入门 和 虚拟路径和虚拟主机
Jsp:是一个动态网页,而不是静态网页 html,css,js,Jquery:是静态网页 动态网页是随着,时间,地点,用户操作,而改变 静态不需要jsp 动态是需要的 BS 可以通过浏览器直接访问浏览 ...
- Windows Oracle 启动OracleDBConsoleorcl 服务时报 Window不能在 本地计算机启动 OracleDBConsoleorcl 。有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码 2 。
一.报错信息如图 二.原因分析: 计算机主机名或IP地址有变化 三.解决方法 依次输入命令: Microsoft Windows [版本 10.0.22000.795](c) Microsoft Co ...
- python打包成exe过程中遇到的问题
先描述下初始状况: python版本为3.7.3,直接在cmd中运行pip安装pyinstaller失败,应该是最开始安装python时没有把目录添加到环境变量中(我很懒).直接在python的安装目 ...
- 盘点10个最受欢迎IntelliJ IDEA主题,必有一款适合你!
选择一款适合自己的主题,这样每天工作才不会累!下面给大家精选了一批优秀的主题,并配上案例截图.如果有你喜欢的,那就赶紧去下载吧! Darcula 这是IntelliJ IDEA默认的暗色主题,适合长时 ...
- Fiddler一些用法学习记录
最近项目中用Fiddler较多,只会之前掌握的一些最简单的用法显得有点不太够.记录一下学习到的新用法. 一.需要mock.打开AutoResponder,Add Rule,填上需要mock的网址,需要 ...
- 17.explicit关键字
c++提供了关键字explicit,禁止通过构造函数进行的隐式转换.声明为explicit的构造函数不能在隐式转换中使用. [explicit注意] ● explicit用于修饰构造函数,防止隐式转化 ...
- mybatis-spring注解MapperScan的原理
很多开发者应该都知道,我们只使用@MapperScan这个注解就可以把我们写的Mybatis的Mapper接口加载到Spring的容器中,不需要对每个Mapper接口加@Mapper这个注解了,加快了 ...
- java方法参数(超详细)
前言 在上一篇文章中,壹哥给大家讲解了方法的定义.调用和返回值,但方法的内容还有很多,比如方法的参数是怎么回事?接下来壹哥会在这篇文章中,继续给大家讲解方法参数相关的知识,这就是我们今天要学习的内容. ...
- STL常用容器用法总结
vector 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begi ...