zoukankan      html  css  js  c++  java
  • 普元云计算-微服务相关技术概览

    今天给大家走马观花的聊一下微服务相关的热门技术。

    搜狗截图16年07月14日1436_3.jpg

    如果问什么是微服务?那就很难回答了,而且容易引起争论,因为微服务不是一个技术定义;如果问微服务是什么?具备哪些特征?则比较容易回答,微服务是一种架构设计风格,微服务的特征,我们尊敬的布道师——马丁富勒大神已经给出了很好的总结。

     搜狗截图16年07月14日1508_12.jpg

    简单的说,就是一组被集中管理的、规模较小的服务,每个服务只完成内聚性很强的一组功能,并通过网络彼此协作,时间所限,这里就不对每一条展开解释了,以后有机会可以单独聊下这个话题。这里先把原文链接和一份不错的翻译推荐给大家,大家感兴趣的话可以看一下,原文 http://martinfowler.com/articles/microservices.html,翻译 http://www.36dsj.com/archives/42305(复制地址在游览器打开)

    那么微服务为什么这么火呢?微服务到底带来了哪些业务价值?太多了,我们随便列一下~~

     搜狗截图16年07月14日1508_13.jpg

    还有一个常见问题就是,微服务和SOA到底是啥关系,这又是一个引起很多争论的问题,对这个问题,我认为最好的解答来自Nguyen Quang Tung

    搜狗截图16年07月14日1509_14.jpg

    英文还挺押韵,简单的说就是SOA讲的是多个系统之间的集成,微服务讲的是系统内部的架构风格。

    前面介绍了微服务的概念和价值,接下来介绍一下常见的微服务实现框架

    最成功的就是Netflix,就是拍纸牌屋的那家公司,开源出来的一系列项目,统称为NetflixOSS,OSS就是Open Source Software的缩写了。Netflix以前是出租光碟的,现在摇身一变成了微服务时代的领军人物,即使是Java领域最成功的微服务框架——Spring Cloud,也很多参照的Netflix OSS,实在是太励志了!

     搜狗截图16年07月14日1509_15.jpg

    我们可以看到,无论是Netflix OSS和Spring Cloud,都提供了服务注册和发现、集中配置、集中日志、服务网关和路由、容错/熔断等能力,这些能力也是微服务框架的必须能力。

    这里每一个模块都可以讲上几小时,所以也不展开讲了,先简单看一下Netflix OSS的一个比较有意思的模块,业务容错/熔断模块Hystrix

     搜狗截图16年07月14日1509_16.jpg

    上图是Hystrix的调用流程,开发微服务模块的时候,引用下Hystrix,然后按它的框架实现,就可以让Hystrix把外部对你的微服务调用都管理起来,支持同步、异步和React模式,如果调用出错、超时或者过载,Hystrix会帮你做出相应的保护措施。下图是Hystrix的控制台,可以看到各个微服务的资源使用情况、调用次数、响应时间都数据。

     搜狗截图16年07月14日1509_17.jpg

    其他模块我们就先不看了,后面我们可以安排专题讨论,挨个模块讲一遍~~

    提到微服务就不能不提容器技术,容器技术对微服务架构的落地起了极大的促进作用,原因很简单,一个完整的操作系统太大了,如果里面只跑了一个微服务,那操作系统本身的资源开销,相对微服务,就太大了,而容器为微服务提供了一个轻量的运行环境。

    那么我们看一下Linux容器的核心技术:

     搜狗截图16年07月14日1509_18.jpg

    容器“本身”其实指的是LinuxNamespace和CGroup这两个技术的组合,其他像Lxc、Lxd、Docker等,其实都是容器的用户空间操作工具。

    接下来讲的是当今最热门的容器管理工具,Docker

     搜狗截图16年07月14日1509_19.jpg

    环境的轻量化,其实是容器的价值,Docker只是做了一个非常易用的容器管理工具,环境的版本化和可堆叠,是Docker的创新之处,环境的版本化使环境可以像代码一样管理,环境的可堆叠使环境易于修改和组装。

    当然,这里说的Docker指的是Docker的核心功能,即Docker Engine,Docker公司还发布了Docker Swarm、Docker Compose等容器管理工具,已经成长为一个数据中心级的容器管理解决方案厂商。

    提到Docker就不能不提Docker的欢喜冤家Rkt,本来Docker和底层的操作系统(如后面要讲到的CoreOS)、上层的容器编排技术(如后面要讲到的Kubernetes)是和平共处互相合作的,但是燕雀焉知鸿鹄之志,Docker想自己搞定端到端的解决方案,功能越做越厚,这样就很难再和上下游对接了,所以CoreOS和Kubernetes只好另起炉灶,搞了自己的容器管理工具Rkt,并定义了相应的技术标准——AppC

    搜狗截图16年07月14日1509_20.jpg

    Rkt相比Docker,主要的改进在安全性上。而AppC对应用封装的考虑更多一些。

    接下来再介绍下为容器而生的操作系统——CoreOS

     搜狗截图16年07月14日1509_21.jpg

    CoreOS的最大优点是天生的集群化、容器化和可靠的自动升级,类似的操作系统还有RancherOS、Redhat的Atomic和VMware的Photon,这里就不一一列举了。

    在容器技术栈中,我们最后看一下Kubernetes

     搜狗截图16年07月14日1509_22.jpg

    Kubernetes是个基于容器的微服务治理框架,可以帮助用户注册和发布微服务、通过自动故障恢复保持微服务的可用性、为微服务提供自动伸缩和滚动升级等能力,功能非常完备。

    Kubernetes的概念比较简单,只有Pod(一组容器,对应一个微服务实例)、RC(用了创建微服务实例的副本)、Service(一个逻辑概念,用来对外提供服务)和Label(用来表示上面三个概念之间的关系),而这四个简单的概念即可支撑上层应用的千变万化,这是kubernetes设计的优雅之处。

    搜狗截图16年07月14日1509_23.jpg

    热门技术介绍完毕,最后我们看一下这些技术在普元数字化企业云平台内的应用。

     搜狗截图16年07月14日1510_24.jpg

    平台自动化和部署自动化部分使用了CoreOS、Docker/Rkt和Kubernetes,在API Gateway、服务发现、容错/熔断、监控和日志等方面,使用了Netflix OSS的几个组件。

    普元原有的集成、流程和数据产品,在数字化企业云平台里也会微服务化,第三方的应用可以通过Service Broker包装成微服务接入到数字化企业云平台中。

    今天就到这里,谢谢大家。

    搜狗截图16年07月14日1510_25.jpg

     

    关于作者:

    宋潇男

    EAII-企业架构创新研究院 专家委员

    曾任华为云计算产品技术总监,现任普元云计算架构师,负责产品规划、市场推广、技术合作等工作。所参与研发的云计算产品在中国银联、中国石油等客户获得应用。曾负责国家电网第一代云资源管理平台以及中国银联基于OpenStack的金融云的技术方案、架构设计和技术原型工作。

    搜狗截图16年07月14日1510_26.jpg

    关于EAII

    EAII(Enterprise Architecture Innovation Institute)企业架构创新研究院,致力于软件架构创新与实践,加速企业数字化转型。

    搜狗截图16年07月14日1050_107.jpg

  • 相关阅读:
    Mayan游戏 (codevs 1136)题解
    虫食算 (codevs 1064)题解
    靶形数独 (codevs 1174)题解
    黑白棋游戏 (codevs 2743)题解
    神经网络 (codevs 1088) 题解
    The Rotation Game (POJ 2286) 题解
    倒水问题 (codevs 1226) 题解
    银河英雄传说 (codevs 1540) 题解
    生日蛋糕 (codevs 1710) 题解
    第一章 1.11 高阶函数
  • 原文地址:https://www.cnblogs.com/insideout/p/6112583.html
Copyright © 2011-2022 走看看