zoukankan      html  css  js  c++  java
  • 服务器部署逻辑

    一、服务器选择

      服务器,也称伺服器,是提供计算服务的设备。现在可选择的服务器主要分为两种:物理服务器和云服务器。

    服务器

    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)线上业务服务器部署(生产)

    线上生产

  • 相关阅读:
    three.js: Control gui and play sound set Volume
    Three.js: 显示自定义的中文字体
    P2P学习(四)P2P编程实现
    WebRTC进阶流媒体服务器开发(六)Mediasoup源码分析之Mediasoup主业务流程
    WebRTC进阶流媒体服务器开发(五)Mediasoup源码分析之Mediasoup启动过程
    WebRTC进阶流媒体服务器开发(四)Mediasoup源码分析之底层库
    WebRTC进阶流媒体服务器开发(三)Mediasoup源码分析之应用层(代码组成、Server.js、Room.js)
    WebRTC进阶流媒体服务器开发(二)Mediasoup环境配置
    WebRTC进阶流媒体服务器开发(一)多人互动架构
    WebRTC学习(十一)实时数据传输网络协议详解
  • 原文地址:https://www.cnblogs.com/xiugeng/p/10093388.html
Copyright © 2011-2022 走看看