15分钟从零开始搭建支持10w+用户的生产环境(一)

前言

 

这是一个基于中小型企业或团队的架构设计。linux

 

不考虑大厂。有充分的理由相信,大厂有绝对的实力来搭建一个至关复杂的环境。windows

 

中小型企业或团队是个什么样子?安全

  • 开发团队人员配置不全,部分人员身兼开发过程上下游的数个职责;
  • 没有专职的维护人员,或者维护人员实力不足以彻底掌控生产和开发环境。

这种状况下,过于复杂的生产环境设计,规划、安装、调试、修改会牵扯太多的精力。一旦使用过程当中出现问题,涉及的技术复杂性会带来不可预估的灾难。服务器

 

同时,中小型团队的系统,也有其特殊要求,主要表如今:微信

  1. 生产环境的搭建要简单。这个主要是考虑到人员的技术实力。毕竟要求一个开发人员,能熟练安装各类系统的运行环境,是有点过高了;
  2. 生产环境的扩展性要足够。由于资金缘由,一般前期的服务器资源会比较紧张,而一旦有资金进入,用户量会短期扩大,服务器资源需求也相应扩大,就须要在不改动代码的状况下,经过简单的操做,把生产环境扩展成较大规模的架构;
  3. 须要充分考虑到开发环境与生产环境的衔接。国内大多数开发团队,是采用windows开发,linux布署的模式。这种模式下,开发和生产环境中各个部分的选择尤其重要。最理想的状况,是开发和生产在不一样的操做系统下,同环境同代码,避免代码重编译和移植。

 

本文就是针对这样的要求,进行的设计。架构

 

1、服务器的操做系统

 

Linux。毫无疑问,服务器的操做系统,必须是linux。dom

 

不少人选择windows作为服务器操做系统,是由于windows更熟悉,有图形管理界面,比较容易操做。ssh

 

但实际上,linux作为操做系统的优点更明显:性能

  1. 命令行跟图形界面,仅是输入方式的区别,从功能上没有实质性的区别;命令行更快捷,并且能够造成命令序列,即脚本。学习

    装linux必定不要装GUI,这是一个很是重要的习惯,并且会显得很专业

  2. Linux是开源免费的,或接近免费的,既不存在版权问题,也不存在成本问题。

  3. 在相同硬件的状况下,linux更容易得到更高的性能。更容易的意思是,不须要进行太多的配置和调整。在通常使用下,安装完直接使用,性能就很高了。

 

Linux有不少发行版。一般的选择是Redhat、CentOS、Debian。Redhat是个商业版本,有必定的费用。CentOS、Debian,是免费版本。

中小团队,收费版本就不考虑了。两个免费的版本中,CentOS相对激进点,预装软件会采用比较新的版本,甚至会有测试版本;Debian相对保守,预装的软件都是稳定的版本。另外,CentOS预装的软件比Debian多,因此体积大一些,启动时要加载的东西多一些。

我建议选择用Debian,稳定,占用硬盘小,占用运行内存少。

至于Ubunut、Arch Linux、Mint,学习linux的时候能够好好用,服务器上就算了。若是linux您本身自己不熟悉,就别自找麻烦。

 

至于linux的内核版本,在购买VPS服务器的时候,镜像都是作好的,没多少可选,用最高版本就好。内核的每一个升级,都解决了一些问题,也带来了一些问题。若是不清楚这些问题在哪,或者不知道怎么解决这些问题,就伪装不知道。操做系统的问题,包括BUG,包括遗留的内容,咱们很难遇到的。

 

最后多说一句,服务器操做系统必定选择x64的版本,即64位的版本。在服务器上安装应用软件,也要优先选择x64的版本。如今的主流硬件,PC都是x64的,更别说服务器了。

 

Debian官网:https://www.debian.org

独立的服务器,须要从Debian官网下载ISO进行安装。云服务器,在购买时会先选择安装的镜像。安装的步骤略过,若是须要我能够另开一个贴子写写。

 

有几个简单的安全方面的内容须要注意:

  1. 远程链接服务器时,必定要用ssh。命令是:
ssh username@ip
ssh username@domain

  Windows下没有内建的ssh命令,能够下一个Putty,也要使用ssh模式。

  1. 远程登陆时,尽可能少用root。安装完成后,建一个普通用户,用这个普通用户进行远程登陆。进去后,用su升权或用sudo进行操做。
  2. 上传文件使用ssh通道。命令是:
scp source_file username@ip:~/target_folder/target_file
scp source_file username@domain:~/target_folder/target_file
 Windows下能够装一个WinScp来上传文件。
  1. 当心使用网上建议的任何方式来改动服务器,除非你知道你在作什么。
  2. 在绝大多数状况下,本身开发的应用跑在服务器上时,若是服务器出现了CPU高或内存满的状况,去查代码,而不是怀疑服务器如何如何,也不是去调整服务器的运行参数。

(未完待续)

 


 

微信公众号:老王Plus

扫描二维码,关注我的公众号,能够第一时间获得最新的我的文章和内容推送

本文版权归做者全部,转载请保留此声明和原文连接

相关文章
相关标签/搜索