云的革命(一)

云的革命
      从一个世界开始的时候,由于它像圆圈同样四处转动,而且在它开始的圆圈上没有地方。
      第一次革命是云的创造,咱们将解释它是什么以及它为何重要。第二个是DevOps的曙光,你会发现它涉及到什么以及它如何改变运营。第三次革命是集装箱的到来。这三个变化浪潮共同创造了一个新的软件世界:云原生世界。这个世界的操做系统叫作Kubernetes。

     在本文中,咱们将简要叙述这些革命的历史和重要性,并探讨这些变化如何影响咱们全部部署和运行软件的方式。咱们将概述云本机的含义,以及若是您从事软件开发,运营,部署,工程,网络或安全工做,您能够在这个新世界中看到哪些变化。数据库

     因为这些相互关联的革命的影响,咱们认为计算的将来在于基于云的容器化分布式系统,由Kubernetes平台(或很是相似的东西)经过自动化动态管理。开发和运行这些应用程序的技术 - 云原生DevOps  - 是咱们将在本文其他部分探讨的内容。安全

     若是您已经熟悉全部这些背景材料,而且您只想开始享受Kubernetes的乐趣,请舒服地安顿下来,喝一杯最喜欢的饮料,咱们会开始的。服务器

云的创造
      一开始(不管如何,20世纪60年代),计算机在大型,远程,空调数据中心中逐个机架,用户永远不会看到它们或直接与它们交互。相反,开发人员将他们的工做远程提交到机器并等待结果。

      云的核心思想是:购买计算而不是购买计算机。 也就是说,不是将大量资金投入到难以扩展的物理机械中,且机械地分解,而且迅速变得过期,您只需在别人的计算机上花时间,让他们负责扩展,维护和升级。 在裸机的时代 - “铁器时代”,若是你喜欢 - 计算能力是一笔资本支出。 这是一项运营费用。网络

      云不只仅是远程租用的计算能力。它也是关于分布式系统的。您能够购买原始计算资源(例如Google Compute实例或AWS Lambda函数)并使用它来运行您本身的软件,但您也愈来愈多地租用云服务:本质上,使用其余人的软件。例如,若是您使用PagerDuty监控系统并在出现故障时提醒您,则您使用的是云服务(有时称为软件即服务或当您使用云基础架构来运行本身的服务时,您所购买的是基础架构即服务(IaaS)。 您没必要花费资金购买它,您没必要构建它,云计算是企业与其IT基础架构之间关系的一次革命。外包硬件只是故事的一部分; 云还容许您外包您不编写的软件:操做系统,数据库,群集,复制,网络,监控,高可用性,队列和流处理,以及跨越差距的全部无数软件和配置层 在你的代码和CPU之间。 托管服务能够为您处理几乎全部这些无差异的繁重工做。

      在DevOps以前,开发和运行软件本质上是两个独立的工做,由两个不一样的人群执行。 开发人员编写软件,而后将其传递给操做员,操做人员在生产中运行和维护软件(也就是说,为真实用户提供服务,而不只仅是在测试条件下运行)。 就像须要本身建筑物楼层的计算机同样,这种分离的根源在于上个世纪中叶。 软件开发是一项很是专业的工做,计算机操做也是如此,二者之间几乎没有重叠。架构

     云计算的革命也引起了使用它的人们的另外一场革命:DevOps运动。实际上,这两个部门的目标和激励措施彻底不一样,每每相互冲突(图1-2)。 开发人员倾向于专一于快速发布新功能,而运营团队则关注长期稳定可靠的服务。当云层出现时,状况发生了变化。分布式系统很复杂,互联网很是庞大。操做系统的技术 - 从故障中恢复,处理超时,平滑升级版本 - 并不与系统的设计,架构和实现分离。分布式

      此外,“系统”再也不仅仅是您的软件:它包括内部软件,云服务,网络资源,负载平衡器,监控,内容分发网络,防火墙,DNS等。全部这些事情都密切相关,相互依存。编写软件的人必须了解它与系统其余部分的关系,操做系统的人必须了解软件的工做原理或失败。函数

     DevOps的起源在于尝试将这两个群体汇集在一块儿:协做,分享理解,分担系统可靠性和软件正确性的责任,以及提升软件系统和构建人员团队的可扩展性。

理解DevOps工具

      DevOps偶尔也是一个有争议的想法,不管是那些坚持认为它只不过是现有的软件开发良好实践标签的人,仍是那些拒绝在开发和运营之间增强协做的人。DevOps
其实是存在广泛的误解:职称?团队?方法论?技能?颇具影响力的DevOps做家John Willis已经肯定了DevOps的四个关键支柱,他称之为文化,自动化,测量和共享(CAMS)。另外一种分解方法是Brian Dawson称之为DevOps三位一体:人与文化,流程与实践,工具与技术。单元测试

     有些人认为云和容器意味着咱们再也不须要DevOps  - 有时称为NoOps的观点。咱们的想法是,因为全部IT运营都外包给云提供商或其余第三方服务,所以企业不须要全职运营人员。NoOps谬误是基于对DevOps工做实际涉及的内容的误解:使用DevOps,许多传统的IT操做工做都会在代码到达生产以前完成。每一个版本都包括监控,日志记录和A / B测试。 CI / CD管道会在每次提交时自动运行单元测试,安全扫描程序和策略检查。部署是自动的。控制,任务和非功能需求如今在发布以前实现,而不是在严重中断的狂热和后果期间实现。  
业务优点
     从业务角度来看,DevOps被描述为“经过利用云来自动化和实践加速发布周期来提升软件质量,以及实际停留在生产中的软件的额外好处”(The Register)。采用DevOps须要对企业进行深入的文化转型,这须要从执行,战略层面开始,逐步传播到组织的每一个部分。速度,敏捷性,协做,自动化和软件质量是DevOps的关键目标,对于许多公司而言,这意味着思惟方式的重大转变。
     但DevOps能够运行,而且按期研究代表,采用DevOps原则的公司能够更快地发布更好的软件,更好,更快地应对故障和问题,在市场上更灵活,并大大提升产品质量:
DevOps不是一种时尚;相反,它是成功的组织今天实现高质量软件产业化的方式,并将成为明天和将来几年的新基准。

 基础设施代码学习

     曾几什么时候,开发人员处理软件,而运营团队则处理硬件和在该硬件上运行的操做系统。如今硬件在云中,从某种意义上说,一切都是软件。 DevOps运动为操做带来了软件开发技能:工具和工做流程,用于快速,灵活,协做地构建复杂系统。与DevOps密不可分的是基础设施做为代码的概念。云计算基础设施能够由软件自动配置,而不是对计算机和交换机进行物理架设和布线。操做工程师已经成为编写自动化云的软件的人,而不是手动部署和升级硬件。交通不只仅是单向的。开发人员正在向运营团队学习如何预测分布式,基于云的系统中固有的故障和问题,如何减轻其后果,以及如何设计降级优雅且安全性低的软件。

     云的大规模扩展以及DevOps运动的以代码为中心的协做性质已将运营转变为软件问题。 与此同时,他们也将软件转变为操做问题,全部这些都引起了如下问题:如何在不一样服务器架构和操做系统的大型,多样化网络中部署和升级软件?如何使用基本标准化的组件以可靠且可重现的方式部署到分布式环境?

从而进入第三次革命:容器。
相关文章
相关标签/搜索