云原生时代的微服务

序言

4月24日,中国信息通信研究院主办的首届云原生产业大会在北京举行,在《云原生数字引领未来》的主题演讲中,阿里云容器服务总监易立表示:“云原生不但可以很好的支持互联网应用,也在深刻影响着新的计算架构、新的智能数据应用。以容器、服务网格、微服务、Serverless为代表的云原生技术,带来一种全新的方式来构建应用。”本段内容根据易立演讲内容整理而成。

云原生技术的优势

CNCF给出了云原生应用的三大特征:

  • 容器化封装:以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离。
  • 动态管理:通过集中式的编排调度系统来动态的管理和调度。
  • 面向微服务:明确服务间的依赖,互相解耦。

云原生包含了一组应用的模式,用于帮助企业快速,持续,可靠,规模化地交付业务软件。云原生由微服务架构,DevOps 和以容器为代表的敏捷基础架构组成。

这边引用网上关于云原生所需要的能力和特征总结,如下图:

云原生时代的微服务_第1张图片

从云原生的三大特征和图中我们可以清晰的了解到:云原生技术中,微服务和云容器结合将会使项目的部署和运维变得更方便、简捷。

云原生与微服务的结合

传统的Web开发方式,一般被称为单体架构(Monolithic)所有的功能打包在一个WAR包里,基本没有外部依赖(除了容器),部署在一个JEE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有逻辑。其架构如下图所示:

云原生时代的微服务_第2张图片

而微服务架构是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。在微服务推广实践角度来看,微服务将整个系统进行拆分,拆分成更小的粒度,保持这些服务独立运行,而应用容器化技术将微服务独立运行在容器中,将可以对这些服务进行集中管理。

容器化的出现,一定程度上带动了微服务架构。架构演化从单体式应用到分布式,再从分布式架构到云原生架构,微服务在其中有着不可或缺的角色。微服务带给我们很多开发和部署上的灵活性和技术多样性,但是也增加了服务调用的开销、分布式系事务、调试与服务治理方面的难题。

所以Spring Cloud就是为了解决JVM中的微服务架构遇到的难题,其在JVM中非常强大。
云原生时代的微服务_第3张图片

Spring Cloud整体架构图

从上图Spring Cloud组件的架构可以看出在微服务架构中所必须的组件,包括:服务发现与注册、熔断机制、路由、全局锁、中心配置管理、控制总线、决策竞选、分布式会话和集群状态管理等基础组件。

但Spring Cloud对于管理方面却有所欠缺,所以我们接下来介绍一下云容器。

云原生时代的微服务_第4张图片

云容器必不可少

1、云容器引擎的优势

云容器引擎是基于业界主流的Docker和Kubernetes开源技术构建的容器服务,提供众多契合企业大规模容器集群场景的功能,在系统可靠性、高性能、开源社区兼容性等多个方面具有独特的优势,满足企业在构建容器云方面的各种需求。

它简单易用、高性能、高可靠、开放兼容的特点也为其吸引了大量的忠实粉丝。借助云容器引擎,您可以轻松部署、管理和扩展容器化应用程序。

2、云容器引擎对比自建Kubernetes集群

对比项 自建kubernetes集群 云容器引擎
易用性 自建kubernetes集群管理基础设施通常涉及安装、操作、扩展自己的集群管理软件、配置管理系统和监控解决方案,管理复杂。每次升级集群的过程都是巨大的调整,带来繁重的运维负担。 简化集群管理,简单易用。借助云容器引擎,您可以一键创建和升级Kubernetes容器集群,无需自行搭建Docker和Kubernetes集群。您可以通过云容器引擎自动化部署和一站式运维容器应用,使得应用的整个生命周期都在容器服务内高效完成。您可以通过云容器引擎轻松使用深度集成的应用服务网格和Helm标准模板,真正实现开箱即用。您只需启动容器集群,并指定想要运行的任务,云容器引擎帮您完成所有的集群管理工作,让您可以集中精力开发容器化的应用程序。
可扩展性 自建kubernetes集群需要根据业务流量情况和健康情况人工确定容器服务的部署,可扩展性差。 灵活集群托管,轻松实现扩缩容。云容器引擎可以根据资源使用情况轻松实现集群节点和工作负载的自动扩容和缩容,并可以自由组合多种弹性策略,以应对业务高峰期的突发流量浪涌。
可靠性 自建kubernetes集群多采用单Master节点,一旦出现故障,集群和业务将不可使用。 服务高可用。创建集群时若“高可用”选项配置为“是”,集群将创建3个Master节点,当其中某个或者两个节点故障时,集群依然可用,从而保障您的业务高可用。
高效性 自建kubernetes集群需要自行搭建镜像仓库或使用第三方镜像仓库,镜像拉取方式多采用串行传输,效率低。 镜像快速部署,业务持续集成。云容器引擎配合容器镜像服务提供容器自动化交付流水线,您无需编写Dockerfile与Kubernetes Manifests,基于ContainerOps流水线模板可以自定义企业级容器DevOps流程,镜像拉取方式采用并行传输,大幅提升容器交付效率。
成本 自建kubernetes集群需要投入资金构建、安装、运维、扩展自己的集群管理基础设施,成本开销大。 云容器引擎成本低。您只需支付用于存储和运行应用程序的基础设施资源(例如云服务器、云硬盘、弹性IP/带宽、负载均衡等)费用和容器集群Master管理节点费用。

3、Spring Cloud VS Kubernetes

云原生时代的微服务_第5张图片
Spring Cloud和Kubernetes有很大的不同,Spring Cloud和Kubernetes处理了不同范围的微服务架构技术点,而且是用了不同的方法。Spring Cloud方法是试图解决在JVM中的微服务架构要点,而Kubernetes方法是试图让问题消失,为开发者在平台层解决。Spring Cloud在JVM中非常强大,Kubernetes管理那些JVM很强大。看起来各取所长,充分利用这两者的优势是自然而然的趋势了。

4、基于Kubernetes的Serverless容器服务

  • 10月11日,在2018华为全联接大会上,华为云正式商用发布全球首款基于Kubernetes的Serverless容器服务——CCI(Cloud Container Instance)。
  • 华为云是全球首批Kubernetes认证服务提供商(Kubernetes Certified Service Provider,KCSP),是国内最早投入Kubernetes社区的厂商,是容器开源社区主要贡献者和容器生态领导者。
  • 华为云也是CNCF云原生计算基金会的创始成员及白金会员,云容器引擎是全球首批通过CNCF基金会Kubernetes一致性认证的容器服务。

华为云容器实例服务(CCI),是业界首个商用的基于Kubernetes编排引擎的Serverless容器服务,能提供面向通用场景的CPU容器实例和面向AI计算场景的AI容器实例,同时在运维效率、计算性能、计算成本、产品成熟度和开放性上具备领先优势。

云原生时代的微服务_第6张图片

Serverless容器服务

华为云容器在大规模客户请求的场景下,支持容器实例秒级弹性伸缩,充分保障业务快速响应客户请求。并且全面支持华为Ascend(昇腾)系列AI芯片和GPU芯片,在NUMA架构裸金属、IB高速网络、RoCE等硬件联合加速下,AI计算性能可提升3~5倍以上。按需按秒计费,随启随用。同时支持多种计价模型,用户可以根据业务场景自主选择最优的计价模式,以最低的成本完成企业IT诉求。

华为云容器服务支持Tensorflow、Caffe等主流深度学习框架,并在华为云EI的深度学习、推理平台、人脸/图像/文字识别等多个服务得到广泛应用与验证。并全面支持Kubernetes的原生接口和通用Docker镜像格式,与Kubernetes和Docker开源生态无缝对接,可以实现业务一键式上云,降低业务云化门槛。

更关键的是,华为云容器全面支持华为在全联接大会上最新发布Ascend昇腾系列910、310AI芯片,可提供充裕且经济的AI计算能力,真正实现普惠AI,让各行各业都能用得起,用得好,用得放心!”

5、体验云容器

这下我们就来体验一下华为云容器,看看它到底多么优秀!

1、首先我们来到云容器后台管理主界面:
云原生时代的微服务_第7张图片
如图所示,管理界面包含了挺多功能,像工作负载、配置中心、镜像仓库等等;有木有一种在此处你就能一统三军的感觉。

2、镜像仓库制作简单

云原生时代的微服务_第8张图片

3、管他那么多,先部署一个项目上去再说。

我就勉勉强强的把自己的博客项目部署了上去。效果还不错。

云原生时代的微服务_第9张图片

4、后期运维便捷
云原生时代的微服务_第10张图片

写在最后

其实可以这么说:“云原生时代,是新的时代,是一次互联网技术的革命”。

云原生不但可以很好的支持互联网应用,也在深刻影响着新的计算架构、新的智能数据应用。以容器、服务网格、微服务、Serverless为代表的云原生技术,带来一种全新的方式来构建应用。
并且,云原生也在拓展云计算的边界,一方面是多云、混合云推动无边界云计算,一方面云边端的协同。云原生时代,也是云厂商更好发挥作用、为客户提供更多价值的时代。云厂商需要帮助用户最大化利用“云”的能力,最大化发挥“云”的价值,成就企业创造商业价值。华为云在这方面做的就很不错,并且华为推出的云服务产品主要针对国内市场,最终目标是成为未来云服务全球最主要的供应商之一。

参考文章

  • https://yq.aliyun.com/articles/699757
  • http://dockone.io/article/2991
  • https://www.martinfowler.com/articles/microservices.html
  • https://bbs.huaweicloud.com/
  • https://www.sohu.com/a/260148086_99925426

你可能感兴趣的:(云原生时代的微服务)