对于云原生社区而言,2019年无疑是关键的一年,层出不穷的新闻让人们眼花缭乱,难以从中甄别正在发生的事情。但是,如果您退后一步观望这些内容,您将发现2020年云原生将出现4大关键趋势。
2014年6月,Google宣布拥抱Docker,并且开发一种全新的开源工具来管理计算基础架构上的工作负载。这一举措被誉为是一场革命,以至于《连线》杂志的记者在标题上写道:“Google开源了它在云计算领域的秘密武器!”
这一工具即是Kubernetes,它将开启云计算技术的巨大变革,并从中催生出一个庞大的技术社区。彼时,Google、Microsoft、阿里巴巴和AWS正就云计算市场份额展开激烈的争夺战,Kubernetes将在当中起到极为重要的作用。
Kubernetes的功能非常简单。Docker使交付标准化的可移植软件变得容易:只要您安装了Docker,将您的代码、库和配置放入Docker容器中,即可在任意基础设施上运行它。现在,您拥有了一系列应用程序,这些应用程度打包在多个容器当中,并且在数据中心和云环境上的一系列异构计算机上运行。谁来辨别哪个容器在何处运行?这种异构硬件将如何充当一台统一的计算机来运作呢?这就是所谓的业务流程,Kubernetes将为您接管它。
当然,这一想法并不新鲜。但是Kubernetes承诺让开源社区从Google数十年的经验当中受益。Google的经验是通过廉价的商品基础设施来运行密集型工作负载,并从中优化。这恰恰是许多企业的梦想,他们可以获得Google级别的技术,在此基础上开发他们的电子游戏。
这也成为了Google出色的市场策略。标准化编排使用户更容易地运行Docker化的工作负载,这将鼓励他们过渡到Docker新范例的标准。Docker化“云原生”工作负载比整体式传统应用程序更易在云中运行,并且它们也更容易在云之间迁移,成为“可移植”的内容。这意味着,企业既可以将其计算迁移到云平台,扩大云计算市场;同时,又可以从一个云平台迁移到另一个云平台,人们从AWS迁移到谷歌云平台变得更加容易。间接地,Kubernetes云供应商的兼容性也在变得标准化。
Microsoft Azure原本采用AWS的服务,在2014年8月他们迅速拥抱了Kubernetes。而Amazon花了4年时间才能提供托管的Kubernetes服务。
发展数年后,用户对部署Kubernetes的态度变得更加谨慎;在技术方面,Kubernetes也变得愈加稳定。在最初的POC之前,企业已经意识到运行Kubernetes需要非常专业的技能和大量配套软件。
Google将Kubernetes捐赠给了一个新成立的基金会,即云原生计算基金会(Cloud Native Computing Foundation),该基金会的任务是托管开源项目,以构建“全球技术基础设施的关键组件”。社区正不断地发展壮大,一年一度的KubeCon也从1000人的小型活动演变为遍布全球的12,000人参加的大型活动。
那么,到2020年,云原生的趋势又是怎样的呢?
一、深入企业
最初,Kubernetes只是运用在一些小型POC项目当中,但现在Kubernetes已经被企业广泛大规模采用。
在网络安全公司Stackrox的一次民意调查当中,2019年是Kubernetes在容器编排中占据主导地位的一年:86%的受访者用它来进行编排工作,远高于2018年的57%。但是这一调查中仍旧缺失的内容是,没有在容器中运行,而是在传统体系结构中保留工作负载的比例是多少。另一方面,企业Kubernetes平台Diamanti的说法是:“与2018年相比,我们清晰地看到容器管理正在进入企业IT主流。”
尽管Rancher和CoreOS等公司都在为企业提供商业级别的Kubernetes解决方案,但仍有一些企业的专项技术需求亟待满足,比如权限、治理、成本控制和集成等。
在2019年,也涌现了大量此类型的新闻:
- Open Policy Agent是一种开源合规性代码解决方案,已捐献给CNCF。此后不久,该项目的创始人宣布,他们的初创公司Styra启动并获得了1400万美元融资。作为代码的合规性实质上意味着用户能够在代码中定义规则,从而使他们更易于以可拓展和自动化的方式进行管理。
- Kubecost解决了大规模管理基础架构成本的问题。
预计在2020年,将有越来越多的企业级初创企业发布利用Kubernetes解决权限、治理、单一虚拟管理平台和成本控制的消息。
二、混合云正式成为Kubernetes的一部分
从一开始这一趋势就非常明显,Kubernetes将跨越不同的云供应商运行。尚不清楚的是,混合云本身是否会直接出现在我们的可选择范围内,这一答案将取决于云供应商巨头:他们是会选择拥抱混合云,并允许其产品与本地Kubernetes解决方案兼容,还是需要大量的集成或胶合产品才能使用,增加用户的使用成本呢?
在Microsoft这一意图非常明显,Microsoft Azure是最早提供混合云的主要云供应商。自2016年以来,Azure Stack已允许用户使用类似于Azure的技术来运行私有数据中心,并通过通用界面将客户的Azure连接到公有云和私有云。直到11月预览Azure Arc时,它才不包含Kubernetes产品。用户现在可以跨Kubernetes集群运行容器,无论它们位于Azure,其他云还是私有基础设施上,并通过通用的Azure界面管理所有容器。
Amazon也在2018年底加入这一队伍,现在正逐步推出AWS Outposts。这一产品将组合Amazon硬件/软件堆栈直接放置到客户的数据中心,以与AWS进行交互。
Google似乎一直不愿意接受混合云技术,直到去年。Google于4月推出了Anthos套件,用户可以使用它的Kubernetes解决方案——Google Kubernetes Engine(GKE)的优势,无论集群托管在Google或任意一家云供应商还是办公场所。
2019年是混合云获胜的一年,现在它已经获得了三个云供应商巨头的支持。混合云Kubernetes将于2020年正式推出。
这也意味着Microsoft和其他云供应商相比优势正在逐渐消失。这是一个大问题,Microsoft的云产品在许多方面都比其他云供应商差,机器学习不如Google,云平台种类不如Amazon。
三、云原生的安全性
即便Kubernetes已经被企业采用,不限于POC,并且可以在多个环境中运行。然而,Kubernetes在安全性方面承受着巨大的压力。原来在安全程度较低的POC项目当中,部署测试运行良好,但是一旦换至生产级别的计算运行则需要更高的安全级别。
为了满足这一需求,新一股的网络安全创业浪潮正在崛起。 近10年的趋势显示,开发人员和运营团队已经转向了敏捷和DevOps范例。这意味着代码的发布频率很高、周期很快,部署也很快。持续的代码发布和持续的代码部署,这一切将变为增量或者是连续式的。网络安全也应该是连续的。旧的使用笔测试器测试代码的方法已经不再起作用了,持续更新的软件需要持续的网络安全。
另一种大趋势是将网络安全某种程度上掌握在开发人员自己手里。 随着部署到生产环境越来越多地掌握在开发人员手里,而不是掌握在脱离开发的运营团队手里,开发工具让开发人员控制和提高其应用程序的安全性是合乎逻辑的。
这些新闻也证实了以上两个观点:
- Snyk花费1.5亿美元帮助开发人员发现其代码、容器或Kubernetes集群中的漏洞。
- Anchore获得2000万美元的融资,用于构建“旨在Kubernetes本地上运行的全面容器安全平台”。在作为美国国防部DevSecOps参考架构的要求添加之后,它已经得到了广泛的验证。
希望将来有更多帮助开发人员评估其应用程序的安全性工具出现,并且将云原生安全的内容交给相关的专家进行完善。
四、边缘计算
在过去两年里,我们听到了许多关于“边缘”的消息。我们所处的时代,连汽车和冰箱都是计算机程序,数据传输量也在不算增长,那么为什么不在靠近数据的地方运行计算呢?何必再到数据中心去完成呢?在边缘进行计算,然后再将计算结果集中在一起,既可以减少带宽需求,又可以提高安全性和隐私性并优化其计算使用的过程。
事实上,包括Kubernetes在内的软件栈并不一定要在数据中心之外的异构计算环境上运行,例如智能手机或者智能手表,它们通常功能较弱,并且能够处理较少的开销。
那么,我们如何处理这个堆栈呢?
2019年有许多相关的新闻,包括:
- 业界领先的商业Kubernetes供应商Rancher宣布发布轻量级Kubernetes发行版k3s,专为无人值守、资源受限、位置偏远或物联网设备内的生产工作负载而设计。
- Virtual Kubelet 1.0,一个允许您将Kubernetes扩展至无服务器的容器环境尤其是边缘基础结构的系统。
- 堆栈的边缘已经成熟,预计电信公司或设备提供商会陆续发布重大的消息。
这四大关键趋势将在2020年重塑云原生,2020年是令人兴奋的一年。
作者简介:
Malo Marrec是一位企业家,目前正探索云原生空间的项目。此前,他曾在风险投资公司Elaia Partners工作,并在旧金山与人共同创立了一家AI基础设施初创公司。