2016年4月14-15日,由媒体主办的WOT2016互联网运维与开发者大会在JW万豪酒店举行在北京珠三角酒店举行。秉承专注技术,服务技术人员的理念,自2012年以来,WOT品牌大会已成功举办八届,积累了大量的技术专家资源,获得了广大IT从业者和技术爱好者的一致认可.重要的技术共享交流平台和网络拓展平台。本次大会分为11个技术议题,分别是:数据库技术与应用、大数据与运维、云计算与运维、运维安全、移动运维、容器系统构建与实践、运维自动化、行业运维维护、监控和性能优化、高可用架构和分布式存储技术。作为本次大会的承办方,我们将以快报、现场采访、后期视频的形式呈现这场盛宴。以下是亚马逊AWS首席云计算企业顾问张霞先生以《亚马逊AWS云服务推动IT运维创新 》为主题的精彩演讲。张霞,毕业于北京大学,获学士学位,先后获得美国莱斯大学硕士、博士学位和韦恩大学工程管理硕士学位。张霞博士现任亚马逊AWS首席云计算企业顾问,负责帮助企业利用云计算技术进行业务创新和数字化转型。张霞于2012年至2014年担任北京御风云科技有限公司总裁;2006年至2012年任SAP软件系统有限公司大中华区CTO;中心技术总监CTO。1993年至2002年在美国福特汽车公司工作,2000年至2002年担任FordDirect的CIO。【以下为现场演讲实录】尊敬的开发维护同仁,大家早上好!今天很高兴有机会代表亚马逊云计算与大家分享在云运维方面的一些创新。最近,大家都知道信息时代越来越普及了。大数据、互联网、物联网以及所谓的人工智能,比如机器学习,越来越流行。其实这些概念之间有很多交集,也有很多相互促进。比如物联网会产生更海量的数据,我们都知道像机器学习这样的方法可以帮助更好地分析这些数据并产生更好的结果,但最重要的是支持它们。为什么物联网会成为一个可能会让大数据更加普及,让机器学习有这么大的进步?其实很重要的是这里大家所做的工作,也就是云计算,另外就是计算中心,我们说的运维机房。我想说一句话,计算中心比什么?大家经常听到的“钱”这个词,有一个相似之处。计算中心不是万能的,但没有计算中心是万万不能的。另外,你可能听说过,我很愿意分享给你。什么是云计算?还有一个比较通俗的说法,但什么是云计算呢?是开发和运维鸡巴对IT的一次反击。仔细想想,原来在做具体工作的时候,很多人都处在分工的最底层。在云时代,尤其是今天说的开发运维一体化,我们站在最重要的位置。一是引入云时代开发维护的新思路、新思路,顺便介绍一下亚马逊云中用什么工具和服务来提供这些东西。举几个例子让大家熟悉。有一些词,敏捷开发,所有这些敏捷和灵活性,第三个词是日文,其实就是我们中文,大家看得懂,是什么?看板。日语中的看板现在是国际运维的代名词。其实就是我们原来的Scrum、Agile、Kanban。第二排是现在流行的TDD、BDD、DDD、测试驱动设计、行为驱动设计、领域驱动设计等等。CICD大家可能都知道,continuous,continuousdeployment,continuousrollout的概念。以下是国际运维界最流行的词汇。这么多时髦的词只需要排列组合,开发集成、测试运维、安全运维、财务金融运维。DevOps云时代越来越火爆,高级的内容也越来越多。这些可能很遥远,但我们可能不得不知道这些话。DevOps,开发测试一体化的哲学,一种思维方式,一种方法,从组织结构到整个思路,到这些方法的整体。微服务是在原来的SOA基础上向前迈进了一步,做成了一个功能简单的小的、由一个团队相对集中处理的微服务。还有Container容器,包括开源Docker容器的部署方法。DevOps大家可能比较熟悉,我简单介绍一下,它是一种将开发和运维整合在一起的方法。传统上大家开发和测试,然后反馈一个循环,不断的推进可以让敏捷开发的其他方法成为可能。为什么需要DevOps?主要是原来开发完后,交给了运维人员。两个团队之间有一堵墙,各司其职。实践就是所谓的这种发展。他们中的许多人会在一两个月内制作一个版本。在一些传统行业,比如金融银行,有时候一个季度或者半年出一个版本,然后上线,不是一件容易的事情。互联网时代,我们都需要快速创新和快速迭代。一天可能会上线多少个版本,大家现在想一想,你觉得一个公司一天会上线多少个版本?你想一个数,十、百、千、万、万、千万、十亿,你想想就知道了。这就是我们所想象的,那么在这个时代,我们如何才能在这种发展中跟得上形势呢?那就是DevOps的方法,它依赖于技术的手段,我们讲微服务的一种手段,这是一个微服务的图。老办法是在一个服务器里把各种元素组装成一个程序,但是在微服务的情况下,我的每一个服务都是一个独立的单元,可以部署在不同的服务器上,通过SOA的方式,把它连接起来,然后提供完整的功能。然后就是下图,类似于光纤的横截面,每一个光纤小点就是一个微服务,微服务构建的程序就变成了下面的结构,很多小节点密密麻麻的连接在一起。微服务的面向服务的架构,是由一个个原生的小服务组成,然后通过API调用它们,让程序从这个层面更加结构化,一个一个单元化,再重新组合。这个概念还是SOA的概念,但是六七年前,十年前,讲SOA的时候就有这个理论。没有很好的方法,而且粒度太大,所以实际效果不是很好。在微服务层面,其实SOA真的又向前迈进了一步,再加上各种新的云计算工具,让微服务成为了现实。如何开发微服务?传统的开发人员可以分成很多团队,但是整个工作中常用的方案,完成后,整个构建、编辑、退出、测试、部署。微服务是不同的。我可以基于这些微服务组成一个小团队,每个微服务做自己的服务。做完之后,他可以独立测试、开发、部署,然后再组合整个应用,所以看看,这就是DevOps所需要的。为什么要做开发,运维集成,微服务,Container这些东西,其实这些时髦的东西,它们是通用的,只有结合起来,云的手段才有可能。DevOps不仅仅是一个简单的技术手段,实际上是一个方法概念。在组织结构上,必须与之相适应。这是一个更能说明问题的故事。叫两个披萨的团队,适配微服务,一个做IT、开发、运维测试的团队,一个集成的团队。团队中午吃饭,或者加班需要叫外卖。如果点了两个披萨还吃不饱,说明这个团队太大了。美式pizza大一点,但是一个可以吃三四个人,有的小到五个人吃,所以两个pizza一队大概七八个人,最多10个人,8到10个人的团队,这是最理想的尺寸,再大一点,这个队就不合适了,所以叫一队两个披萨。这个团队还有许多其他功能。自我负责,直接承担责任,做一件事,像创业小公司一样创新,推出最好的东西,不断创新,对自己负责,这就是开发运营。维度整合。这也是为什么云上出现了一些新的创业公司,成为了价值10亿的公司,所谓的独角兽,但是回过头来看,整个IT开发运维有多少人参与?大家猜一猜,可能只有三四五个人,为什么这叫屌丝的反击呢?一旦你掌握了运维一体化,你的力量是巨大的。不像一些大的IT组织,你只是一个小螺丝钉,只能起到很小的作用。但是现在三五个人,如果有想法,有运维模式,有一定的资金支持,是可以做成大生意的。硅谷主要的创新公司,很多像Uber这样的公司,基本上都是在云上开发和创业的,包括共享经济的例子。亚马逊网站一直采用这种方式。需要快速更新,因为闪购很多,东西也很多。在全球网站上,卖一两个小时,每天都有闪购。其实它的网站就是这样的。成千上万的团队使用微服务架构在多个环境中持续交互和部署。您看到的应用程序不是应用程序。事实上,它每年有5000万次交付。除以365,算下来大概有三万到四万次发货。每天,网站实际上不是一个版本,而是成千上万个不同的版本。在那里打断重新部署,但是每一个单元,每一个服务都在变化,但是整体还是在那里运行。后面会介绍如何实现这些工具的这种不间断升级。还有一个很重要的概念要介绍给大家。运维中一个很重要的概念叫做基础设施即代码。在这种需求的情况下,传统的系统部署是手动完成的。这些事情我们都做过,从服务器开始安装操作系统,安装应用,升级补丁,配置网络等等,运维做这些事情。苦力的工作,以前这是我们的价值所在,我们走了他们也想不通,但是现在这种工作以后大部分都是通过程序来实现的,所以我们也需要明白什么是未来吗?我们学习什么价值?这个我还是用原来的技术做的,你可能会被一些程序代替。这称为基础架构即代码。机器实现可扩展性、可靠性、可重复性、一致性、可审计性、可记录性和安全性。当然,他们比人类更好。如果事情在云端正确完成,它比传统IT安全得多。比如在亚马逊云里面,有一个很基础的服务叫做Infrastructureascode,也就是基础设施部署服务。这是一个例子。我想开一些机器。您拥有一整套这些架构,从网络到服务器。这是一个真实的文件。比如我的Packages是什么,我升级了相关的操作系统,重要的原始文件在哪里等等。这样一整套基础设施都跑在云端了,包括底层架构,网络架构,跑什么在虚拟机上,安装什么系统,安装什么应用,安装什么服务器,这些都可以搞定。从DevOps的角度来看,需要很多层次,包括逻辑控制、多编程语言支持等一整套操作系统。还有一些开源工具。我们平时说的一些Docker平台,基本都是一一对应的关系。这些东西都依赖于API,还有很多基础服务,比如安全服务。什么时候做的分秒必争。下面介绍一两个和我们运维比较相关的。在开发工具方面,推出了一套叫CodeCommit的,把原来的代码管理放到了版本管理工具中。CodePipeline可以持续交付一些测试工具,CodeDeploy会真正启动它。还有一类云工具、基础设施等。其他一切,如选择服务器、硬件、软件、网络、系统、如何配置,都为您完成。5分钟后,东西将被复制,您的游戏将启动。我自己试了一下,我把我儿子的随机游戏放在一个网站上,网站被关闭,游戏被复制,我抓起来放上去,5分钟就上线了。当我真正开始跑步的时候,我还是很惊讶的。您可以在亚马逊云上试用。还有一种叫ECS,是云端的Docker容器服务。这就是接下来要给大家介绍的,所以重点说两个。这个CodeDeploy是做应用部署的,可以直接部署,可以部署开发测试,直到生产到各种环境,从一个部署到上千个实例,也可以部署到本地,也就是说,你自己的传统A机房,或者电信托管的机房,甚至你自己的公有云和私有云,任何一种混合架构都可以实现,然后集中控制和监控。这是部署的一般方法。打包好的APP也是用这种语言实现的。AWSCodeDeploy是由程序实现的。比如SourceChef在哪,如果跑了怎么办?如果每个人都是网站都熟悉这些东西。我只是指定一个目标,我计划部署哪个部署,这些虚拟机可以用任何方式标记。这个标签可以把他们分成不同的类型,可以分为自动伸缩组,比如哪一个属于开发和测试。它仍然是民用的。收缩后又可以分为多种方法。我告诉他在那些平台上部署这些应用程序,第三步就开始部署了。这里举个例子,可以用SDK开发包,可以用管理中心界面,都可以。这里说需要安装18个虚拟机,目前已经安装了6个,还可以安装更多。在这种状态下,它控制着所有可以完成的工作。这样的话,在部署的时候,有很多选择。这个就是告诉大家,我部署的时候,可以一个一个做,可以一次做一半,也可以一次做全部,每次做完一个,看看是不是成功了,大家都知道,在云端,虚拟机上有加载功能。如果升级失败,我就不用发了,可以补上。如果成功了,按照事先的约定,一次一个,一次一半,或者一次干,各种办法。程序真的一天升级上万个版本吗?当然是真的。你怎么做呢?只需依靠这个工具。从你的用户的角度来看,你感受到了吗?根本看不到。原来所谓的VM虚拟机模型大家都很熟悉了。这种模式虽然好,但也有很多问题。最重要的是可移植性、部署速度和灵活性。它更专业,这就是容器变得流行的原因。在虚拟化的基础上,容器进一步虚拟化,应用程序准备在虚拟机上,不仅来自于它的硬件,还来自于它的操作系统,来自于它所有的基础设施软件和构建的平台。这就是我们所说的。所以Docker的概念,封装组,在不同OS上快速部署,文件系统简化了升级和迁移。如何在云端做?我们将开源的东西组合成云中的这样一个东西。EC2Container服务,可以结合云的优势,EC2虚拟机的所有优势,以及Container的优势。这就是ECS的使用方式。它实际上是相似的。首先,选择一些集群。这是一组机器,不是单机,而是一组虚拟机。里面有四台虚拟机,其中一台安装了三个Container。然后我把任务定义清楚了,又是一个list,就是一个要部署的应用,然后我就开始做这个。通过任务执行器,可以将这些任务放在一组虚拟机中。首先有一个agent来实现这些任务,知道谁在负责,然后有一些Container,然后把这些任务定义应用一个一个放到容器里,容器开始运行。同样,与时间相关,我没有演示它。这就是所谓的蓝绿升级。如果任务原来是一个版本,将任务换成另一个版本,重新部署。在这些容器中重新部署,实现滚动升级,所以这是第二种方法。容器时代,如何利用公有云现成的ECS容器进行应用的滚动升级和部署,又可以完成这些事情。所以你看到了自动化的作用。这是我运营的平台,一个叫开发者工具,一个叫管理工具。其他基础计算服务放在前面。这是在一个大平台上。这些服务在哪里?它们现在都可用。真正的应用。云中还有很多其他的应用,比如计算应用、网络应用、数据库应用、存储应用等等,包括各种平台服务,甚至企业级服务。这些服务与我们的运营和维护最为相关。我想把它们介绍给你。如果你有机会,你可以更多地了解这些东西。最后,我想和大家分享一个。最近大家在网上看到所谓的亚马逊云十年,亚马逊CTO,WernerVogel分享的十大经验,都和运维有关。它谈到建立一个可开发的系统,这是非常重要的,因为它是不断升级的。他说,如果没有这些自动化工具,就相当于在敞开的飞机上操作飞机来升级飞机。那么这有多难,为什么这些自动化的东西很重要。第二个经验是随时考虑随时发生的灾难,发生时如何应对。这被称为“爆炸半径”。云的概念就是这个东西,假设所有的东西都坏了,但是坏了之后没有任何作用,这就是云做的事情。比如数据复制了很多次,每个硬盘设置成五个九都会坏,但是整个系统是可靠的,什么都可以坏,但我设计上可以让它坏。虚拟机坏了之后立马在旁边建一个新的,那个死了,跟它没关系,物理机也做不到。比如三个节点的大数据计算改成四个节点,我在旁边新开四个节点。跑起来之后,我切换到这个,三个节点都扔掉了,实时升级,Scaling,扩展,扩容都很容易,结果发现传统的不好做。运维自动化技术是关键,API很重要。一切都基于API,都有定义,基本上成为了事实上的标准。包括开源的都是反过来借用亚马逊的API。建立良好的收费机制,合理使用。这个东西怎么收费?当你真正获得价值时,你就会收费。比如存储,现在亚马逊云不是说存储多少,主要看你什么时候拿。当你想把东西放上去时,它是不同的,不同的情况。你必须考虑如何实现可持续发展。现在当你决定如何充电时,你必须深入思考这些事情。只有操作过后才能有这种体验。安全很重要,从源头做起。加密在很多方面都很重要。可以想象,云中的网络尤为重要。最后一点尤为重要。他有一个概念。这个理念是没有限制的使用,他一直在推动一个比较基础的平台。也正是因为如此,才能够在这个平台上出现如此多的应用。像共享经济,几个人连续创办了三四家公司。一旦你明白了这一点,就意味着所有这些IT技术都掌握在了你的手中,你得到了很大的解放。总结一下。今天趁着这个时间,一个是给大家介绍一下DevOps的经验和这些新概念,其中基础设施就是代码,MicroService,Container容器,亚马逊可以支持这些。欢迎大家有机会了解更多。包括我个人的职业,我应该学什么,下一个时代怎么去,如果我不从屌丝变成网红,变成大牛,至少我也想在里面,不去被淘汰。最后告诉大家一句话,一切都是软件,一切都是API,谢谢!以上就是网报记者从一线为大家带来的精彩报道。未来我们还会有更多精彩的独家报道,敬请期待。
