名词介绍
1.项目:手机的APP,每一个APP就是一个项目,针对互联网行业,一家电商公司就是一个项目。
2.架构:维护一个项目所有组件组成一个整体
lnmp:linux nginx mysql php
lamp:linux Apache MySQL php
lnmt:linux nginx MySQL Tomcat
lamt:linux Apache MySQL Tomcat
除了这些以外,还有很多服务:缓存、ELK、大数据
3.集群:多台服务器组成在一起,实现同样的工作,当一台服务出现问题,其他的可以正常使用
4.负载均衡:将用户的请求,平均分配给后端服务器
5.高可用:当一台服务器不可用,另一台服务器自动接管工作,保证业务可用性
企业人员结构模型(酒店)
开车 ---> 高速,小路,公路 ---> 到达酒店
保安 ---> 识别身份(看穿着,看车) ---> 是否允许进入
迎宾 ---> 接待客户,接客
服务员 ---> 满足客户一切需求(加人)
厨师 ---> 做菜的,提供菜品
备菜 ---> 提前准备好
前台 ---> 存放扑克,酒水,烟
经理 ---> 管理酒店人员
监控 ---> 用来监控人员
仓库 ---> 存放物品
后勤 ---> 后勤通道,买菜通道
酒店迎宾拓扑图
酒店WEB系统架构图
用户访问流程
1.用户输入域名
2.DNS服务器解析域名返回IP给用户
3.发送数据包至交换机
4.交换机转发数据包至路由器
5.路由器转发数据至防火墙
6.防火墙识别用户请求
7.防火墙转发数据至负载均衡
8.负载均衡分发请求至web服务器
9.web服务器判断如果是静态请求,web服务器会去nfs文件服务器获取文件
10.web服务器判断如果是动态请求,web服务器会去缓存读取数据
11.请求缓存服务器没有需要的内容,再请求数据库服务器
管理人员管理内容
1.管理人员连接跳板机
2.通过跳板机连接其他服务器
3.保证服务器稳定,固定时间巡检
4.查看监控内容,查看哪些服务出现问题及时解决(监控主机内容)
5.管理备份服务器,管理备份的数据(备份服务的配置,备份数据文件)
6.日志收集,管理日志
架构访问流程->用户视角
1.用户通过浏览器输入baidu.com->回车
2.浏览器会发生一次跳转,分析URL->然后进行DNS解析->获取真实的公网IP地址
3.用户通过tcp的三次握手发起连接->真实的公网IP
4.连接会通过公网->路由器->交换机->抵达前端的硬件防火墙
5.防火墙根据自身访问规则,进行匹配->如果恶意的连接则拒绝->如果是正常的连接则放行
6.防火墙会将连接转发给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器
7.web服务接收请求后会根据请求进行判断
如果是请求图片或者附件->查找存储服务器存储的静态资源
如果请求的网站上的内容->缓存服务器->如果缓存服务器没有->数据库
数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器
8.数据库返回内容->web服务器->负载均衡->用户
架构访问流程->运维视角
1.用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机,
2.自动化配置管理,节省人力成本,便于后期维护。统一环境,标准化
3.自动化监控服务,监控系统的运行状态,事前预警,事后追溯。
架构如何演变->服务器架构扩展
横向扩展也叫水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作
纵向扩展又叫垂直扩展,扩展一个点的能力支撑更大的请求。如蜘蛛侠逼停火车
架构环境规划
wanip lanip hostname
192.168.15.5 172.16.1.5 lb01
192.168.15.6 172.16.1.6 lb02
192.168.15.7 172.16.1.7 web01
192.168.15.8 172.16.1.8 web02
192.168.15.9 172.16.1.9 web03
192.168.15.31 172.16.1.31 nfs
192.168.15.41 172.16.1.41 backup
192.168.15.51 172.16.1.51 db01
192.168.15.61 172.16.1.61 m01
192.168.15.71 172.16.1.71 zabbix prometheus
集群架构系统基础环境准备
1.安装全新Centos7系统,配置网卡为eth0及eth1命名模式
1.第一块网卡为NAT模式[公网环境],配置的网段为10.0.0.0网段
2.第二块网卡为LAN模式[私网环境],配置的网段为172.16.1.0网段
3.优化安装好的Centos7虚拟机,安装常用软件、关闭防火墙等等
系统优化
rm -f /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install net-tools vim tree htop iftop \
iotop lrzsz sl wget unzip telnet nmap nc psmisc \
dos2unix bash-completion bash-completion-extra sysstat \
rsync nfs-utils httpd-tools -y
systemctl disable firewalld
systemctl stop firewalld
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
echo '* - nofile 65535' >> /etc/security/limits.conf
3.基于优化后的虚拟机进行克隆
1.连接克隆(需要依赖于母体)
2.完整克隆(完完全全的复制一份,占用磁盘空间)
4.对新克隆后的主机进行如下操作:
1.修改主机名 hostnamectl set-hostname backup
2.修改IP地址 sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
3.重启服务器
5.创建xshell标签->测试连接服务器是否成功