服务器部署逻辑
一、服务器选择
服务器,也称伺服器,是提供计算服务的设备。现在可选择的服务器主要分为两种:物理服务器和云服务器。
1、物理服务器
物理服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
-
CPU:
计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。平常使用服务器时,最关心的就是CPU核心数和CPU主频。 -
Memory:
内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。内存性能指标主要是容量和频率。 -
Storage:
存储分为本地存储和外挂存储。
硬盘有机械硬盘(HDD)和固态硬盘(SSD)之分。机械硬盘的性能指标主要是:容量、转速、缓存大小。固态硬盘最常应用于数据库服务器,如果不差钱,最好是能把所有的硬盘都换为固态硬盘。
磁盘阵列:多块磁盘组成一个逻辑磁盘,电脑认为这是一块磁盘,数据写入时,数据拆分写在多块硬盘上。这样写和读都是多个硬盘同时执行,大大提升了效率。
外挂存储主要有移动硬盘和OSS。 -
NIC:
服务器上大多会有多个网卡。大多数服务器网卡速率都是十/百/千自适应网卡。有些会使用万兆网卡。
2、云服务器
云计算服务器(又称云服务器或云主机),是云计算服务体系中的一项主机产品。规格参数和性能指标基本同上。
二、操作系统
操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。
-
UNIX操作系统(尤尼斯):是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。
-
windows操作系统:美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,系统版本不断更新升级,Windows采用了图形化模式GUI,比起从前的DOS需要键入指令使用的方式更为人性化。
-Linux操作系统:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。应用广泛主要是因为免费。
1、Linux系统版本
(1)Redhat系列
拥有强大的rpm软件包管理系统,界面更加简洁。Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的RedhatAdvance Server,收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。
(2)Debian系列:
Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。
(3)Gentoo
Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
(4)FreeBSD
注意:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
(5)OpenSUSE
OpenSUSE:在欧洲非常流行的一个Linux,由Novell公司发放,号称是世界上最华丽的操作系统,独家开发的软件管理程序zypper|| yast得到了许多用户的赞美,和ubuntu一样,支持kde和gnome,xface等桌面,桌面特效比较丰富,缺点是KDE虽然华丽多彩,但比较不 稳定。新手用这个也很容易上手。
2、系统安装
(1)初始化系统安装包
根据系统服务器的角色安装不同的包。
(2)初始化系统启动服务
默认开机启动的服务。
3、系统优化
(1)内核优化
主要包含:TCP/IP优化、IO优化(磁盘和网卡)、内存/CPU优化、文件系统优化。
实现最少的投入服务最多的用户。实现大并发。
(2)安全部署
私有服务访问控制(端口和源地址限制)
防火墙(拒绝所有允许个别或允许所有拒绝个别)
selinux(针对文件服务器做保障的,保护文件不被黑客全部下载,但影响大并发,影响服务器性能,因此一般是关掉)
三、部署逻辑
1、业务环境
一般公司会搭建三套环境,内测服务器(开发用,内测)、预发布服务器(测试用,公测)、线上服务器(用户用,上线)。
2、特点
三组服务器业务环节一模一样。保证代码测试方便,环境统一可以直接上线。
3、功能
测试代码
4、部署架构图
(1)测试环境部署(开发用)
(2)预发布系统(测试用)
(3)线上业务服务器部署(生产)