架构期day1-架构介绍
期中架构篇
一、名词介绍
1.项目:针对游戏公司,每一个游戏就是一个项目;针对互联网行业,一个公司就是一个项目;
2.架构:维护一个项目的所有组件组成的一个整体
lnmp:linux、nginx、mysql(mariadb)、php(python)
lnmt:linux、nginx、mysql(mariadb)、tomcat(java)
lamt:linux、apache、mysql(mariadb)、tomcat(java)
lamp:linux、apache、mysql(mariadb)、php(python)
redis、elasticsearch、kafka、hadoop、hbase、zabbix、nfs、git、jenkins
3.集群:多台服务器组成一个集合,实现同样的工作,当一台服务器出现问题,其他的服务器可以正常提供服务
4.负载均衡:将前端的用户请求,平均的分配到后端服务器
5.高可用:当一台服务器不可用时,另一台服务器自动接管工作,保证业务的可用性
二、企业人员架构模型(酒店)
1.导航 ---> 寻找地址
2.保安 ---> 识别身份
3.迎宾 ---> 接待客户
4.服务员 ---> 满足客户一切需求
5.厨师 ---> 提供食物
6.备菜 ---> 提前准备
7.前台 ---> 存放扑克,酒水
8.经理 ---> 管理人员
9.监控 ---> 监控所有人员
10.仓库 ---> 存放物品
11.后勤
1.酒店架构图
2.运维架构图
3.架构中的服务
4.完整期中架构图
5.期末架构图
三、架构访问流程
1.用户访问流程
1.用户在浏览器输入域名
2.浏览器拿着域名取DNS服务器解析
3.DNS服务器将解析后的IP返回给浏览器
4.浏览器根据IP去访问真实服务器
5.访问真实服务器的防火墙
6.防火墙将请求通过内网交换机传给负载均衡
7.负载均衡将请求平均的分配给后端的web服务器
8.web服务器去判断是静态请求还是动态请求
9.如果是静态请求,web服务器会去文件服务器获取数据
10.如果是动态请求,web服务器会通过程序取数据库或者缓存获取数据
11.数据从数据库或者NFS服务器返回给web服务器,web服务器将数据返回给负载均衡,负载均衡通过防火墙将数据传回给浏览器
2.运维访问流程
1.管理人员连接跳板机或者VPN
2.通过跳板机或者VPN连接内网服务器
3.通过zabbix监控查看服务器状态
4.如果有问题则连接相应机器解决问题
5.日常巡检,查看服务器配置
6.管理备份和备份数据
7.日志收集和整理展示
四、架构阶段服务器准备
外网IP | 内网IP | 主机名 |
---|---|---|
10.0.0.3 | VIP | |
10.0.0.4 | 172.16.1.4 | lb4 |
10.0.0.5 | 172.16.1.5 | lb01 |
10.0.0.6 | 172.16.1.6 | lb02 |
10.0.0.7 | 172.16.1.7 | web01 |
10.0.0.8 | 172.16.1.8 | web02 |
10.0.0.9 | 172.16.1.9 | web03 |
10.0.0.31 | 172.16.1.31 | nfs |
10.0.0.41 | 172.16.1.41 | backup |
10.0.0.51 | 172.16.1.51 | db01 |
10.0.0.52 | 172.16.1.52 | db02 |
10.0.0.53 | 172.16.1.53 | db03 |
10.0.0.61 | 172.16.1.61 | m01 |
10.0.0.71 | 172.16.1.71 | zabbix |
作业:
一、画架构图
二、制作多台同一网段不同IP的服务器
1.准备工作:
1>安装全新Centos7系统,配置网卡为eth0及eth1命名模式 200
1>第一块网卡为NAT模式[公网环境],配置的网段为10.0.0.0网段
2>第二块网卡为LAN模式[私网环境],配置的网段为172.16.1.0网段
3>优化安装好的Centos7虚拟机,安装常用软件、关闭防火墙等等
2.优化步骤
#1.配置yum仓库
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
#2.安装基础软件包
yum install net-tools vim tree htop iftop gcc gcc-c++ glibc\
iotop lrzsz sl wget unzip telnet nmap nc psmisc \
dos2unix bash-completion bash-completion-extra sysstat \
rsync nfs-utils httpd-tools -y
#3.关闭防火墙firewalld
systemctl disable firewalld
systemctl stop firewalld
#4.关闭selinux
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
#5.调整单个进程最大能打开文件的数量
echo '* - nofile 65535' >> /etc/security/limits.conf
3.编辑脚本文件:
vim bianliang.sh
hostnamectl set-hostname $1
sed -i "s#100#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "s#100#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth1
systemctl restart network
做此脚本的目的是为了:无需每台都写脚本文件,或手动执行一系列命令
做完之后此模板机(母体)保存快照!
4.保存之后,关闭系统,开始克隆虚拟机;克隆时建议用链接克隆,不占空间,每台克隆机都指定一个名字如10.0.0.5-lb01,保存快照的路径,最好也放在与模板机同一目录,新建一个目录名字也为10.0.0.5-lb01,有分辨性;
PS:后续的测试直接在虚拟机里做,模板机(母体)就不要玷污了,虽然有快照~
5.开始执行脚本文件
sh bianliang.sh web01 7 #通过脚本文件取值指定网卡名为web01,双网卡末尾替换为7
#PS:若有多台,只替换用户名web01与网段7即可,如 sh bianliang.sh backup 41
6、执行完毕可连接Xshell软件,便于管理
新建Xshell会话连接,配置如下:每个Xshell会话连接,都要与对应的虚拟机IP地址与root账号、密码对应好,即可连接成功。