距离 8 月 26 日由 Pivotal 携手极客邦科技在北京举办的中国首届 Spring Summit 2017 还有半个多月时间,伴随越来越多嘉宾、演讲话题的披露,Spring Summit 2017 逐渐揭开神秘面纱。火爆的 Spring、Cloud Foundry、微服务、Cloud Native 不仅仅是浮于表面的“谈资”,更因为众多国内外技术大咖齐聚 Spring Summit 2017,让我们有了近距离聆听这些概念如何落地、有哪些失败和成功案例、从实践出发的思考的机会。
从官网日程来看,Keynote 将聚焦企业数字化转型战略的制定和执行,三场平行分论坛既邀 Spring 社区大牛进行热门技术的深入解读,也有国内客户使用 Spring 技术的现身说法。除论坛之外,主办方还设置了晚场活动——让大家近距离与讲师们进行深入交流;圆桌论坛——邀请企业级客户介绍在数字化转型中的经验;以及 Live Demo——Pivotal 技术团队和其行业合作伙伴一起,带来技术与行业热点应用的展示和互动。
作为 Pivotal 技术推广人员,Michael Coté 一直担任 451 Research 和 RedMonk 的行业分析师;过去在 Dell 工作期间,曾负责软件和云计算领域的公司战略和并购工作;更早之前,他一直从事编程工作达十年之久。在 Spring Summit 2017 上,他将带来《走出“生存不是强制性的”思维桎梏》的演讲,从实践角度提供在企业中实施 DevOps 的建议,也算给过热的 DevOps 泼泼冷水。
为了让 Michael Coté 的精彩观点提前被了解,InfoQ 记者对 Michael Coté 进行了采访,当然话题再精彩也抵不过来现场近距离聆听。点击文末 「 阅读原文 」速速报名,把数十位嘉宾精彩内容一网打尽,我们在 Spring Summit 2017 等你呦!
Michael Coté:“云”是一个术语,其涉及面很广,有时候它似乎意味着“IT 中的一切新兴事物”。我认为最为贴切的定义应该是所有的自动化、虚拟化 / 容器和基础设施技术。其中,用于运行基础设施即服务(IaaS)“云”,如 AWS,Azure 和 Google Cloud 等供应商。将软件即服务(SaaS)视为云也是非常有用的。对于那些应该将所有打包软件(从电子邮件到 ERP)从内部部署到 SaaS 模型的组织来说,这是非常重要的。
当这些服务是以公有云的形式提供的时候,用户企业不需要运行、管理和维护所有硬件。你可以通过自助的形式自动地获取资源,而无需请求资源并等待其他人响应。也就是说,你获取新服务器的需求并不需要先填写申请 ticket,也不需要等待别人给你分配了;你无须其他人许可便可以在你的邮箱或者 CRM 系统中添加新用户。这意味着人们日常工作的效率更高,因为他们节省掉了等待的时间。同时,IT 运行和管理变得集中化和标准化,比如不需要花费精力和财力维护不同类型的服务器。高效、经济,但是人们往往不能及时转变,采用的还是数十年前繁琐的操作。
还有 Platform-as-a-Service (PaaS)。2009 年左右,业界开始有很多云究竟怎样分类的思考争论,最终美国国家标准与技术研究院(NIST)给出了它的定义。
https://www.nist.gov/news-events/news/2011/10/final-version-nist-cloud-computing-definition-published
这里面定义的“云”是中间件、框架、集成和运行时工具等一系列为运行不同的用户软件所组成的技术栈。一些早期的 PaaS 以 SaaS 的插件形式存在,使用者可以为其 CRM 系统编写自定义页面,现在看来这种形式其实类似于 Java 应用程序服务器,LAMP 堆栈和其他“运行时环境”。与云广义定义一样,在 PaaS 中有很多标准化来提高效率,尽可能多的自动化和自助服务工作流程。例如,使用 Pivotal Cloud Foundry,开发团队可以使用命令行工具将其应用程序部署到生产中:他们不需要创立 IT 票据、审批和配置服务器和网络等等。 PaaS 为他们完成所有这些。
到目前为止,我所谈论的大部分都是公共云。 “私有”云只是意味着公司需要负责 IT 组织,自己运行和管理一切。 这样做,仍然可以从云技术和硬件标准化方面获得巨大的效率,但您必须承担运行所有这些责任的负担。 许多组织认为这种负担是值得的,所以运行私有云。不过大多数人都希望,最终停止管理自有的数据中心,将大部分的 IT 迁入公共云。
那么如何“云原生”呢?我认为 云原生本身就是 DevOps 和敏捷、IaaS 和 PaaS、商业模型和定制软件三个维度的组合。其中商业模型需要专注于营收增长(最好是盈利的),并且可以与软件设计效果、运行效率等正相关,如果这里面没有涉及到可定制化的软件,那么就不是云原生。
简单而言,DevOps 指的是快速发布软件的工具和方法(即使不是日常,也可以做到周常),需要确保软件在生产环境可扩展、易于管理。我个人更倾向于将敏捷开发归类为如今的 DevOps 中,比如持续集成和交付、微服务架构和其他许多又酷又新的工具。IaaS、PaaS 都是可以用来运行云原生应用的平台,并且使用者可以在生产环境中进行操作。
IaaS、PaaS 亦或是现在正在兴起的 Serverless 都是技术手段;而云原生是理念文化范畴,采用了包含 DevOps 和敏捷开发的作风。
不过,云原生还有一种更为流行的定义,将云原生等同于容器和容器编排技术。我确实认为容器技术重要甚至至关重要,但是我认为这样的定义过于狭隘,不能代表云原生。
最后,企业必须真正知道如何通过使用快速反馈循环来发明新业务模型和功能,从而每周发布软件的功能。 也就是说,企业需要“创新”,尝试新事物赚更多的钱,在保留现有客户的基础上,获得更多的客户。 如果业务需求是固定且永远不会改变,所有工作都可以以“云原生”的方式运行;最好使用和创造成本很低,你甚至几乎可以不用上班;但是实际上这样的 IT 架构可以让你挣更多的钱。更多关于云原生的详细剖析在我们的官网上:
https://pivotal.io/cloud-native
Michael Coté:没错。不过,实现了这两个巨大的目标之后,下一个目标是可以更快速的尝试新的事务,或者简化将做事情的流程。你听到人们在讨论“速度”,这是有价值的能力:能否将新的 app 趁热地快速推向,对公司在行业市场的布局至关重要。并且,你有更多的时间去经历和去学习,你可以去尝试新的东西,你可以失败、失败、再失败直到正确位置。只有当失败的成本更低,你才会尝试更多的创新。这就是厂商和机构们所锚定的:以全新的、更好的方式去做事情。其实我是想说:有谁完全满意大公司或政府的软件开发运作方式呢?我们都非常愿意去改善,将大量高质量的软件置入数字化模拟进程是非常重要的第一步。
Michael Coté:Home Depot 是一个很大的五金器具商店,在全球有 2200+ 家分店相关物品应有尽有。有一种可刷漆的桌子,客户可以根据自己的房间、天花板等进行配色。这样的个性化卖点很好,但是却带来了麻烦——有些时候客户想要的颜色并不能完美匹配,Home Depot 想确保提供的颜色恰好是客户的订单颜色。这个流程中涉及到店员、油漆混合师,当客户说想要哪种颜色的时候,流程启动;在流程中有一个软件程序,它用于存放店员们告知的客户们想要的颜色配方,那么油漆混合师就可以直接工作了。
看起来似乎没有问题,那为什么还会出错呢?有一部分原因是软件并没有设计得足够好,导致店员们不喜欢使用这个软件。于是,Home Depot 采用了云原生的方式修复软件;因为他们使用了 Pivotal Cloud Foundry,可以快速且高效地每周部署,同时可靠地运行。这使得他们落地 DevOps 和敏捷开发,通过小批量的改进方法提升软件。如果新特性成功地提升了颜色定制流程,就进行下一个改进;如果没有提升,甚至得到了更宝贵的失败经验教训,则会转而进行新思考、新尝试。每周都做这样的变更,你回开始明白最终得到的是真正有帮助作用的软件,而不是最初设想和计划的那样。这两个版本往往相去甚远。
这里面我提到了所有云原生的元素:IaaS、PaaS 可以自动化、提速,将整个预备和运行周期降低到一周;采用以用户为中心方式去迭代软件;可以为公司业务带来持续增长的商业驱动力。
更多的案例可以参见如下链接:
(https://www.youtube.com/watch?v=9FKJ_cyGT1o), Comcast, Liberty Mutual
(https://www.youtube.com/watch?v=STx6L0r_juk),HCSC
(https://www.youtube.com/watch?v=rGNlSCquZIc), JPMC,
the US Airforce (https://cote.io/2017/07/20/us-air-force-pivotal-digitizing-flight-ops-together-2-7m-contract/),
还有一些不愿透漏姓名的公司,这么多实例的目的都是一样的,尽可能地自动化一起,落地一个可在生产环境中弹性伸缩平台,运行各种可以承载商业业务需求的定制化软件。
Michael Coté:或许,我有偏见,但是首先要弄清楚:这家公司的商业策略是什么;为了达到预期的商业目标,它想做什么、怎么做。通常, 在真正完成的成果面前,大多数策略都是空话废话:比如“提高用户服务”、“扩大国际化市场份额”,知道如何实现这样的目标才是重要的。你需要专业的 IT 公司来帮助你,云原生的目的是促进商业,不仅仅是降低现有的 IT 开销(比如,2000 年左右将 IT 资源虚拟化是非常炫酷的,但是这个技术哽住的是节约成本而不是增加收入)。
一旦有来自商业的驱动力,你就需要攻克一系列的小项目,选取二三个开始工作,注意不是重要主干。以上文提及的 Home Depot 的染色桌子为例,触及不是核心项目,既不是存货管理系统也不是他们的.com 网站。你集合一些真正天才的 DevOps 和敏捷开发团队,小批量、以周为单位地工作,然后所有都运行在 Pivotal Cloud Foundry(公有云或私有云中)。我们会在 Pivotal Labs 提供咨询服务,以帮助使用和运维。如果没有这样的强烈愿望,也可以使用 Spring 编程,因为 Spring 很多项目是与 Pivotal Cloud Foundry 高度集成的。
接下来,当学习到了新的云原生过程实践知识,你会不断扩展。一些公司会建立单独的组织(比如‘Labs’实验室一类),尽量避免对架构进行大规模重组;但是其他的公司则直接对现有架构进行调整。
Michael Coté:这是个好问题,我试着将问题变简洁。建立自己的平台,意味着要筛选、编写代码、不断完善大量的组件。下图是摘抄自 Pivotal 的白皮书
https://content.pivotal.io/white-papers/the-upside-down-economics-of-building-your-own-platform
最开始,没有人有概念自建平台需要多少个功能、子系统和平台中要运行的组件。建立自己的平台,意味着首先你要实现上图中的所有内容,随后你需要维护和改善它。根据我们的经验和预测,自建平台需要花费 2 年时间,并且这只是 1.0 阶段,雇佣工程师等每年需要花费 1.4 亿美元。很有可能的是,你需要不断根据新的需求加入新的功能。这就像从零开始建立自己的操作系统和文件系统:为什么要自讨苦吃呢?
Michael Coté:Pivotal Cloud Foundry 归属于 PaaS 范畴,即构建在 IaaS(VMare、OpenStack、AWS、Google Cloud 或 Azure 等)纸上。首先,它可以为应用自动分配预计的服务器、网络和存储资源,如此用户们只需在云上编写自己的软件。同时,它还表明了在云中运行应用,然后为应用部署、配置和集成所需相应的中间件和服务(数据库、身份访问验证、监控工具等)。它同时还有所有种类的生产工具,服务器的健康状况检测和修复,微服务治理,A/B 测试,灰度发布,更新所有软件(包括 Pivotal Cloud Foundry 自身)。下面是一个组件组成全局图。
https://pivotal.io/platform#architecture
https://www.youtube.com/watch?v=jRsBaaFYoUk 是一个解释 Pivotal Cloud Foundry 的视频链接,虽然有一点点旧了,但是还是很有参考价值的。
Michael Coté:是的,就像构建一个 pipeline 一样,如果你没有一个足够好的云平台,我认为事情没法顺利运行。
我们曾经配合的一个大公司采用云平台之后,研发周期从 123 天变成 23 天。这样的提升速度对使用了 Pivotal Cloud Foundry 的公司很常见,例子不胜枚举。比如美国康卡斯特电信公司(Comcast),曾经需要 4-6 周完成一个测试环境,可是现在只需要 10-15 分钟就可以搭建自助服务终端。
更多信息可以参考:https://cote.io/2017/04/28/cloud-native-at-comcast-working-with-pivotal-highlights/。
一个 IT 部门的经历也是类似的,在没有采用 Pivotal Cloud Foundry 之前,开发团队要花费 3 到 6 个月获得开发环境才能开始工作,但是使用了云平台之后他们就可以立刻开始编程,并且将软件在四个月内打包。
更多信息可以参考:http://itblog.emc.com/2016/01/04/application-delivery-platform-as-a-service/
使得 Pivotal 变得独特的是,充分利用技术优势帮助企业转型。我们帮助他们使用 Pivotal 通过云原生的方式开发软件,并且确保他们能够通过小批量时间任务进行敏捷 /DevOps 化。 来自 AllState 的 Doug Safford 说,在没有采用 Pivotal 的云原生平台之前,开发者们只发挥了 20% 的工作能力,如今可以高效工作,发挥 80%-90% 的产能。
http://www.altoros.com/blog/top-100-quotes-from-the-cloud-foundry-summit-2016/
Michael Coté:厂商和云服务供应商们基于开源项目搭建自己的技术堆栈,这是非常重要的创新模式。有时他们售卖的是 open source(开源),但是更经常的是他们售卖的是 open core(开放的内核);开源代码只是其中的组成部分,而“closed source”(闭源)才是真正的商业价值所在。这是 Pivotal 和基本上所有的 IT 厂商们采用的商业模式。
开源对软件开发有着巨大的积极作用,比如 Linux 系统。开源几乎为云上的所有都奠定了基础。虽然 Amazon 和 Google 自己写了好多没有开源的软件;但是我不确定如果没有开源的 Linux 或者其他库包,他们是否还能如今天这般成功。今天很多知名的软件都是开源项目,大量的各种各样创新不断涌现。当然,不是所有的开源项目都是好的,但是你真的可以找到用来构建使用的相当不错的项目。
为回馈 InfoQ 读者,Spring Summit 购票推出限时买五免一优惠活动!相当于每张票优惠 113 元!报名方式:通过电话(400-135-8900)、邮件(springsummit@pivotal.io )联系 SpringSummit 会务组,即可购买优惠团体票。
现在登录 Spring Summit 2017 官网(www.pivotal-china.com),可以第一时间了解大会日程和嘉宾介绍。