首页  ·  知识 ·  架构设计
微服务与Docker介绍
Petter Liu  博客园    编辑:子轩   图片来源:网络
微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部

什么是微服务

微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。

? 一种软件架构模式 
? 复杂应用解耦为小而众的服务 
? 各服务精而专 
? 服务间通信通过API完成

blob.png

微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。

第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付。

扩展立方模型(Scale  Cube)

blob.png

Y轴 功能解耦 通过分解 不同模块扩展 
X轴 水平副本 通过副本扩展 
Z轴 数据分区 通过分解 相似内容扩展

Docker是什么

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

blob.png

Docker包含两方面技术

-镜像技术  
打破“代码即应用”的观念 
从系统环境开始,自底至上打包应用

blob.png

blob.png

微服务和Docker

Dev 
开发简单有效的模块        
配置是一个运行时的限制     
不再是异常复杂的应用    
new    WebServer().start(8080); 
    
Ops 
管理硬件设施 
监控&反馈    
不是应用的执行细节   

 

结合扩展立方(Scale   Cube)

blob.png

Docker化实践

本质:进程隔离,资源管理

? App-Centric的体现 
? Single-Process的真实含义

blob.png

Docker化实践——进程隔离

blob.png

Docker?le、Docker镜像与Docker容器

blob.png

容器内技术栈: 
1.单进程理念 
2.不存在传统的init进程(全局PID=1) 
——dockerinit与init进程的区别 
3.缺少基本的服务进程 
——cron 
——rsyslogd等 
4.与内核进程通信能力薄弱(ipc命名空间隔离) 
  
导致遗留系统Docker化存在压力。 重构?非重构下的最佳实践?

Docker化实践——日志管理


原理:stdout&stderr 

传统模式: 
      -stdout&stderr    
      -磁盘日志文件 
      -日志服务器 
日志持久化磁盘的弊端 
      -移植性 
      -部署复杂度 
日志Docker层面管理 
      -json-?le     
      -syslog(并非应用调用syslog) 
      -?uetd

blob.png

以syslog为例 

blob.png

Docker化实践——日志管理

blob.png

Docker化实践——配置管理

传统方式:配置文件 
? Docker容器的无状态 
? 配置文件的状态性 
? Docker容器依赖配置文件 
? 额外的配置管理需求 
? 非自动化 
? 非标准化

? 沿用传统模式——配置文件 
——使用挂载volume的方式 
——配置文件与宿主机耦合 

? 采用环境变量方式 
——打包配置进入Docker镜像 
——打包配置进入Docker容器 
——完美支持编排工具compose 
  
? 环境变量与配置文件共存 
——修改Docker镜像执行入口 
——使用环境变量替换配置文件


本文作者:Petter Liu 来源:博客园
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读