中国领先的IT技术网站
|
|

亚马逊AWS首席云计算企业顾问张侠:亚马逊AWS云服务推动IT运维创新

2016年4月14-15日,由51CTO传媒主办的WOT2016互联网运维与开发者大会在北京珠三角JW万豪酒店召开。下面是来自亚马逊AWS首席云计算企业顾问张侠先生给大家带来的是主题为《马逊AWS云服务推动IT运维创新 》的精彩演讲实录。

作者:王雪燕来源:51CTO|2016-04-14 10:50

开发者大赛路演 | 12月16日,技术创新,北京不见不散


2016年4月14-15日,由51CTO传媒主办的WOT2016互联网运维与开发者大会在北京珠三角JW万豪酒店召开。秉承专注技术、服务技术 人员的理念,自2012年以来,WOT品牌大会已经成功举办了八届,积累了大量的技术专家资源,获得了广大IT从业者和技术爱好者的一致认可,成为了业界重要 的技术分享交流平台以及人脉拓展平台。

本次会议分为11个技术主题,分别是:数据库技术与应用,大数据与运维,云计算与运维,运维安全,移动运维,容器体系构建与实践,运维自动化,行业运维、监控与性能优化、高可用架构和分布式存储技术。51CTO作为本次大会的主办方,将以快速报道、现场专访与后期视频等形式展示这场盛宴。

下面是来自亚马逊AWS首席云计算企业顾问张侠先生给大家带来的是主题为《亚马逊AWS云服务推动IT运维创新  》的精彩演讲。

张侠,毕业于北京大学获学士学位, 并获得美国莱斯大学硕士和博士学位以及韦恩大学工程管理硕士学位。 张侠博士现任亚马逊AWS首席云计算企业顾问,负责帮助企业利用云计算技术进行业务创新和数字化转型。张侠于2012-2014年任北京御风云科技有限公司总裁;2006-2012年任SAP思爱普软件系统有限公司大中华区首席技术官 CTO;2002-2005年任中国银行个人金融部和银行卡中心的技术总监CTO。他曾于1993-2002年在美国福特汽车公司工作,其中 2000-2002年任福特直销FordDirect的首席信息官CIO。

【以下为现场演讲实录】

尊敬的各位开发运维的同行们,大家早上好!今天很高兴有机会代表亚马逊云计算来跟大家分享一些云里面的运维创新的一些事情。

最近大家知道,信息化时代越来越火了。大数据、互联网、物联网,加上机器学习等等这些所谓的人工智能,这些东西都越来越火,其实这些概念之间有很多的交叉,很多的互相促进。比如说物联网产生更多海量数据,大家也知道像机器学习的这些方法,帮着把这些数据更好的分析,产生更好的效果,但是最重要的是支持他们的,为什么使得物联网成为可能使得大数据越火,使得机器学习有这么大的进展呢?其实很重要的是我们在座各位做的这些工作,也就是说云计算,还有一个就是计算中心,我们说的这些运维的机房。

我想说一句话,把计算中心比喻成什么呢?大家都常听说的一个字“钱”有一个相似性。计算中心不是万能的,没有计算中心却是万万不能的。另外大家可能听说过,我觉得也特别愿意跟大家分享。云计算是什么?有一个更通俗的说法,但是云计算是什么?是开发和运维的屌丝们对IT的逆袭。仔细想一想,原来做具体工作,很多人在分工里面处在底层,在云的时代,特别是今天讲的开发运维一体化,使得我们站在了最重要的位置。

一个是给大家介绍一下云时代开发运维的新思路、新想法,顺便介绍一下在亚马逊云里面这些东西是用什么样的工具和服务来提供的。举一些例子让大家熟悉。

有一些词,敏捷开发,所有的这些敏捷性、灵活性,第三个词是日文词,其实是咱中文,大家也能看明白,什么东西?看板。日文的看板,现在是一个国际运维的词,其实就是咱们原来Scrum, Agile, Kanban。第二排现在时髦的TDD、BDD、DDD,测试驱动的设计、行为驱动的设计、域驱动的设计等等,CICD大家可能都知道,持续的概念、持续的部署、持续的把它推出来。下面都是国际上运维圈最火的词,这么多时髦的词只要排列组合,开发一体化、测试运维、安全运维、财务金融的运维。开发运维云的时代越来越火、越来越有很多先进的内容,这些可能还远一些,但是这些词,可能我们就必须知道了。

DevOps,把开发和测试整合在一起的哲学,一种思路,一种方法,从组织架构到整个的思路,到整个的这些方法。Micro Service微服务,从原来SOA基础之上又前进了一步,做成了单纯的小的功能比较集中的,由一个团队处理的微服务。 还有一个Container容器,包括开源的Docker容器的部署方法。   DevOps可能大家比较熟悉,我再简单介绍一下,它是把开发运维整个整合在一起的一种方法。传统上,大家开发测试,再反馈来一个循环,不断的推进,可以使敏捷开发的其他的方法。为什么需要DevOps?最主要的原因,原来开发之后,我交给那些运维的人,这两个团队之间有一堵墙,各干各的活。做法就是所谓的这种开发,很多是一两个月搞出一个版本,在一些传统行业,比如金融银行,有的时候一个季度、半年搞出一个版本,然后推出来就不容易了,但是在互联网时代,我们大家都需要快速的创新、快速的迭代,一天可能就要推出多少个版本,大家现在脑子里想一想,你认为现在一天一个公司要推出多少个版本?你想一个数,十、百、千、万、百万、千万、亿,你想一想。这个就是我们想象了,所以在这种时代,要搞这种开发怎么样才能跟上形势?那就是DevOps的方法,取决于技术的手段,一个手段我们讲的微服务,这是一个微服务的图。老的方法是在一个服务器里面,把各种元素装在一起组合成一个程序,但是在微服务的时候,我每一个服务是一个单独的单元,它可以部署在不同的服务器上,通过SOA的方法,把它连接起来,再提供整个功能。

之后就是下面看到的这个图,类似一个光纤的截面,这里面每一个小光纤点是一个微服务,微服务构造的程序变成下面的结构,很多小结点密密麻麻连在一起。微服务面向服务的架构由单一原生的小的服务来构成,再通过APIs调用它们,使得这个程序从这个层次上,把它更加的结构化了,一个一个的单元化了,然后再可以重新组合。这个概念还是SOA的概念,但是六七年前、十年前,谈SOA的时候有这个理论,没有一些好的方法,颗粒度太大,所以实际上用的效果不是那么好,到了微服务层面,实际上是SOA朝前又真正推进了一步,加上各种新的云计算工具,所以微服务变成现实了。

微服务的时候开发怎么做?传统的开发者可以分成很多团队,但是整个工作常用的程序,做好了以后,整个的建造、编辑、退出、测试,直到部署。微服务就不一样了,我可以根据这些微服务组成一个一个小的团队,每一个做他自己的服务,做好了之后,他可以独立的进行测试、开发、部署,然后整个应用组合在一起,所以大家看一下,这个就是DevOps所需要的。为什么开发运维一体化和微服务,和Container所有的这些东西,其实这些时髦的东西,它们是共同的,只有它们组合起来,加上云的手段才成为可能。

DevOps不光是一个简单的技术手段,实际上是一个方法理念。在组织架构上都要与它相适应,这个是比较能说明的故事,叫做两个比萨饼的团队,与微服务相适应,做IT的、开发运维的测试的团队,一体化的团队,如果这个团队中午吃饭,或者加班需要点点外卖,如果点完两个比萨饼,这个团队吃不饱,这个团队就太大了。美国人的比萨稍微大一点,但是大概一个也就能吃那么三四个人,有的人饭量小点到五个人,所以两个比萨饼的团队,大概是七八个人,最多10个人,8到10个人的团队,这是最理想的尺寸,再大了,这个团队就不合适了,所以叫两个比萨的团队。这个团队还有很多其他功能,自主负责,直接承担一个责任,干一件事,像个小的创业公司一样创新,推出最好的东西,不断的创新,而且他自己负责,而且这个是开发运维一体化的。这个也是为什么现在有一些新的创业公司在云上,搞成10亿美金的公司了,所谓的独角兽了,但是回过头来一看,整个IT开发运维加起来几个人?大家猜猜,可能就三个人、四个人、五个人,所以为什么说这叫屌丝的逆袭?你一旦掌握了运维一体化的东西,你的力量是巨大的,不像原来一些大的IT机构,你只是一个小小的螺丝钉,只能发挥一点作用,但是现在三五个人,你要是有思路、有运维模式、有一定的资金支持,你可以做成一番很大的事业。

硅谷主要的创新的公司,像Uber很多很多这样的公司,基本上都是在云上开发创业成家的,包括分享经济的例子。亚马逊网站一直使用这种方法,它要快速的更新,因为有很多闪购,有很多东西,在全球网站上,卖一个小时、两个小时,每天有一个闪电的闪购。其实它的网站就是这种方法,有数千个团队使用微服务架构持续交互,多环境下部署,你看到的应用不是一个应用。其实它每年有5000万次的交付,除以365,大家算一下,大概还有三四万次的,每天那个网站实际上不是一个版本,而是几万个不同的版本,当然一切都是没有中断的,在那儿重新部署,但是每个单元、每个服务是在变的,但是整体还是在那儿运行的,待会也给大家介绍一下怎么样实现这种不间断的升级这些工具。

还有一个很重要的概念给大家介绍一下。现在运维很重要的一个概念,叫Infrastructure as code。在这种要求的情况下,传统的靠人工来做这些系统部署,我们都干过这些事,从服务器开始装操作系统,装应用,升级补丁,网络配置好等等这些事,运维干这些苦力活,过去这是我们的价值,我们要走了,他们就搞不清楚了,但是现在这种活多数将来都会被程序来实现,所以我们也要了解什么是前途?我们学哪些有价值?我还是原来干这些的技术,你可能就被一些程序代替了。这叫Infrastructure as code,机器实现可拓展性、可靠性、重复性、一致性、能够审计、能够记录、安全,当然都比人更好。云里面事情做对了,比传统IT安全很多。

比如说亚马逊云里面,一个很基础的服务叫做Infrastructure as code,它是一个基础架构的部署服务,这里举了一个例子,我要开一些机器,你全套的这些架构,从网络,从服务器,这是一个真正的文件,比如说我Packages是什么,我升级一下相关操作系统,重要的原文件放在什么地方等等,通过这一个方式整个一套基础设施在云里面就跑起来了,包括底层架构、网络架构,虚机上跑什么东西,装什么系统、装什么应用、装什么服务器,所有这些都可以做。

从DevOps的角度讲,还需要很多层次,逻辑控制、多编程语言支持等整个一套操作系统。也有一些开源的工具,平时说的Docker的一些平台,基本上是对应的关系,这些东西都要靠API,还有很多基础服务,比如说安全的服务,是机器干的、人干的、几分、几秒什么时候干的。

我选一两个和我们运维比较有关系的介绍一下。从开发工具来说,推出一套叫Code Commit,把原代码管理放到版本管理的工具里面。Code Pipeline可以持续交付做一些测试工具,Code Deploy把它真正的推出来。还有一类云的工具,基础设施的,还有一些其他的。   除此之外的所有的事情,选择服务器、硬件、软件、网络、系统、怎么配置好,所有的全为你做好了。5分钟之后,这个东西就拷起来了,你的游戏已经启动了。我自己试过这个,我把我儿子随便写的游戏放到一个网站,网站关了,游戏没地拷了,我抓过来放在上头,5分钟之后跑起来了。真正一跑起来,我还是非常惊喜的。大家可以到亚马逊云上试一试。

还有一个叫ECS,是在云里面做的一个Docker的容器的服务。这个是我下面也要给大家介绍的,所以我会重点介绍两个。这个CodeDeploy是在做应用部署的,它来直接部署,可以部署的开发测试,直到生产各种环境中,从一个部署到上千个实例中,也可以部署在本地的,就是说你自己的传统的机房,或者电信托管的机房,连你自己的公有云带私有云,混合架构上任何一种全都能实现,然后集中的控制和监控。

这是部署大概方法,包装好的APP,也是用这种语言,AWS CodeDeploy都是程序来实现。比如讲了Source Chef在哪,要是跑起来怎么样?如果大家是网站都熟悉这些东西。我就指定一个目标,我准备哪个部署,这些虚机可以任意的方式做好标签,这个标签可以把它们分成不同种类,可以让自动缩放群再分,比如说属于哪一个开发的、测试的,还是民用的,缩好了之后,各种分法。我告诉他在那些上部署这些应用,到第三步就开始部署了,这里面举一个例子,你可以用SDK的开发包,可以用管理的中心界面,都可以做。这个说要装18个虚机,目前已经装了6个了,还可以再装。这么一个状态,它就控制了所有的工作,这是可以做的。

这样的话,它这个部署的时候,有很多选择。这是告诉你,我部署的时候,我可以一个一个做,我可以一次做一半,我也可以一下就都做了,而且这里面我每做完一个,我可以看它成功了没有,大家知道,在云里面,这虚机上面有一个负载功能,如果升级失败了,我可以不送给它,我可以回补。如果成功了,按照预先说好的,一次走一个,还是一次走一半,还是一次走干了,各种方法。程序一天已经升级到上万版本是不是真的?当然是真的。怎么做的?就是靠这种工具。从你用户来讲,你有感觉吗?完全看不出来。

原来我们都熟悉所谓VM虚机模式,这个模式虽然不错,但是有很多问题,最主要是可移植,部署的速度、灵活性,它比较专门,这也就是为什么容器变得时髦了。在虚拟化的基础上,容器是进一步虚拟化,把应用在虚机上准备好,不光是脱离它的硬件,还脱离它的操作系统,还脱离它的所有的基础设施的软件,搭建的平台,这就是我们讲的。所以Docker的概念,封装的群,在不同OS上快速部署,文件系统简化升级和迁移。

在云上怎么做呢?我们把开源的东西结合到云里的这么一个东西。EC2 Container services,它能把云的好处,EC2虚机所有的好处,加上Container的好处结合在一起。这个是ECS怎么使用的,它实际上是类似的,首先选择一些集群,这是一组机器,不是一台机器,一组虚机,里面有四个虚机,一个上面装了三个Container,然后我把任务定义清楚,又是一个清单,这是一个要部署的应用,然后就开始做这个事情了。可以通过任务的执行器,把这些任务在虚机的组成的群里面,先有一个代理实现这些,知道谁都管什么,然后这里面有一些Container,然后把这些任务定义应用一个一个放到容器里,这个容器就跑起来了。同样,时间关系,我没有演示了。这里有一个所谓蓝绿升级,如果这个任务原来是一个版本,把这个任务改成另一个版本重新部署一遍,在这些容器里重新部署,又实现了滚动的升级,所以这是第二个方法。在容器的时代,使用公有云现成的ECS的容器怎么样做应用的滚动的升级和部署,又可以完成这些事情。所以大家看到自动化所起的作用。

这个是我操作的平台,一类叫开发人员工具,一类叫管理工具,其他的基本计算服务放在前面,这是在大的平台里面,这些服务在哪,现在都可以用的,都是实实在在的应用。云里面有很多其他应用,计算的应用、网络的应用、数据库的应用、存储的应用等等,包括各种的平台类的服务,甚至企业级的服务都有一些服务。和我们运维最相关的就是这些服务,给大家介绍介绍有一个感觉,有机会大家可以进一步学习这些东西。

最后跟大家分享一个,最近大家在网上都看到的,所谓亚马逊云十年,亚马逊CTO,叫Werner Vogel分享的十大经验,都是和运维有关系的。这里面谈到构建可发展型系统,这个非常重要,因为IT就持续不断的升级,他说没有这些自动化的工具,就相当于在开着的飞机中,对这个飞机进行操作,让这飞机升级,所以这个难度有多大,所以为什么这些自动化的东西很重要。第二个经验,随时考虑到灾难随时发生,发生了怎么处理,叫做“爆炸半径”,一个坏事发生了,影响有多大,影响范围是不是能控制,别影响到不能控制。云的概念就是这个东西,假设所有的东西都坏了,但是它坏了之后,什么效果都没有,这就是云干的事。比如数据复制了好多份,每一个硬盘,定到5个9它就坏了,但是整个系统是有可靠性的,每个东西都可以坏,但是我可以让它在设计上坏了没有关系。虚机这个东西坏了之后,马上在边上起一个新的,那个死掉了,一点关系都没有,实体的机器做不到。比如说三个节点的大数据的运算,改成四个节点,我在旁边开四个新的节点,等它运行起来之后,把这个切换过去,那三个节点扔掉了,实时的升级、缩放、扩大、扩展非常容易,原来传统的不好做。

运维的自动化技术是关键,API非常重要,全部的东西都是API的,而且都有定义,基本上成为事实上的标准。包括开源的都是反过来借用亚马逊的API的。

建立一个好的收费的机制,使用的合理。这个东西到底怎么收费?真的获得价值的时候,你收费的。比如说存储,现在亚马逊云不是说存了多少,主要在于你取它时候。当你要往上放东西,它不一样,不同情况,你要考虑怎么样才能可持续发展,现在决定怎么收费的时候,要深入的琢磨这些事,只有运营了才有这些经验。

安全很重要,从源头抓起。加密很重要,各种的方法。云里面网络特别重要,这个都能想象。特别重要的最后一点,他有一个理念,这个理念是用途不设限,一直推一个比较基础的平台,也正因为此,才能在这个平台上出现这么多的应用。像分享经济,几个人现在已经连续创造三四家公司,一旦会了这个之后,就等于说IT的这些技术都在你手里,你得到的解放非常大。

最后总结一下。今天利用这点时间,一个是给大家介绍了一下DevOps的这些经验,这些新的理念,其中基础架构即代码,Micro Service、Container容器、亚马逊可以支持这些,欢迎大家有机会进一步了解。包括我个人从事业上来说,我应该学一点什么,怎么样在下一个时代,如果不成为从屌丝翻身成为网红、成为大牛,至少我也要在这里面,不是说被淘汰的人渣,最后跟大家说一句话,一切皆软件,一切皆API,谢谢大家!

以上是51CTO.com记者从一线为您带来的精彩报道。后续我们还有更加精彩的独家报道,敬请关注。

【编辑推荐】

  1. 通信企业协会运维委员会委员郭亮:数据时代的企业安全运维观
  2. 亚马逊AWS首席云计算企业顾问张侠:亚马逊AWS云服务推动IT运维创新
  3. 腾讯社交网络运营部助理总经理赵建春:如果运维可以重来一次
  4. 听云技术副总裁吴静涛:快速实现用户体验可度量的监控管理平台
  5. Google工程团队带头人李聪:运维理念与实践
【责任编辑:wangxueyan TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

鸟哥的Linux私房菜——服务器架设篇(第二版)

本书是对连续三年蝉联畅销书排行榜前10名的《Linux鸟哥私房菜——服务器架设篇》的升级版,新版本根据目前服务器与网络环境做了大幅度修订...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 51CTO学院双十二活动