写给前端工程师看的运维和架构

前端童鞋接触后端机会可能大多都在API层面,甚至对session这些东西都有些不是很明白原理,当然大牛除外。那么像Linux、负载均衡、并发、热备、云计算,这些时髦的词语可能更多是听得多,如果公司有运维那么更难插手,那么我根据公司实际使用情况试着回答一些网友的问题。

DevOps-cycle-Extended.png

1、公司实际项目中,服务器选择什么操作系统比较好?
在服务器操作系统市场上有window server、linux、unix 三类操作系统。那我们从实际工作中来看,大多数专业公司(除了.net开发者)采用了linux,因为开源、相关软件丰富; 一些很牛的公司比如IBM使用的unix当然不用说了;还有一些公司或者个人使用了window server,因为操作非常简单,使用远程桌面即可管理。

2、负载均衡。
一般公司都会做,是为了解决访问压力,当业务量大到单台服务器无法满足需要的情况下,使用负载均衡技术把流量导入到多个主机上,达到高并发访问的目的。负载均衡可以使用硬件(例如F5)或者软件(普通服务器+LVS软件)实现。如果访问量比较小很多公司直接使用了nginx转发到多台服务器上简单实现。

3、热备。
和上面负载均衡不同,是为了防止单台服务器宕机,然后准备了一套备用机器,这些机器会在宕机的情况下快速启用,并顶上来。实际工作中,大多数公司会使用阿里云这些云服务商提供,并不会自己来实现,已经是很成熟的技术了。

4、nginx
这个应该大家都知道,为啥还要来说,就是很多LAMP 开发者对apache很熟悉,实际上公司Nginx 用的更多,因为不仅仅作为服务器来使用,更多作为反向代理来使用。 举个例子:Nginx 启动后监听80端口然后对外提供http服务,那么如果系统有nodejs服务为9000,就可以使用 nginx 把业务转发到9000端口,由nodejs提供服务。这样可以实现在系统中多个应用共存,也是公司普遍的做法。

5、主从数据库
我们自己开发的时候,很多都是程序运行和数据库在一台机器上,那么当使用了多台应用服务器的时候,那就把数据库拿出来单独放到一台服务器上。因为这样才能让多台机器上应用程序使用同一个数据库。很多公司单独一台数据库服务器性能不够使用,配置主从数据库服务器来做读写分离,从主机写入数据保证数据一致,从丛机读取数据保证速度,这种优化方案在公司非常普遍,但是具体要看具体应用的读写比。