当前位置: 首页 > 科技观察

云时代,你需要了解DevOps新动向

时间:2023-03-13 14:52:15 科技观察

本文为WOT2016互联网运营与开发者大会直播内容。在北京珠三角JW万豪酒店隆重举行!!信息化时代,大数据、物联网、人工智能等热门词汇经常出现在话语中,这些概念相互交叉、相互促进。例如,物联网会产生海量数据,机器学习会对这些数据进行分析,从而产生更好的结果。张霞表示,云计算和数据中心(运维机房)让这些热门行业越来越受欢迎。云计算是开发和运维屌丝对IT的反击。本来运维人员的具体分工多在底层,但在云时代,开发运维一体化让??运维人员显得尤为重要。运维人员需要了解一些开发运维DevOps的新趋势,以应对快速变化。你应该知道的运维新词和术语在揭示云时代DevOps的新趋势之前,你应该了解这些运维新词和术语。张霞表示,云时代开发维护会越来越流行,高级的内容也会越来越多。以下是远远不够的,但必须知道。新词Scrum,Agile,Kanban-Agility,Flexibility,KanbanTDD,BDD,DDD-TestDrivenDesign,BehaviorDrivenDesign,DomainDrivenDesignCI,CD,Cloud-ContinuousConcepts,ContinuousDeployment,CloudDevTestSecFinChatOps-——开发集成,测试运维、安全运维、财务运维等术语DevOps——是开发、测试、运维部门之间进行沟通、协作、集成的软件过程、方法和系统。MicroService微服务:——一个纯粹的小而有意义的功能。容器-容器是用于存储和组织其他对象的对象。Docker——开源应用容器引擎为什么需要DevOps?为什么需要DevOps?主要是开发完成后交给运维人员。两队之间仿佛隔着一堵墙,各司其职。这种开发一般一两个月出一个版本。在金融、银行等传统行业,有时候一个季度或者半年一个版本就很好了。但是在互联网时代,需要快速创新和快速迭代,一天可能推出多少个版本,所以这里需要DevOps的方式。微服务是支持DevOps方法的一种手段。传统的开发是在服务器中将各种元素组装成一个程序,而微服务是指每个服务都是一个独立的单元,可以部署在不同的服务器上,通过SOA的方式,连接起来,然后提供整个功能。从单体架构到微服务架构(Microservices)如上图所示,类似于光纤的横截面。每个小光纤点都是一个微服务。微服务构建的程序变成了如下结构,很多小节点密密麻麻的连接在一起。微服务的面向服务的架构,是由一个个原生的小服务组成,然后通过API调用它们,让程序在这一层更加结构化,一个一个单元化,再重新组合。从单体到微服务开发生命周期,如何开发微服务?传统的开发人员分成很多个团队,整个作品都是通用的。完成后,涉及整个构建、编辑、退出、测试、部署。微服务由团队组成。每个团队都有自己的服务。完成后,它们可以独立测试、开发和部署,然后将整个应用程序组合在一起。张霞表示,开发运维一体化,微服务和容器是平等的,可以结合起来,加上云的手段。DevOps不仅仅是一个简单的技术手段,实际上是一个方法概念。InfrastructureascodeInfrastructureascode张霞说,在运维中还有一个非常重要的概念,就是Infrastructureascode。传统的系统部署,从服务器开始,安装操作系统,安装应用程序,升级补丁,网络配置等等,都是由运维人员操作,一旦他们离开,就会出现问题。但在不久的将来,这些任务将由程序来实现,所以技术人员需要了解什么是未来?有什么值得学习的?如果仍然保持原来的技术,它可能会被一些程序所取代。因为机器可以实现可扩展性、可靠性、可重复性、一致性、可审计性、可记录性、安全性等,所以它们会比人类做得更好。并且在云中正确运行比传统IT安全得多。InfrastructureasCodeInfrastructureasCodeExample张霞说亚马逊云有一个很基础的服务叫做Infrastructureascode,这是一个基础设施部署服务。如果你想打开一些机器,全套架构,从网络上,从服务器上,这是一个真正的文本文件,比如Packages是什么,升级相关的操作系统,重要的原始文件放在哪里,ETC。这样一整套基础设施都运行在云端,包括底层架构、网络架构,运行在虚拟机上,可以安装在任何系统、应用程序或服务器上。从软件开发的角度来看,AWS完全支持DevOps。从DevOps的角度来看,它需要一整套操作系统,具有多层次的逻辑和控制,以及多编程语言的支持。还有一些开源工具。我们平时说的一些Docker平台,基本都是一一对应的关系。这些都依赖于API,还有很多基础服务,比如安全服务,是机器做的还是人做的,什么时候做的。基于AWS的DevOps实践要素在开发工具方面,AWS推出了一套叫做CodeCommit,将原来的代码管理放到了版本管理工具中。CodePipeline可以持续交付一些测试工具,CodeDeploy会真正启动它。ECS是云中Docker容器的服务。CodeDeploy用于应用程序部署。可以直接部署,可以部署开发测试,到生产各种环境,从一个部署到上千个实例,也可以本地部署,即传统机房,或者电信托管机房,公共云和私有云,可以实现任何一种混合架构,然后集中控制和监控。CodeDeploy部署分为三个部分:打包APP、指定目标、部署。Fromvirtualmachinetocontainer从虚拟机到容器张霞说VM虚拟机模型大家都很熟悉了。模型虽然好,但问题也不少,最主要的就是可移植性,部署的速度和灵活性更专业化。在虚拟化的基础上,容器进一步虚拟化,应用程序准备在虚拟机上,不仅来自于它的硬件,还来自于它的操作系统,来自于它所有的基础设施软件和构建的平台。Docker是一个封装的组,可以快速部署在不同的操作系统上,文件系统简化了升级和迁移。那么如何在云端进行操作呢?这里张霞提到了EC2Container服务,它是结合了云、EC2虚拟机、Container的优势的服务。AmazonEC2容器服务ECS如何使用?首先选择一些集群,这是一组机器,不是一台机器,是一组虚拟机,里面有四个虚拟机,一个上面安装了三个Container,然后明确任务,又是一个列表,这是一个要部署的应用程序,然后开始做这个。通过任务执行器,可以将这些任务放在一组虚拟机中。首先有一个agent来实现这些任务,知道谁在负责,然后有一些Container,然后把这些任务定义应用一个一个放到容器里,容器开始运行。ECSServiceScheduler–升级您的应用程序上图显示了蓝绿升级。如果任务原来是一个版本,将任务改成另一个版本,重新部署。在这些容器中重新部署,实现滚动升级,所以这是第二种方法。容器时代,如何利用公有云现成的ECS容器进行应用的滚动升级和部署,又可以完成这些事情。所以你看到了自动化的作用。上图AWScouldTrail是一个操作平台,一个叫开发者工具,一个叫管理工具。其他基础计算服务放在前面。真正的应用。云中还有很多其他的应用,比如计算应用、网络应用、数据库应用、存储应用等等,包括各种平台服务,甚至企业级服务。十年AWS云运维经验分享——CTOWernerVogel1.构建基于网络服务的可扩展架构的可扩展系统,就像飞机在空中升级2.随时准备应对突发情况随时可以拥抱失败的系统,但有效控制失败的“爆炸半径”3、提供多样化、可塑性强的“基础”服务为用户提供多样化、可塑性强的“基础”服务,让用户“按需选择”。4.自动化是关键。建立自动化管理机制,杜绝易出错的人为操作。5、API的搭建一定要一步到位,因为一旦上线就无法更改。一旦用户开始使用我们的API,就无法更改API。6.建立智能收费机制,确保可持续运行。在建立收费机制时,一定要了解运营成本。比如存储“请求数量”。七、安全从源头上抓安全。用户安全一直是并将永远是AWS的首要任务和优先投资方向。8、加密技术是最重要的,逐步掌握将加密技术融入服务的最佳途径。例如AmazonCloudHSM和KMS。9.Network,network,network保持网络基础设施高度灵活,比如可以支持SRI/OV的网卡,减少虚拟的额外负载。10、使用无极限,为客户打造一个极深广的平台,为用户打造一个极其丰富的生态系统。本文整理了WOT2016互联网运营与开发者大会,由亚马逊AWS首席云计算企业顾问张霞免费主持。会议演讲视频链接:http://edu.51cto.com/lesson/id-100764.html讲师简介:张霞,毕业于北京大学,获学士学位,先后获得莱斯大学和韦恩大学硕士和博士学位工程管理硕士。张霞博士现任亚马逊AWS首席云计算企业顾问,负责帮助企业利用云计算技术进行业务创新和数字化转型。张霞于2012年至2014年担任北京御风云科技有限公司总裁;2006年至2012年任SAP软件系统有限公司大中华区CTO;中心技术总监CTO。1993年至2002年在美国福特汽车公司工作,2000年至2002年担任FordDirect的CIO。