深爱担当。近期一些公司的上线故障,在容灾能力方面引发了不小的争议。“异地直播”、“集群管理”、“自动化运维”等话题也异常活跃,基本都是在讨论现在的互联网公司。应急响应和IT运维处理能力。也看了一些个人的看法和总结。周末抽空把我们在这方面的一些实践经验分享给大家一起讨论。我希望我写的东西能表达我的诚意。本文内容主要是基于360私有云-HULK云平台的技术积累和挑战,这也是我们运维服务产品化的结果。几年来,我们从几百台服务器、几个机房发展到几万台服务器、几十个机房。在这个大型系统中,我们使用最基本最常见的LNMP架构来讲解前端WEB服务和后端服务。端数据库服务,分享“一前一后”在远程多活、集群管理等方面的实践经验。前端Web服务是一个庞大的技术体系。随着硬件条件的升级,前端Web服务给您带来的体验是我们无法用很多美好的衡量标准来形容的。可以理解为,为了更好的用户体验和高可用性要求,我们的网站服务器部署在多个机房和多个网络运营商。每个网络集群都被划分为项目,基于项目的复杂关联记录在HULK平台中。.1.独占web服务器通过独占,其隔离性和安全性相对较好,但独占会带来资源利用的问题。解决这个问题得益于良好的虚拟化和容器化支持。Web服务器都是虚拟机,资源按需分配,动态伸缩SLA低的服务,我们可能在虚拟化集群中分配2+2,超配率50%-100%,2电信,2网通,辅以多运营商代理解决方案。2、“无状态”web服务器主要是指将web服务器与业务逻辑解耦,将web服务器池做成一个集群,实现特定的功能,通过相关子系统(zookeeper、puppet等)通知web服务器:将业务逻辑存储在Hulk具体的执行计划中。如此大量的无状态、无差异的Web服务器,可以通过负载均衡设备进行动态、快速的切换,真正实现了资源的“云共享”。3、Web项目的域名解析是根据运营商的线路和地区划分的。例如北京联通用户请求北京联通机房集群,华东各省电信用户请求上海电信机房集群。这样,我们就可以实现机房和区域的容灾,假设某个机房或某个区域发生故障,我们调整用户请求,用最近最好的体验策略来保证它是存活的。看到这里,你可能会问,那么多机房,每个机房有那么多小业务集群,而且每个业务集群上的域名都不一样,怎么管理?为了简化这些复杂繁琐的工作,我们将所有的环节串联起来进行管理,通过工具、平台、通用运维的可视化,让整个管理方式更加简单明了。HULK云平台,我更愿意称之为产品化,它是我们的管家,需要更强大更精准。通过鼠标的滑动实现集群管理、负载均衡、上下线、新域名解析、故障预案生成、按预案切换等复杂易错任务,这些功能不仅运维工程师需要,业务开发同事也需要。自己做。大大简化了相关的配置管理工作。集群配置管理在HULK的集群配置管理部分。上面说了,Web服务器集群是项目专属的,每个集群的环境都不一样。举个简单的例子,PHP环境可以支持PHP5.3和PHP5.4、PHP5.5版本等,服务器集群为项目提供运行环境(软件、配置文件、进程),这些可以统称为作为“配置”。因此,集群的“配置”管理关系到项目的快速部署、扩容、升级、回滚等问题。下面是我们的工具栈,实现统一、可控、快速的配置管理。首先要解决的是软件问题。无法直接安装外部软件包。我们有自己的版本要求、安全要求、编译参数要求、安装路径要求。所以我们有自己的软件仓库,涵盖了所有核心应用软件,软件仓库提供的是一个自动化的RPM构建系统。二是Hulk平台与软件仓库的连接。Hulk可以通过API查询软件仓库的信息,如软件包名称、版本等。Hulk对仓库中的这些软件包进行了二级管理,比如同名不同版本的软件。package,几个软件包分成一组,整体安装等等。由于Hulk同时记录了服务器集群的信息,因此两者的融合可以实现任意服务器集群安装任意软件包。“任意服务器集群,任意软件包”是如何实现的?我们使用Hulk作为控制中心,将这些“配置”信息发送到另一个构建在Puppet上的系统。我们的Puppet系统采用Master-Agent架构。Master集群部署在多个机房,可以水平扩展。Master集群中部署了很多自己开发的PuppetModule。不同的Module实现不同的配置逻辑。受控服务器(Agent)距离Master集群最近,进行通信,获取配置,完成配置,上报结果。除了Hulk主动触发的配置任务外,Agent上还有定时的配置同步机制。简单地说,即使一个核心软件被误删除,该软件也会恢复到删除前的状态,无需任何人为干预。另外,配置同步是批量进行的(几百台机器的集群很常见),为此,我们实现了在线灰度,“新配置”会先同步到一台服务器上。测试成功后,就可以选择批量同步了。如果不成功,您可以回滚到旧配置。(本文未完待续,敬请持续关注,更多精彩内容稍后呈现!)-领域技术专家,现任360私有云、公有云项目负责人。孔德良于2009年加入奇虎360,随着360业务的快速发展,他也开始了内部创业之旅。先后负责应用运维、DBA、基础架构等工作,通过积累逐步形成私有云平台。众所周知,运维工作是“脏、苦、累”的。一旦出现问题,运维人员似乎永远是被指责的人。因此,他希望将技术商业化,让业务团队借助云平台的力量,缩短时间。研发周期,降低运维成本,同时让IT技术人员在灵活的运维体验中感受快乐。
