云端基于Docker的微服务与持续交付实践

时间:2024-10-11 10:07:20

云端基于Docker的微服务与持续交付实践笔记,是基于易立老师在阿里巴巴首届在线技术峰会上《云端基于Docker的微服务与持续交付实践》总结而出的。

本次主要讲了什么?

  • Docker Swarm
  • Docker Swarm mode
  • 微服务支持(Docker集群架构体系)
  • Docker的发展趋势和前沿成果

在Docker技术方面还是很佩服大牛的,所以赶紧写下笔记,追随大神的脚步。

阿里云资深专家易立,技术就不说了,他比其他直播间硬生生多讲了半个多点,于情于理还是万分感谢本次分享的(可惜devOps没时间讲了)。

总之,字里行间都是最前沿的研究成果,具体内容总结如下(原谅我没有写下阿里云Docker使用过程,大家可以购买支持嘛)。

(声明:阿里云承诺分享本次视频和ppt,无奈没找到,反正自己也要写学习笔记,在观看的同时顺便截屏,以下图片和大部分知识内容都来自Docker社区和阿里云资深专家易立,我只是总结梳理下Docker的知识体系~ ~)

Docker Compose 容器编排

Docker Compose allows you to define your multi-container application with all of its dependencies in a single file, then spin your application up in a single command.

Docker Compose其实是一个管多的工具,允许定义多个容器应用和依赖文件放置一个文件中,然后一条命令来启动它。

  • 优点:
    • 简单好用,便于开发
    • 镜像开发
    • 本地环境沙箱:开发,UT
    • 编排容器,存储和网络
  • 不足:
    • 面向开发和部署,不支持自动化运维
  • 功能
    • 一键部署:docker-compose up
    • 手动收缩:docker-compose scale wordpress=3

Docker Swarm 容器集群管理

Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual Docker host. Because Docker Swarm serves the standard Docker API, any tool that already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts.

Swarm’s swappable design provides a smooth out-of-box experience for most use cases, and allows large-scale production deployments to swap for more powerful backends, like Mesos.

Multiple Docker Engines==Swarm

  • 优点
    • 兼容标准的Docker API
    • 灵活,可插拔的容器,调度
  • 不足
    • 面向容器,缺少微服务支持

云端基于Docker的微服务与持续交付实践

Containers as a Services (Caas 容器服务)

遵循Build—Ship—Run

  • Build:Development Environments
  • Ship:Secure Content&collaboration
  • Run:Deploy,Manager,scale

传统云金字塔:

(金字塔底) infrastructure As A Service—Platform As A Service(抽象级别过高)—Software As A Service(抽象级别过低) (金字塔顶)

云端基于Docker的微服务与持续交付实践

容器服务定位

其实在金字塔的中间层做了分级,将Platform和Containers作为一个服务。实现了简洁性和灵活性间的完美平衡。

云端基于Docker的微服务与持续交付实践

微服务架构

云端基于Docker的微服务与持续交付实践

Build Once and Deploy Everwhere 利用容器实现持续集成和交付

云端基于Docker的微服务与持续交付实践

从易立老师的这张图,可以看出Docker从开发,测试到最终生产环境,保证了应用的一致性。并且支持版本管理,快速上线和回滚。

完整的容器持续化交付流程

云端基于Docker的微服务与持续交付实践

其中Jenkins是一把持续交付的利剑,附上文档链接https://hub.docker.com/r/jenkinsci/jenkins/

Docker 1.12 内置编排能力

The Best Way to Orchestrate Docker is Docker

docker峰会原话,其实剑指其他提供编排服务的工具。

云端基于Docker的微服务与持续交付实践

Docker Swarm mode

Docker Swarm mode区别与Docker Swarm

Docker Engine 1.12 includes swarm mode for natively managing a cluster of Docker Engines called a Swarm. Use the Docker CLI to create a swarm, deploy application services to a swarm, and manage swarm behavior.

Docker Swarm是最新提出的,所以还不是很完善,但是如上他的介绍,可以定性的理解为Mesos之类的集群管理器。

云端基于Docker的微服务与持续交付实践

服务servers

服务Servers是可以自动修复的,当集群中某个Engine失败时,可以自动修复。

复用已有的Docker Compose

云端基于Docker的微服务与持续交付实践

吐槽

特意早早的坐在计算机前面等《首届阿里巴巴在线技术分享》盛会,并且早就关注了阿里云资深专家的《云端基于Docker的微服务与持续交付实践》。终于2016年7月19号8点开始了。我是7点30分坐等的,于是,在6000-10000人浏览(是实时浏览还是访问次数,怀疑是访问次数)时,发生了悲剧

视频很卡,而且不能选择画质,啊喂!

云端基于Docker的微服务与持续交付实践

弹幕出BUG,啊喂!

云端基于Docker的微服务与持续交付实践

索性直播间就关闭了弹幕功能(是关闭还是崩溃了?),啊喂!

云端基于Docker的微服务与持续交付实践

忍不住吐槽一下,7点30分直播间试图播放阿里宣传片,结果卡到一半关闭,两三次播放,同样结局。到8点整,抢红包功能未准时,直到8点20分(我都忘记其抢红包的事了,强制刷新我的屏幕,点进去,已抢完= =)

八点多点弹幕系统无法使用。。。一直卡啊,还有BUG啊。。。我们是来测试你在线直播抗压性的么?!我们是来学技术膜拜大神的~哼!

还有奇葩的短线!好多次!一断线我就怀疑是我网络问题,去斗鱼看了下。。如此顺畅,看来有大神还是不够的,需要经验的锤炼和打磨!

云端基于Docker的微服务与持续交付实践

好了,我是总结技术的。

心情终于平静了呢。