第1章 Linux集群基础概念
作为一名系统架构师,虽然这几年的工作偏向于维护和开发容器云项目,如Apache Mesos和Kubernetes,但我们的产品在实施中经常会涉及一些对外项目,比如DSP电子竞价广告和CDN大型广告系统的架构设计、实施及优化。在实施项目方案时,客户基本上都会提出这样一条要求:保证服务的高可用。基于此,我们所有的服务器,包括负载均衡器、文件服务器、Web服务器,还有Redis/MySQL数据库,基本上都是两台或两台以上。而且根据客户的要求及客户自身机房的硬件配置,我们还会选择不同的负载均衡器方案,比如硬件有F5和Citrix NetScaler(现在基本上都是软件级或Docker化的部署方式了),软件方面有LVS、Nginx及HAProxy,云计算服务产品有AWS的ELB和阿里云的SLB,容器云平台Kubernetes和Apache Mesos都有各自的负载均衡方案,可以说相当长的一段时间内,笔者的日常工作之一就是不停地做性能测试,不断地完善和优化整体网站的架构。
在与一些系统管理员进行线下交流活动时,笔者发现不少技术优秀的系统管理员和DevOps由于公司自身环境等原因对Linux集群、负载均衡高可用等相关知识知之甚少,更不用说从事IT其他专业的技术人员了。笔者希望通过本书分享自己的Linux集群项目经验,向大家说明什么是负载均衡、高可用和Linux集群。希望读者在了解这些专业知识后可以走出误区,从真正意义上理解它们。
[1] Apache Mesos 是一个集群管理器,它在官方文档中的定义是一个数据中心操作系统内核,类似于HadoopYARN,它提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行 Hadoop、MPI、Hypertable、Spark;也能基于Marthon框架实现容器的编排及集群管理,特别适合大数据业务处理场景。众所周知,Twitter一直是Apache Mesos的忠实用户,国内采用Apache Mesos的公司也有许多,比如豆瓣、知乎、七牛云、去哪儿、携程,还有中国电信、联通、移动等。