2019独角兽企业重金招聘Python工程师标准>>>


微服务的扩展立方模型

“扩展立方模型”是指微服务架构的在拆分时包括三个维度,如上图所示,X 轴表示水平副本,通过副本进行扩展;Y 轴表示功能解耦,通过分解功能,在不同模块之间的扩展;Z 轴是数据分区,一个系统会有一些业务和数据,微服务架构可以通过数据分区的形式进行扩展。


Docker 的两大核心技术

Docker 主要包含两个方面的技术:

一方面是容器技术,可以进行物理资源的有效分配与管理,并实现资源隔离,从这个角度看来,容器跟虚拟机的理念比较类似。容器的诞生会占 据虚拟机的一些市场,但不是完全替代虚拟机,主要是隔离强度的问题,容器技术是共享内核资源的,在一些比较严苛的状况下,虚拟机更胜一筹。

Docker 的第二个技术——镜像技术。打破了 “代码即应用” 的观念,Docker 真正实现了从系统环境开始,自底向上地打包一个软件。Docker 解决了软件的环境一致性问题,使得软件的分发与交付异常便捷。

Docker 如何让微服务架构更简单?

如下图所示,结合微服务的「扩展立方」来看,Docker 镜像的一致性可以保证水平扩展,部署秒级,扩展立方的 Y轴,是功能解耦,可以把一个系统分成不同的模块,Docker 的优势是 application-centric,Docker 镜像完全独立。在数据分区方面,Docker 与数据服务结合,在这个方面,Docker 还有一些路要走。

从扩展立方模型看微服务与 Docker 化

Docker 化实践

Docker 的本质体现在两个方面,一个是 application-centric(应用为中心),另一个是 single-process(单个进程)。

如下图所示,这个文件系统是一个涵盖用户应用的发行版,Docker 容器里面会有很多进程,容器启动以后,会有进程隔离、网络隔离(可以使用独立的网络来处理自己的逻辑)、文件系统隔离、权限控制、资源控制、资源隔离等。

App-Centric 和 Single-Process

如何 Docker 化?

  • 首先,需要定义一个 Dockerfile,Dockerfile 定义了进程需要的一切东西。Dockerfile 涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核 进程打交道,这时需要考虑如何设计 namespace 的权限控制)等等
  • 第二个方面是 Docker 镜像,在用 Dockerfile 定义一个文件之后,dockerbuild 时会产生一个 Docker 镜像,当运行 Docker 镜像时,会真正开始提供服务
  • 第三点是 Docker 容器,容器是直接提供服务的,关于容器的“单进程模式”,需要注意一点,容器里面有一个非常重要的进程——init 进程,它负责管理容器内部的所有进程,一旦该进程出现故障,系统会负责给容器内所有其他进程发送一个 kill 信号,随即容器退出运行。在实践时需要保证 init 进程不能经常出问题,当然也可以通过 Docker 层面,设置一些 restartpolicy 等策略,来保证容器能够成功恢复,不过如果容器内部已经有状态时,同样也会出现一些问题。


Docker 化实践的三个步骤

遗留系统如何无差异地 Docker 化,传统应用 Docker 化的两个关键——日志管理和配置管理。事实上,Docker 里面也有一个 init 进程,Dockerinit 进程跟宿主机上的 init 进程有很大的差异,Docker 的 init 进程是完成资源的初始化,然后把决策完全交给用户指定的进程。

另外,传统模式下,很多应用很多组件都会调用服务进程来完成特殊的需求,比如,如果说某一个 组件是需要完成日志的,会需要 syslog 的服务来完成这些目标,可不可以把这些放到容器中呢?如果把它们放到容器中,容器的逻辑就变得比较复杂。日志管理进程 syslog 的 Docker 化实践(参见下图)。


Docker 化实践——syslog 日志管理进程的 Docker 化

转载于:https://my.oschina.net/renguijiayi/blog/537350

微服务的「扩展立方」与 Docker 化实践相关推荐

  1. 「司库立方」再获数亿元C轮融资,她们做对了什么?

    今日,头部司库玩家「司库立方」宣布成功获得数亿元C轮融资,本轮融资由云晖资本领投.中信建投资本.贵阳创投.神骐资本(58产业基金)跟投,老股东信天创投持续追投.本轮融资资金主要用于迭代产品.加强市场推 ...

  2. 微服务架构设计基础之立方体模型

    2019独角兽企业重金招聘Python工程师标准>>> 背景 对于现在的微服务架构的应用来说,对大量并发的及时响应是一项制胜能力.据用户行为分析平台统计,随行付的某一款APP产品每日 ...

  3. 微服务架构开发实战:如何实现微服务的自动扩展?

    微服务架构开发实战:如何实现微服务的自动扩展? 程序员高级码农II 2020-09-25 07:25:00 如何实现微服务的自动扩展 前面讲了一些关于自动扩展的理论知识,但如何实现自动扩展,并不是三言 ...

  4. 「跨域」利用node.js实践前端各种跨域方式(上)

    前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...

  5. 唯品会、滴滴、沪江架构师,关于微服务粒度、高可用、持续交互的实践分享交流(下)...

    架构师小组交流会:每期选择一个时下最热门的技术话题进行实践经验分享. 本期小组交流会邀请到了沪江黄凯.唯品会郑明华.滴滴赵伟.七牛云肖勤,对微服务粒度.高可用.持续交互展开了交流. 本期接着上期唯品会 ...

  6. 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s

    总体流程: 在开发机开发代码后提交到gitlab 之后通过webhook插件触发jenkins进行构建,jenkins将代码打成docker镜像,push到docker-registry 之后将在k8 ...

  7. 微服务是去ESB总线、去中心化和分布式

    SOA(Service-Oriented Architecture),中文全称面向服务架构.它不是一种技术,而是一种解决问题的思考方式.它旨在搭建一种粗粒度.松耦合的以服务为中心的架构,接口之间通过定 ...

  8. 微服务之「Cosul 服务注册与发现 」

    服务注册与发现 Consul是微服务的一个框架,是服务注册与发现的一个解决方案.在说Consul之前先来看看什么是服务注册与发现. 微服务体系中,服务注册与服务发现是两个最核心的模块.服务A调用服务B ...

  9. 小程聊微服务-自己动手扩展分布式调用链

    一.说在前面 微服务是当下最火的词语,现在很多公司都在推广微服务,当服务越来越多的时候,我们是否会纠结以下几个问题: 面对一笔超时的订单,究竟是哪一步处理时间超长呢? 数据由于并发莫名篡改,到底都谁有 ...

最新文章

  1. SQL执行过程中的性能负载点
  2. 教程:11、文件系统
  3. python手机版怎么用-你知道如何用手机编程Python吗?
  4. NLP通用模型decaNLP诞生,一个模型搞定十大自然语言常见任务
  5. 这个中秋,来点不一样~
  6. ORACLE PERFORMANCE TUNING 原厂培训.笔记1
  7. JMetro版本11.6和8.6发布
  8. 一道很简单的贪心算法题~【贪心:我不要脸的伐?】
  9. 红蓝对抗之如何利用Shellcode来躲避安全检测
  10. Jquery +Ajax 请求Json文件,绘制Echarts 上下两个堆叠折线图
  11. NIS 报错No such map passwd.byname. Reason: Can't bind to server which serves this domain
  12. 在线uml画图工具网站
  13. 二分类变量相关性分析spss_两个有序分类变量相关性的卡方检验-SPSS教程
  14. 如何在iPhone上禁用Apple CarPlay
  15. linux pdf中文乱码,英文乱码(乱码为方格之类的解决方法)
  16. Educational Codeforces Round 51 (Rated for Div. 2).B. Relatively Prime Pairs(水题)
  17. unity怎么显示骨骼_Unity3D 骨骼动画原理学习笔记
  18. 2020-09-07(基于控制台的DVD管理系统)
  19. 联想e470加装固态硬盘_ThinkPad E470C怎么安装固态硬盘?
  20. 无人驾驶-控制-阿克曼模型

热门文章

  1. bugtrap microsoft 默认崩溃提示框_iPad与Surface的对决Apple和Microsoft趋于融合
  2. 大数据培训 | 数据仓库构建方法论和实践
  3. FMC——扩展外部SDRAM
  4. c语言 设置windows2008,调教Windows server 2008系统菜单
  5. Sangoma7 (FreePBX)安装后局域网使用eyebeam登陆403错误
  6. 中文字符乱码的原因及解决办法
  7. 《惢客创业日记》2020.12.29-30(周二)我们都是商人
  8. java 从字符串中提取数字
  9. WIN TO GO (WTG):windows装入U盘 WTG安装+拔出U盘强制关机蓝屏处理(win10)
  10. 性价比之王:基于低代码平台搭建非标系统