作者:陈耿
来源:大数据DT(ID:hzdashuju)
01 什么是云原生
到底什么是云原生?不同的企业对于云原生有不同的解释,当前在业界具有广泛影响力的云原生计算基金会(Cloud Native Computing Foundation, CNCF)认为,云原生是一类技术的统称,通过云原生技术,我们可以构建出更易于弹性扩展的应用程序。
这些应用可以被运行在不同的环境当中,比如说私有云、公有云、混合云、还有多云的场景。
云原生到底包含了哪些具体的技术呢?它包含了当前业界的一些热门的技术,比如容器、微服务、服务网格、Serverless、DevOps,API管理、不可变基础架构等。
通过云原生技术构建出来的应用程序,称之为云原生应用,底层基础架构的耦合比较轻,因此易于迁移,它可以充分地利用云所提供的能力,因此云原生应用的开发、部署、管理相对于传统的应用程序更加高效和便捷。
02 云原生计算基金会(CloudNative Computing Foundation, CNCF)
云原生计算基金会(Cloud Native ComputingFoundation, CNCF)成立与2015年12月11日,由谷歌与Linux基金会联合创办,成立这个非盈利组织的初衷为推广孵化和标准化云原生相关的技术:
- 推动云原生计算可持续发展;
- 帮助云原生技术开发人员快速地构建出色的产品。
CNCF成立最初只有十多家创始成员,包含谷歌、IBM、Red Hat、VMware……经过几年的发展,目前CNCF已经有超过300个会员,涵盖国内外的知名IT厂商,包括微软、亚马逊、苹果、阿里巴巴、华为等,发展地十分迅速。
云原生涉及到许多技术领域,每一个技术领域都有相应的工具、框架与平台,来帮助落地具体的应用。
CNCF维护了一个云原生技术全景图,在其中收集了和云原生技术相关的工具、平台和项目,全景图的内容十分丰富,可谓种类繁多、琳琅满目。通过这个云原生全景图可以快速地了解到每一个技术领域当中流行的工具。
03 云原生的作用
对于应用开发团队而言,原来云原生技术可以提升应用开发的效率,提升应用交付的质量。比如通过容器,技术开发团队可以更容易地获取开发所需要的环境与资源,开发出来的应用可以被运维团队更容易地部署和管理。通过DevOps的最佳实践,应用交付的速度和质量可以被有效的提升。
对于业务方来说,云原生的好处是所提交的需求,可以更快地被响应和实现。因为云原生技术可以有效地缩短应用交付的周期,让需求更快地变成代码,代码更快地变成线上的应用,最终为用户服务,实现价值。
云原生应用可以更好地弹性扩展,满足不同业务的需求。例如容器应用提供的应用自愈能力,可以帮助减少应用的停机时间提升用户的体验。
云原生技术可以提升应用开发的交付效率,缩短应用上线所需要的时间,开发和业务团队人员可以有更多的时间和精力进行业务创新,有效地提升团队的创新能力,从而提升企业在市场的竞争能力。
04 如何拥抱云原生技术
经过几年的发展,云原生这个概念已经得到了社区、企业和市场的广泛认可。从当前比较热门的云原生技术、容器来看,云原生已经在众多行业和领域,有了许多落地的案例,包括高科技、金融、制造、零售、教育、政府,甚至是军事等。
近日有报道称美军在f16战斗机上,成功地测试和部署了容器管理平台Kubernetes和服务网格Istio。
当一个企业拥抱云原生技术,具体要在什么方面来落实?CNCF有一个建议的技术路线图。这个图上列出了10个方面,比如说通过应用容器化,使得应用更易于迁移的交付,通过持续集成的区域部署提升云原生软件的质量,通过容器编排简化应用的部署。
05 云原生适合大企业还是小企业
大企业疑问,云原生是不是只适合一些小企业?小企业觉得云原生是不是只适合成熟的大企业?其实云原生对大企业、小企业都有帮助。
对于有着数字化转型战略和上云计划的大企业来说,云原生可以充分地利用云的优势,让企业在云上的投资获得最大的收益。
对于较小企业来说,通过云可以获取以往只有大企业才拥有的计算资源,小企业由于人员、财力等资源相对紧张,通过云原生技术倡导自动化和智能化的想法,可以提升产品开发的交付效率,把有限的精力放在核心业务的创新上,可以让企业更具竞争能力。
云原生涉及的技术领域众多,有6个方面值得大家重点关注。
1. 容器(Containers)
容器是一种轻量级的虚拟化技术,通过容器可以简化应用的部署、管理和交付。目前各大IT厂商已经投入了大量的资源进行容器产品和服务的研发,可以预见,未来容器将会是一种主流的应用交互手段,非常有前景。
2. 微服务(Microservices)
微服务倡导运用化整为零,实现各个功能的独立开发与部署、提升应用架构的灵活性,从而提升对业务的响应速度。在提倡敏捷的今天,微服务已经成为应用架构的一种默认的选择。
3. 无服务(Serverless)
无服务器架构并不是说,未来不再需要服务器,而是不再着重关注底层的基础架构,更多的注意力可以放在和业务更相关的一些逻辑实现上,例如一些函数的代码片段,平台自动根据负载按需部署和启动,以及自动伸缩代码逻辑来满足业务处理的需求。
4. DevOps
DevOps这个框什么都可以往里装,提供了指导思想、流程和工具,为应用的迭代更新保驾护航,运维行业的未来之路。
5. Service Mesh(服务网格)
Service Mesh是近年兴起的一个话题,在容器微服务的基础上,通过Service Mesh可以让用户更精细、更智能的去管理服务之间的通讯。ServiceMesh社区的旗舰项目Istio,当前的热度正在迅速的飙升。
6. 云(Cloud)
云是云原生的基础,没有云也就没有云原生。没有对云正确地理解,也不可能对云原生有正确的打开方式。对于非技术人员来说,至少要理解云的多种不同的服务模型,比方IaaS、PaaS、SaaS以及各种服务模型的应用场景和价值。
容器(Containers)、微服务(Microservices)、无服务(Serverless)、DevOps、ServiceMesh(服务网格)、云(Cloud)这6个方面,并不是孤立的,而是相互联系的。
- 云是一切的基础,为上层应用的运行提供了计算、网络、存储等基础架构资源;
- 容器在云的基础架构和应用之间,集有了应用和基础架构资源;
- 应用层面,用户可以根据场景来选择微服务架构或者是无服务器架构;
- 在复杂的交互场景当中,通过服务网格,可以对服务组建的通讯进行管控;
- 通过DevOps构建一个应用架构不断迭代更新的正向循环。
06 云原生与开源
最后,基于过去几年推广开源软件和解决方案的工作习惯,和大家强调一下云原生和开源的关系。目前云原生领域的大部分关键技术,例如容器引擎、容器编排Kubernetes、服务网格Istio,都来自于开源社区。
开源社区是云原生技术的创新根据地,因此企业拥抱云原生技术的过程,也是拥抱开源社区的一个过程。在不久的未来,经过云原生浪潮之后,IT企业当中的技术堆栈里面,开源软件的比例将会大幅提升,这将给市场提供许多新的机遇。
附视频:何谓云原生?如何走近云原生
https://v.qq.com/x/page/z0951nzlt5x.html
关于作者:陈耿(NicholasChen),架构师、技术男、IT宅,微软全球黑带团队云原生技术专家,红帽中国OpenShift团队技术专家,开源社区云原生技术忠实粉丝,著有《开源容器云OpenShift》《深入浅出Serverless》。
延伸阅读《深入浅出Serverless》