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不间断地为用户提供服务. ...
随机推荐
- 初学TCP的一些感想
因为工作原因,想学习一下编程,最近在学习Qt相关的知识,学到了TCP/IP这里,跟着视频做了一个简单的C/S的小例程.例程中没有关于连接状态的判断.经过修改,可是没能达到我要的效果,在百度上进行搜索, ...
- mongodb定时备份
1. https://www.jianshu.com/p/a9352e28e2d6 (未测试) 通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操 ...
- STM32定时器(TIM1、TIM2、TIM3、TIM4、TIM5、TIM8)高级定时器+普通定时器,配置使用
2.1 时钟来源 计数器时钟可以由下列时钟源提供: ·内部时钟(CK_INT) ·外部时钟模式1:外部输入脚(TIx) ·外部时钟模式2:外部触发输入(ETR) ·内部触发输入(ITRx):使用 ...
- 浅谈js防抖和节流
防抖和节流是处理高频触发最常见的优化方式,对性能提升有很大的帮助. 防抖:将多次的高频操作优化为只在最后一次执行,应用场景如:输入框,只需在最后一次输入进行校验即可. 节流:保证每隔一段时间只执行一次 ...
- nginx+lua+openresty+kafka相关问题汇总
这里使用的是kafka插件是doujiang大佬的https://github.com/doujiang24/lua-resty-kafka,版本为v0.2.0. 应用场景 在nginx转发中,记录非 ...
- Gym 101490K Safe Racing (dp转换, 超超超级详细,包你看懂)
题意:给你一个长为L的圆形跑道,让你放置警示牌,相邻两个警示牌相隔距离不能超过S,让你求有多少种方案数放置.数据L,S都是1e6. 来个例子:L = 13, S = 5.一个圈表示长度为1. 思路:因 ...
- maui BlazorWebView+本地html (vue、uniapp等都可以) 接入微信sdk 开发 Android app
首先添加微信sdk的绑定库 nuget 包:Chi.MauiBinding.Android.WeChat 项目地址:https://github.com/realZhangChi/MauiBindin ...
- 详解ResNet 网络,如何让网络变得更“深”了
摘要:残差网络(ResNet)的提出是为了解决深度神经网络的"退化"(优化)问题.ResNet 通过设计残差块结构,调整模型结构,让更深的模型能够有效训练更训练. 本文分享自华为云 ...
- 利用 Rainbond 云原生平台简化 Kubernetes 业务问题排查
Kubernetes 已经成为了云原生时代基础设施的事实标准,越来越多的应用系统在 Kubernetes 环境中运行.Kubernetes 已经依靠其强大的自动化运维能力解决了业务系统的大多数运行维护 ...
- 设计模式(三十)----综合应用-自定义Spring框架-自定义Spring IOC-定义bean、注册表相关类
现要对下面的配置文件进行解析,并自定义Spring框架的IOC对涉及到的对象进行管理. <?xml version="1.0" encoding="UTF-8&qu ...