许多客户对于云络如何管理所有客户的系统,尤其是对我们使用的基础架构很感兴趣。
尽管我们的系统看起来很简单,但事实上,我们在全球多个国家及城市部署了几十台服务器及系统。本博客是系统描述系列讲章的第二篇(-点击回顾第一篇-),这篇博客将重点介绍技术系统是如何联系客户服务器的。
因为我们运行多种系统,且系统所在国家及使用条件均不相同,所以,凡是与客户服务器相关的东西,都必须进行慎重的设计、计划及安全规划。我们的本意当然是尽量避免问题。基于此理念,我们一直谨慎地部署系统和有限使用那些可用的通用工具,避免影响到客户的系统和业务。
Zabbix – 是我们使用的最重要的系统监控工具,也是全球最盛行的大型系统软件监控工具,我们对其进行了深度的定制。该系统管理数以千计的服务器,可以采用标准的及个性化的模版、提示、图形及常用检测等手段进行综合管理。我们对这一监控工具进行了改进,使其能够对MySQL、Java/JMX、HAProxy、Nginx及其它许多服务进行动态监控。因为该工具是全球系统,所以,我们通常使用分布式代理服务器进行数据收集及网站监控,配合使用新的动态信息发送工具如syslog。我们已经将Zabbix集成至主要的Ticket及跟踪系统,以使支持及管理工作更简单。
Syslog/SEC – 我们采用了最佳实践的syslog系统,以只读的方式集中管理所有客户的syslog,保存的日志记录可用于故障排除及安全方面的使用,此外,我们还使用SEC系统进行实时扫描,这样,我们可以收到关键事件的实时告警信息,如OOM 杀手、ssh 黑客攻击、文件系统错误等等。
Yum库 – 我们标准的操作系统是CentOS Linux,该系统很稳定、很安全。部分原因是因为该系统只使用很稳定安全的软件包,有新特点、新功能却未经彻底测试的软件包是不会被采用的。这对于OS 来说是好事。但是,对于像PHP、MySQL、Nginx及其它需要在RedHat/CentOS主版本5年的生命周期内不断进行更新的软件包来说,就是坏事了。我们的挑战就是,寻找和维护各种软件的最新版本在并集中管理在一个便于使用的库中。我们能够为客户提供此类服务,我们运用我们的Repo来自动获取主要软件包的最新版本,以及其他标准稳定版本,我们相信安装软件包比安装基于源代码的应用程序要好的多。为方便使用,我们在中国乃至国外都复制了一个库,方便国内外客户安装。
SVN代码管理 – 我们谨慎地维护SVN系统的每一部分及部件,使其有序排列、可以进行版本跟踪、最重要的是,对其进行备份。我们带有时间控制的自动化系统会频繁地使用SVN, 以便提取最新版的东西,如最好的MySQL 配置。 这些文件也用于个性化软件包,用于云络网络科技的库中。
备份 – 尽管我们为客户使用很多备份系统,但是我们的标准备份系统是Bacula,它是一个大型的开源系统类似于Veritas Net Backup。我们在全球运行这一系统,在亚洲及中国国内运行管理许多存储服务器。 Bacula,对于我们而言,可以方便的进行高级文件选取及任务调度,而对于客户而言,可以允许其进行增量文件备份。它支持全部类型的加密技术,这一点很重要,因为我们不允许任何一个备份在不经过加密的情况下脱离服务器。因为Bacula是集中式管理的系统,所以很方便每天进行跟踪,查看哪些操作是成功的,哪些是失败的。我们还使用多种基于分布式存储的备份,将数据备份推送到云存储空间中,诸如S3及OSS等云存储服务等。自动安装程序 – 我们使用越来越多的自动安装程序进行服务器构建及新软件安装。这些自动安装程序通常是由整合的设计系统进行控制(驱动)的,也就是说,我们的工程师可以设计新系统,并且使用自动安装程序进行繁重的安装工作,而工程师则将精力集中在更重要的事情上。
安全系统 – 尽管我们对核心安全系统提及的很少,但是,我们确实使用分布式的ssh,LDAP,登陆及其它在全亚洲运行的服务网络进行客户系统访问控制。 每一雇员有一个唯一的用户名来访问所有的系统,2013年年初开始,我们将采用双重认证来进一步加强安全。此外,我们的系统已经可以跟踪用户在所有服务器上的详细操作,所以我们能够看到每一条命令及相关的输出项,可以帮助我们更好的跟踪正发生的事件。
构建 – 我们有几个软件构建的平台来收集新版本的的的PHP、及有新的特殊模块的nginx,及其它新型服务(这些新服务是无法打包安装的)。代码编译后,我们将创建RPM包,将其放置在库中,供服务器使用。
测试 – 我们有许多基于虚拟主机构建的测试系统,用于检测多种类型的软件包、配置、环境及安装。可用于培训及其它检测。
新服务/工具:
Config 版本控制 – 我们很高兴可以在2013年提供这一新系统,我们可以使用这一系统对服务器上的所有文件,尤其是config文件进行版本控制。这一功能非常重要,因为我们可以知道是谁修改了什么,发现这些变更,并对任一生产系统的关键组件进行版本控制。当今世界还没有人有此版本控制系统,所以,我们很高兴能够为我们的客户构建这样的一个系统,提供此类服务。
Config数据库 – 这一令人激动的系统除了可以进行版本控制之外,还具有双向同步功能:服务器及服务文件与主配置数据库之间的双向同步。尽管,现在的系统所提供的服务变化万千,要做到双向同步的确很困难,但是,这个系统却具有许多优势,包括完全的config信息推出/抽取、运行中系统的快速更新、快速检测不安全或有问题的configs,简化自动安装等等。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 此文系翻译文档,博客英文原文点此查看)