为什么需要集群架构
集群架构都是为实现项目的最终呈现而服务
什么是架构
多个不同角色共同维护一个项目的组织(一套服务器,各个服务器有不同的作用),被称之为架构
什么是集群
多个相同角色做相同的事情被称之为集群。(多台服务器有着相同的作用,这些服务器的集合,为解决某个特定问题建立的单个系统,被称之为集群)
什么是负载均衡
智能分配工作量(可以是公平分配,也可以是权重分配)、检查各角色交付的工作质量(数据包的修改) ,以及转发需求。(智能调度,保证服务不中断),通常会配置两台负载均衡,一台备用。当第一台挂掉以后,立刻衔接第二台(高可用技术)。
网站架构模型的不同视角
用户视角
用户打开浏览器→输入域名 →由浏览器内部的dns域名解析后获得ip地址和端口→通过互联网前往指定ip地址→首先会由目的地的防火墙进行识别检测,成功就放行(失败就拒绝)→放行后会由负载均衡根据请求调用服务端的web集群→由集群根据用户请求调用文字信息(储存在数据库mysql,磁盘储存)和图片或视频信息(单独的存储服务器),为了缓解数据库的读取压力,一般还会有一个缓存服务器(使用redis来做,是基于内存储存),将数据库的信息备份到缓存服务器,这样集群调用数据的时候就可以先从缓存服务器获取数据,如果没有再从数据库调用。
各个岗位的需要学习的重点
- dns
bind - 防火墙
iptables 重点
firewalld 仅作了解 - 负载均衡
lvs 基于4层传输层,只认端口,只能做端口大的负载
nginxproxy 基于7层应用层,工作在应用层 - web集群
LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
nginx+php
nginx+python
nginx+tomcat - redis
会话保持 - 数据库
mysql - 存储
nfs
ceph
维护视角
首先需要一个能连接内部私网的服务器,连接需要用到跳板机/VPN,跳板机会用到SSH来模拟,还需要搭载时间同步服务(chrony)
还需要一个监控内部服务运行状态的服务器(事前预警,事后追溯)。
开发视角
写代码(shell,python),然后将代码发布到gitlab代码托管平台(服务器),由jenkins编译平台进行抓取编译打包,然后将代码发送至sonarqube质量检测平台(检测代码),合格后由Jenkins发布(发布模式分为shell,ansible,saltsatck)至集群节点。
运行环境都有哪些
就是服务器的搭建,要么是物理服务器(实体),要么是虚拟运行环境。
虚拟运行环境,主要由 VMware ,kvm,docker,kubemetes(k8s)。
elk日志收集平台
服务器运行会产生日志信息。因为服务器众多,所以需要特定的平台进行管理。
- filebeat 收集
- logstach 清洗处理
- kafka 消息队列
- logstach 读取队列的数据,匀速交给
- elasticSearch 储存
- kibana 展示、探索、分析