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 表示:

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

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

图为 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 官方博客

时间: 2024-11-12 06:44:39

Web Scale IT 与 6 种 DevOps 工具的相关文章

云计算厂商的DevOps工具模型大评估

软件即服务(SaaS)可能是三大云计算业务模式中最引人注目和最具盈利能力的,因为它为客户提供了取代大部分技术支持类型成本的功能,并可直接销售给消费者.但是SaaS的成功并不是一帆风顺的.如果不使用DevOps工具和原则,那么建设和维护SaaS应用程序的任务就将快速成为云计算供应商们的运营噩梦.这些问题的最大来源在于:为部署在云计算环境中的服务实现全生命周期过程的自动化. 云计算要求新的配置策略 在云计算的早期发展阶段,SaaS部署的很多工作都必须通过手工或开发内部自动化软件来完成.对于运营商们来

【DevOps&SRE活动实录】经验+案例,教你如何打造易用DevOps工具链!

6月10日,优维科技与数人云.中生代联合举办了DevOps&SRE超越传统运维之道(北京站).DevOps&SRE上海站将于7月15日举办,敬请期待! 任发科老师在此次活动中分享了<如何打造易用的DevOps工具链>,以下为演讲实录. 任发科 网名常新居士.曾任职于唯品会.会唐网.亚马逊和ThoughtWorks,是QCON,TOP100Summit,TiD优秀讲师,近年主要关注和从事DevOps工具链设计与实现,并长期从事和关注高效研发团队的组件和管理,译作有<DevO

现有的Web打印控制技术分成几种方案

web|web打印|控制 现有的Web打印控制技术分成几种方案 自定义控件完成打印 利用IE自带的WebBrowser控件实现打印 利用第三方控件实现打印以下主要谈前两个方面的内容 一. 自定义控件方式自定义控件方式就是利用VB或VC等工具生成COM组件,用定义好的打印格式来分析打印源文件从而实现打印.只有将生成的组件下载并注册到客户机上,才能实现在客户端的打印.难点主要是定义打印格式.如何来分析打印源文件.现有的比较好的方法是利用XML技术来全面的解决问题,利用XML可以非常容易地定义打印目标

谷歌浏览器有几种开发工具?

  谷歌浏览器有几种开发工具?          Google Chrome开发者工具我想是Web编程的程序员都不会不知道,以前小编习惯使用火狐的开发者工具,因为觉得fireBug不错;但是后边就觉得不好用了,还经常卡死,网上流传firebug一个大师跳槽到了谷歌,所以就改用谷歌了,下边详细介绍一下Google Chrome开发者工具的使用 只要安装了谷歌浏览器,就可以使用Google Chrome开发者工具了,Google Chrome开发者工具是内嵌到浏览器的开发工具. 打开方式有两种:第一

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高效编程工具.所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用.正在使用或将来一定会用到的高效工具.这份列表名单包括集成开发环境.集成工具.测试和质量工具等. 1.集成开发环境 Eclipse是最有名也最广泛使用的Java集成开发环境(IDE),允许开发者结合语言支持和其他功能到任何的默认包中,而且Eclipse市场有许多定制和扩展的插件. IntelliJ已经引起了开发

10年研发老兵:如何构建适合自己的DevOps工具与平台

 任发科高级研发经理  曾任职亚马逊中国SDE和SDM,十年以上企业软件架构开发和管理经验,曾负责多个大型项目的架构设计和研发.实施.运营和维护.   大家好,首先感谢社群提供这样一个分享机会,与大家共同进步学习.今天我带来的主题是<从持续部署到统一部署:系统设计思路及要点>,重点探讨DevOps以及统一部署,内容将涉及到: 分析流行运维工具如Ansible 探讨常见的运维系统的架构与实现 DevOps元数据的概念 从开发到上线的软件开发周期的各环节探索DevOps平台的产生 如何构建适合自己

Windows管理员不可错过的那些卓越DevOps工具(下)

毫无疑问,没有自动化机制的配合,DevOps将无从谈起.虽然不同企业实现DevOps的实际流程大相径庭,但基本分歧点往往始于操作系统.各类DevOps工具在Windows与Linux上的表现区别明显,特别是在可用选项方面. 在本系列文章的上一部分中,我们已经探讨了Windows阵营下的IDE与源码控制类方案.而在今天的文章里,我们将继续讨论,且主要着眼于构建与发布.配置管理和测试框架三个方面. 一.构建与发布 DevOps的前提在于以快节奏方式为用户交付高质量软件服务.为了实现这一目标,企业必须

扫描危险网址和文件的七种在线工具

本文讲的是 扫描危险网址和文件的七种在线工具,尽管大部分浏览器都集成了网址和文件安全性检查功能,不过要是有其他的工具可选当然就更靠谱了. 点,还是不点,这是个问题?对于许多用户来讲,当收到来自陌生人发来的邮件中包含嵌入式网页链接或附件时,都会在头脑中纠结起这个互联网的终极问题.而当我们点击了之后呢,我们浏览器的网址和文件安全性检查功能会以弹出窗口的形式警示我们--"您点击的链接或邮件附件未经安全性检测,不建议您继续访问." 这样生硬的警示,让我们再次陷入犹豫不决.像谷歌Chrome.火

linux下实现web数据同步的四种方式(性能比较)_Linux

实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsync+sersync更快更节约资源实现web数据同步4.unison+inotify实现web数据双向同步 ======================================= 一.nfs实现web数据共享  nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器