美文网首页
《微服务架构设计模式》读书笔记---第十二章:部署微服务应用

《微服务架构设计模式》读书笔记---第十二章:部署微服务应用

作者: 白板时钟 | 来源:发表于2020-05-25 19:00 被阅读0次

    部署包含两个相关联的概念:流程和架构

    部署流程包括一些由开发人员和运维人员执行的步骤,以便将软件投入到生产环境。
    部署架构,定义了该软件运行的环境结构。

    四种部署选项:

    1. 使用编程语言特定的发布包格式部署服务,例如JAVA JAR或者WAR文件。
    2. 将服务部署为虚拟机,把服务打包为虚拟机镜像
    3. 将服务部署为容器
    4. 使用Serverless部署模式部署服务。

    使用编程语言特定的发布包格式部署服务

    好处是快速高效;高效的利用资源,一台机器上,可以运行多个实例

    弊端是:

    1. 缺乏对技术栈的封装,运维团队需要了解每个服务的细节,以准备对应的环境和web容器。
    2. 无法约束服务实例消耗的资源
    3. 同一台服务器上运行多个服务实例,缺乏隔离

    将服务部署为虚拟机

    将作为虚拟机镜像打包的服务部署到生产环境中,每个服务实例都是一个虚拟机。
    好处:

    • 封装了技术栈
    • 隔离的服务实例

    弊端:

    • 资源利用率较低
    • 部署速度较慢。构建镜像,从镜像实例化虚拟机都比较耗时
    • 系统管理的额外开销。需要负责更新镜像的操作系统和运行时打补丁

    将服务部署为容器

    在构建时,部署流水线使用容器镜像构建工具,该工具读取服务代码和镜像描述,以创建容器镜像并将其存储在镜像仓库中。在运行时,从个景象仓库中拉取容器镜像,并用于创建容器。
    好处是:

    • 封装技术栈
    • 服务实例是隔离的。
    • 服务实例的资源收到限制

    弊端,还是需要负责更新镜像的操作系统和运行时打补丁

    Serverless部署

    之前的三种部署方式,

    1. 都会存在资源浪费的情况,例如即使处于闲置状态,也需要为容器和虚拟机付费
      2.需要负责系统管理,必须承担操作系统和软件打补丁的工作

    Serverless提供一种受约束的编程模型,以换取最小化的系统管理开销。如果需要更加精细化的管理基础设施,那么就不要选择Serverless
    以AWS Lambda为例,只需要将应用程序打包为ZIP或者JAR文件,上载到AWS Lamdba,并指定相应请求的函数名称。AWS Lambda会自动运行你的微服务实例来影响请求,只需要为所花费的时间和消耗的内存付费。

    好处:

    • 消除系统管理任务
    • 弹性,不需要预测负载,而判断实例数量。AWS Lamdba会帮忙处理。
    • 基于使用情况定价

    弊端:

    • 长尾延迟。AWS需要花费时间来配置应用程序实例和启动应用程序,可能导致某些请求具有高延迟。
    • 基于有限事件与请求的编程模型。不适应长时间运行的服务,例如消息代理服务。

    相关文章

      网友评论

          本文标题:《微服务架构设计模式》读书笔记---第十二章:部署微服务应用

          本文链接:https://www.haomeiwen.com/subject/wfkuahtx.html