首页 > 系统相关 >Linux运维实战项⽬进阶

Linux运维实战项⽬进阶

时间:2023-05-07 21:23:47浏览次数:38  
标签:缓存 架构 进阶 运维 备份 业务 上线 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,服务器
From: https://www.cnblogs.com/sre-chan/p/17380127.html

相关文章

  • Linux知识点
    LinuxLinux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。./当前目录../上一级目录Linux主要目录速查表/根目录,一般根目录下只存放目录,在linux下有且只有一个根目录,所有的东西都是从这里开始。在终端里输入/home,其实是在告诉电脑,先从/(根目录)开始,再进入到hom......
  • linux 中查看各个子目录占用磁盘的大小
     001、[root@PC1test]#lsdir1dir2dir3[root@PC1test]#du-h##查看所有子目录占用磁盘的大小100M./dir1300M./dir230M./dir3430M. ......
  • 挂载NTFS分区,离线安装NTFS-3G(Linux挂载NTFS格式磁盘的方法)
    挂载NTFS分区,离线安装NTFS-3G(Linux挂载NTFS格式磁盘的方法)本文档环境为centos7.9版本目录挂载NTFS分区,离线安装NTFS-3G(Linux挂载NTFS格式磁盘的方法)一、NTFS-3G说明二、在线安装(有网络环境)三、离线安装(无网络环境)1单独下载软件包(gcc、ntfs-3g)2将下载的软件包传输目标虚拟机(......
  • linux下安装es+kibana
    1、下载安装包##下载es安装包##wgethttps://repo.huaweicloud.com/elasticsearch/7.9.3/elasticsearch-7.9.3-linux-x86_64.tar.gz##下载kibana安装包##wgethttps://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-linux-x86_64.tar.gz2、安装elasticsearch解压......
  • (第26章)LinuxC本质中链表、二叉树和哈希表
    文章目录一、单链表的结构决定只能出栈,入栈1.链表的结构2.链表与数组的区别3.单链表所有基本操作代码(1)链表的插入(2)链表的查找(3)链表的删除(3)遍历整个链表(4)销毁整个链表4.习题5.C++NULL指针二、双向链表结构决定可以出队和入队1.在上面的单项链表上改改,得到双向链表2.改进双向链表:新增......
  • Java 进阶 - Apache BeanUtils
    介绍BeanUtils是ApacheCommons的组件,它们源自JavaAPI并提供Java语言的组件体系结构。JavaBeanUtils设计模式使用实用程序类,这些实用程序类有助于获取和设置Java类的属性值,以便检索和定义Bean属性。常用方法//根据指定的Map填充指定JavaBeans属性publicst......
  • linux挂载的ntfs格式硬盘无法使用回收站
    linux挂载的ntfs格式硬盘无法使用回收站 解决办法:新建回收站文件,文件名为Trash-XXX.比如Trash-1000这里的1000就是你的$UID.sudomkdir/.Trash-1000sudochownuser:user/.Trash-1000 挂载ntfs硬盘时,指定好UID,比如: UUID=XXXXXXXXXXXXX/mnt/Entf......
  • linux下安装kafka
    目录1.下载安装包2.安装java环境(已安装跳过该步骤)3.安装scala环境(已安装跳过该步骤)4.安装并且启动kafka5.使用连接工具测试kafka是否启动成功1.下载安装包##scala安装包##wget https://downloads.lightbend.com/scala/2.12.11/scala-2.12.11.tgz##kafka安装包(kafka3.0.0已......
  • Grafana系列---【linux离线部署Grafana】
    linux离线部署Grafana1.下载和解压缩Grafana从https://grafana.com/grafana/download/下载适合您系统的Grafana压缩包。将下载的文件解压缩到您选择的目录中。2.启动Grafana./bin/grafana-server3.访问GrafanaWeb界面打开浏览器,访问http://localhost:3000。默认账号密码是......
  • linux GUI-QT6.5移植到Mini2440
    ----------------------------------------------------------------------------------------------------------------------------内核版本:linux5.2.8根文件系统:busybox1.25.0u-boot:2016.05开发板:Mini2440-----------------------------------------------------------------......