e-works数字化企业网  »  文章频道  »  基础信息化  »  云计算和虚拟化

使微服务、容器趋向完美——Serverless架构

2017/11/3    来源:数人云    作者:佚名      
关键字:微服务  Serverless架构  
无服务架构(Serverless)和DevOps、SRE、微服务、容器等一样,是最近两年比较新兴的概念,探讨下Serverless和容器与微服务之间的互补与碰撞。
    无服务架构(Serverless)和DevOps、SRE、微服务、容器等一样,是最近两年比较新兴的概念,探讨下Serverless和容器与微服务之间的互补与碰撞。
 
    近年来很多人在讨论云计算时都会提到容器,因为其几乎完美得解决了DevOps所面临的挑战。
 
使微服务、容器趋向完美——Serverless架构
 
    本文将阐述Serverless的解决方案,它与传统和容器化的应用的不同之处。
 
使微服务、容器趋向完美——Serverless架构
 
    一个典型的N层Web应用是由前端、公开的Web服务器组成;后端:高度隔离的数据层以及中间件层。
 
    微服务
 
    先来说说微服务,在微服务的模式下,可以无需使用服务器去呈现所有的用户界面,例如,处理所有的业务对象和逻辑,只需一个应用即可创建多个应用编程接口或API。
 
使微服务、容器趋向完美——Serverless架构
 
    这是以酒店为应用场景的一种基于微服务的现代WEB和移动应用的方法。
 
    假设经营了一家连锁酒店,需要面向公众的服务,允许用户登录到网站预定房间,通过第三方邮件列表进行邮件促销,以及提供WEB和移动应用页面的一般方式。
 
    可以创建处理用户数据请求的API,这里用白色显示,与其拥有传统的服务器呈现的用户界面,还可以创建单个页面WEB应用和使用该API的移动应用,以获取所需的信息去适应该平台的方式提供信息。
 
    这使得作者的工作量去除了整个开发链:设计人员和前端开发人员可以让界面看起来更漂亮,并且能够高效得执行,而后端团队只需要专注于创建一个单一的方法去为他们提供相同的信息。
 
使微服务、容器趋向完美——Serverless架构
 
    只需要将代码和其依赖项打包到一个容器中,然后即可在任何地方运行——因为它们通常很小,可以将大量的容器装到一台机器上——TechCrunch。
 
    容器
 
    从业务的角度讲,能有什么原因不喜欢容器呢?答案是,没有。
 
    容器之所以伟大,是因为它们可以让我们打包所有的东西——操作系统、代码、服务、以及应用需要工作的所有东西并且运行它们。这不仅显著得简化了DevOps模式,节约了大量的人工和时间的成本,而且它还为我们提供了如何部署解决方案的选项,其中许多现在都是免费的特定供应商。
 
    另外,正如TechCrunch所指出的,可以在一台主机上运行几个容器,这意味着浪费的资源要少的多,反过来又浪费了成本。
 
    所以可以用容器来提供这些微服务,也就是说,用户接口API可以在容器A中运行,而在容器B中预定API,以及在容器C中的电子邮件通讯API,容器D中的身份验证API。
 
    容器使得上面所提到的具有高度可移植性,如果构建的得当,高度可伸缩,甚至可以很好得适应Bug。
 
    DevOps和容器
 
    从DevOps的角度去看,仍旧是没有理由不喜欢容器技术。其具有的优势有:
 
    可快速地进行部署。
 
    在一些基本配置中,可以安装所需的应用和服务,配置环境以及支持应用,并未整个流程编写脚本。
 
    技术团队无需花费一整天的时间去创建新的环境:脚本一次就完成了。
 
    运维的成本降低。
 
    如果应用被适当得设计成可伸缩的需求,那么使用容器的扩展就像启动应用镜像的另一个实例一样简单,甚至可以自动化这个过程,应用可以响应时需求和规模来满足需求。
 
    更为重要的是,可以自动化构建和部署过程,容器在自动化的构建过程和应用生命周期管理中非常有用。
 
    可以轻松得使用容器简化版本和构建过程,所有的这些都很容易通过开源或低成本工具以及过程进行编排。
 
    容器的不足之处
 
    容器也有一些不足之处,因为容器化仍然是一项新技术,所以会有很多变化。不用担心Docker或Mesosphere会很快消失,但它们可能会发生重大的变化,对于在部署管道中管理容器镜像的最佳实践,还没有达成共识。
 
    根据其特性,容器需要在客户机器上具有更高的权限,若成功利用这一点,就会让它们更加危险,例如:一台虚拟机在客户服务器上被破坏。
 
    也很容易得到比需要的容器更多的容器以及曾经执行一些工作负载的孤立容器:它们已经失效,但没有被清理掉。
 
    有一些研究表明,在所有基于云计算的虚拟机中,有四分之一到三分之一都是僵尸的,而容器也遇到了同样的问题,因为容器可以快速且轻而易举的创建,并且在很大程度上是为了处理一次性的工作负载而设计,所以这方面是存在着很大的隐患。
 
    大多数容器都需要外部程序集——即“助手”应用,使用它们的主要应用能够运行,当容器从镜像中创建时,很难确保这些程序集所在的存储库是联机的,并且可以遇到容器对这些程序集的依赖可能会被破坏的情况。
 
    最后,使用某些容器技术(如Docker)进行安全高效得网络连接,需要熟练的人手。
 

责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐