Web Scale IT 与 6 种 DevOps 工具

新年伊始,在总结过去一年 IT 行业变化和发展的同时,很多企业更关注将来一年甚至几年的行业趋势。Gartner 于 2014 年发表了文章 Gartner Says By 2017 Web-Scale IT Will Be an Architectural Approach Found Operating in 50 Percent of Global Enterprises 表示:html

截止至 2017 年,全球 50% 的企业将使用 Web Scale IT 架构。java

在 2016 年年初,咱们回顾 Gartner 对 2015 年所作的预测,来讲说 Web Scale 在中国 IT 界的发展与变化。web

图为 Gartner 对 2015 年 10 大 IT 趋势的预测,其中就包括了:Web Scale IT。这个词条被用来描述将来将有更多的企业以亚马逊、谷歌、Facebook 等互联网科技巨头的方式去思考、行动和打造应用程序和基础设施。数据库

做为有效的 Web Scale IT 方法的关键组成部分,广泛被接受的要素包括开放硬件方法、新型软件体系架构、敏捷过程、从 DevOps 入手的协同一致的公司、以及风险包容文化。服务器

##什么是 Web Scale IT?网络

那究竟什么是 Web Scale IT 呢?是又一次的 DevOps 文化运动?仍是存在切实可行的工具和方法?架构

其实, Web Scale IT 是一种趋势,一种解决方案,也是一个机会。运维

咱们能够经过 Web Scale IT 的 5 个特性来更为清楚地认识 Web Scale IT。 如下信息摘自:关于 Web Scale IT 的一些观点,阮志敏分布式

  • 拥有成千上万台机器的计算能力
  • 只需少数工程师就能够运维大量机器
  • 应用能够承载很是高的用户访问量
  • 即便有些机器出现故障,应用仍然工做正常
  • 应用天天能够升级部署应用好几回

传统企业渴望拥有和互联网公司同样的 IT 能力去进行业务创新,同时提升 IT 运营效率、下降费用。此概念可以让他们减小 IT 服务的营销时间,下降基础架构成本,同时提升灵活度,加强他们促进 IT 文化变革的能力,并能提升服务质量。Web-Scale IT 和国内的"去IOE"运动有着相同的逻辑,都是互联网企业影响、颠覆传统IT解决方案的一种趋势。工具

##云计算是 Web Scale IT 的基础

Web Scale IT 但愿企业拥有拥有很强的计算能力,下降基础架构成本。而从没有互联网到有互联网,再到云计算,事实上是一个解放劳动力的过程。能够这么理解,云计算的出现和发展是 Web Scale IT 的基础。

若是假想成盖房子,传统 IT 至关于在拥有的土地上根据流程自行设计、施工,再找人装修和维修。有不少现有的经验,成熟的方案能够参考。而云计算一出来,就至关于直接买到了毛坯房,只须要装修就行了,还附带物业管理。这是一个分工更加细化的时代,Laas 让 IT 能力变成廉价可靠的资源,只要按需选择、付费便可。而在这个基础上,Web Scale IT 就变的可能,中小型创业公司也能够将精力更多的投入到创新和运营上去。

目前不少 IT 公司都在作云,BAT、IBM,包括 HP 和 Dell 也都要开始作云,还有以 UCloud 为表明的第三方专一、中立的云公司,在云计算领域可谓风头正盛。阿里云从 2012 年初开始大规模推广和密集的运营活动,目前从市场份额上讲,是当仁不让的国内一哥。从去年 4 月到 5 月仅一个月的时间,从阿里云直接链接到国际互联网的 Web 服务器数量就增加了 8 千多台。

而腾讯云凭借自身强大的游戏运营能力,凭借渠道的力量,在游戏行业、 O2O 领域及一些正在向互联网转型的传统行业中创建了良好的知名度。UCloud 近期得到国内 Laas 领域最大投资千万美圆,在手游领域混的风生水起。

在各个领域,都有愈来愈多的互联网企业和向互联网转型的传统行业开始使用云服务,包括游戏、在线商务、在线教育、在线医疗、大数据分析、互联网金融,甚至传统的化工、生物行业等等。

##DevOps 产品催化 Web Scale IT

Web Scale IT 要求下降基础架构成本,愈来愈多的 DevOps 工具应运而生。有许多工具用于基础设施自动化,使用哪一个工具决定于体系结构和基础设施的需求。下面咱们列出了一些优秀的 DevOps 产品,包括容器平台、配置管理工具、服务平台、监控工具等。

1.容器平台 Docker

Docker 是一个自动化工具之上的 Linux容器,容器已经成为 DevOps 中的新热点技术。特别是 Docker 公司,已经成为了提供容器技术服务的领头公司。使用 Docker 平台,应用程序及其依赖能够被打包进一个单元,也就是所谓的镜像。随后,能够运行这个镜像的实例,实现快速的测试、部署。Docker 的兴起和普及是由于它能提供一种一致性机制来构建、部署和扩展应用组件并隔离系统资源。有了Docker,开发者们就能够从同一个主机运行多个开发环境(每一个开发环境有独特的软件、操做系统和配置),在新的或不一样的服务器上测试项目,以及让任何人均可以在设置如出一辙的状况下处理同一项目,不管本地主机环境怎样。

有人说虚拟机也能实现多种环境,但不得不说,和传统虚拟机相比,Docker 具备启动速度快,资源利用率高,性能开销小的优点。虚拟机的 Guest OS 和 Hypervisor 层在 Docker 中被 Docker Engine 层所替代,Docker 有着比虚拟机更少的抽象层。因为 Docker 不须要经过 Hypervisor 层实现硬件资源虚拟化,运行在 Docker 容器上的程序直接使用实际物理机的硬件资源。所以在 CPU、内存利用率上 Docker 略胜一筹。Docker 利用的是宿主机的内核,而不须要 Guest OS,所以,当新建一个容器时,Docker 不须要和虚拟机同样从新加载一个操做系统内核,所以新建一个 Docker 容器只须要几秒钟。

“生产环境上就出问题,明明本地运行的很好!” 这是一句听过不少遍的话。容器使应用程序的跨平台可移植性比以往任什么时候候都更高,它解决了开发环境与生产环境差别的老问题。也许相对于灵活的部署,迭代和引用这些优势来讲,Docker 相对复杂的网络配置,container 之间的通讯,还是须要攻破的难题,但随着容器技术的快速发展,对于开发和运维人员来讲,体现着「化繁为简,All in One」理念的 Docker 出现绝对是一件好事。

2.配置管理工具 Chef & Puppet

注重用户体验和工做效率的开发和运营团队都有着这样的目标吧?编写简洁的、可维护的和高性能的代码,尽量在不宕机的状况下部署代码。在 Docker 这样的容器出现以前,理论上最好的方法是使用配置管理工具来自动化服务器基础设施以及部署工做流,这就要提到 Chef、Puppet、Salt 等等。本文先简单介绍一下一样基于 Ruby 开发的配置管理工具 Chef 和 Puppet。

使用配置管理工具,须要编写代码来描述但愿如何安装和配置系统的一些组件。在服务器上执行代码的时候,它应该在理想状态下结束运行。使用这种工具的好处是对要配置的对象提供了跨平台的抽象,好比抽象掉一些各类不一样的操做系统在处理相似包管理这样的功能时所带来的不一样,让用户大部分时间只需跟这些抽象的资源打交道,而不用关心具体实现。

举个例子,若是你想安装 libxml2,能够用 Chef 写一个代码块,抽象掉不一样的发行版之间的差别。从而在 libxml2 包存在的任何地方执行这个相同的 Chef 代码时,它都会正常运行,不管是 Ubuntu、CentOS 或者 Fedora。

package “libxml2” do
action :install
done

但也有一些开发者认为跟使用容器比起来,使用配置管理工具复杂且容易出错。Chef 有一种集成方案,容许使用 Chef cookbook 和 recipe 构建 Docker 镜像以及管理如何把容器部署到服务器上。在遇到不能很好地与容器兼容的较为古老的软件时,管理和自动安装它们的惟一方法是使用配置管理。

3.服务平台 Stackshare

StackShare 开发者服务平台是一个致力于开发人员所使用的开发工具和开发服务,发现和分享优质资源的网站,帮助开发者使用最方便的开发工具和最便捷的服务。该网站成立于2013年,以前只是做为一个辅助项目,后来随着开发者和工程师们的不断分享,聚集了大量的优质工具。

Stackshare 对 Devops 有本身的见解,认为 DevOps 主要分两块:一块是监控,经过监控方案快速发现问题,明确究竟是 Dev 的责任,仍是 Ops 的责任,而且迅速作出反应;另外一块是 Build Test Deploy,就是快速的测试、部署等等。

工欲善其事,必先利其器。使用优秀的开发工具和服务,能极大地帮助团队提升效率,尤为是资源和资金也许并不那么充足的中小型创业公司。

4.监控产品 Cloud Insight

Web Scale 要求企业拥有成千上万台机器的计算能力,这就须要保证机器数量和复杂度,否则难以知足如今的需求。在机器数量增多,复杂度变高的状况下,须要少数工程师来运维大量机器,可以对大规模集群和云平台进行监控产品应运而生。而国内大多数现有的监控产品没法批量安装探针,不能对数据进行聚合,Cloud Insight 却可以作到这一点。

这是 Cloud Insight 对平台监控的拓扑图,从图中能够看到哪部分服务器负载太重,也能够锁定实时性能不佳的服务器,进行重点关注,查看详细性能。

Cloud Insight 采用 StatsD 的采集技术,对接 MySQL、Redis、MongoDB,以及 CentOS、RedHat 操做系统,利用 Hbase 存储和 OpenTSDB 的数据聚合、切片等功能,使数据最终流向 Cloud Insight 进行展示,来监控日益复杂的基础设施架构。

5.版本工具 GitLab

Gitlab 是一个利用 RoR 开发的开源代码托管平台,能够经过 Web 界面访问公开或私人项目,能令人们能进行及时的代码协做,而且其代码日志是在本地的,能够随时查看。由于对高可用性的重视,GitLab 提供了一个稳定的设置,即便在一个没有特别措施的服务器上也能应用。而因为分布式的自然特性,即便 GitLab 不能使用,Git 使用者也仍然可以提交代码。经常使用的源码的版本工具还有 SVN。

拥有界面友好,对工程权限管理方便,有 issues 功能并支持 wiki 等优势的 GitLab,除了显著地 social 元素,该有的 CI 整合和 REST API 一个也不缺。也可由 merge request 模式来达到 code review。功能较为全面,并且各个平台都有对应的支持,不少团队已经逐渐由 SVN 移到 GitLab 上来。

6.测试工具 JMeter

Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。相比其余 HTTP 测试工具, JMeter 最主要的特色在于扩展性强。JMeter 是免费的,开放源码软件,拥有简单直观的图形用户界面,独立于平台,也可用于执行应用程序自动化测试和功能测试。

项目上线以后可能会面对巨大的吞吐量,在这样的环境下可能出现各类各样的性能问题,而这都是低吞吐量时没法发现的。所以,在上线以前作好压力测试是一件十分必要的事。

JMeter 在性能测试工具中较为流行,同类产品有 LoadRunner, 部分开发者认为 JMeter 的结果分析没有 LoadRunner 详细,但它的优势也有不少:

  • 开源。
  • 小巧,不须要安装,但须要 JDK 环境,由于它是使用 java 开发的工具。
  • 功能全面,JMeter 设计之初只是一个简单的 web 性能测试工具,但通过不段的更新扩展,如今能够完成数据库、FTP、LDAP、WebService 等方面的测试。

##总结

向 Web-scale IT 的转移意味着与 IT 界传统方式的彻底背离,这将是一个巨大的转变。Web-scale IT 要求 IT 专业人员用比之前更快的速度部署并有效管理大型基础架构。随着商用硬件、开源软件、本土化供应和管理软件的发展,规模化管理基础架构变得愈加困难,基础架构亦变得愈加复杂。如何才可以在 Web Scale IT 大潮中分一杯羹?

目前技术的资源都在相似 Facebook、Google 这样的大型互联网公司,相对来讲传统企业,是比较落后的。但好在,愈来愈多的开源技术和产品在试图帮助你们解决这些问题。根据体系结构和基础设施的需求,借力于云平台和其余 DevOps 工具,将帮助企业紧跟变革的步伐,取得更快的发展。

Cloud Insight 集监控、管理、计算、协做、可视化于一身,帮助全部 IT 公司,减小在系统监控上的人力和时间成本投入,让运维工做更加高效、简单。本文出自 OneAPM 工程师,想阅读更多技术文章,请访问 OneAPM 官方技术博客 本文转自 OneAPM 官方博客

相关文章
相关标签/搜索