本文作者:qiaoqingyi

下穿编程(编程下料)

qiaoqingyi 05-04 111

  2016年灵雀云首场线下活动,释放云的无限潜能——应用性能管理大讲堂于3月19日在启迪之星举行,本场线下沙龙将围绕『Docker应用的性能与监控』这个主题展开。

  ????

  『快』,『敏捷』,『灵活』,『轻量』都是Docker的代名词。如果说云计算是计算资源的重新整合,那么虚拟机就是最初级的整合,Docker则让我们看到了云计算还未被挖掘的潜能。但想要『云尽其用』,就需要重视Docker应用的性能与监控。

  PPT下载地址:https://vdisk.weibo.com/s/FdIh4Kv1nhLf7

  Docker应用的监控与实践

  听云研发总监杨金全首先带来了主题为『Docker应用的监控与实践』的演讲,杨金全首先分享了通过对比虚拟机和Docker分析了Docker容器技术带来的改变:原来的一个虚拟机变成现在的多个Docker,每个Docker里面所运行的服务会更少,原来一个IP变成多个IP,多个IP承载多个服务,整个应用中每个服务之间的关系变得更加复杂;Docker扩容的机制很方便,服务节点会呈现一个明显上升的趋势;Docker的生命周期也变得更短,一个容器出了问题,可以马上用一个新的容器来替代。

  那么应该如何获取Docker的状态呢?Docker本身提供了一些方法来获取Docker的基础状态,比如:

docker ps

/sys/fs/cgroup/docker/cpuacct.stat

/sys/fs/cgroup/docker/memory.stat

Ifconfig eth0

  而涉及Docker应用的状态,可以从以下几个方面进行监控:

  

  具体的监控可以利用传统的应用性能管理(APM,Application Performance Management)工具来实现。杨金全通过一个具体的实例对这个过程进行了说明。

  Docker的云端实战

  AWS首席云计算技术顾问费良宏带来了演讲『Docker的云端实战』。ECS是AWS推出的容器服务平台,费良宏首先介绍了ECS的架构以及ECS的典型客户Coursera。

  

  Coursera的后台中有很多批处理作业,比如批量邮件发送,课堂测验批改,成绩单导出,数据核对等。Iguazu?是AmazonECS的批处理调度器,2015年4月开始,Coursera开始使用ECS来处理后台的批处理作业。

  费良宏还介绍了Coursera的一个特殊场景与Docker的结合。在Coursera学习编程语言的学生,在课程结束时需要提交代码,系统后台的评分系统会自动实现评分。但这些代码是有风险的,甚至可能是恶意的。

  

  Coursera在AmazonECS和Iguazu?项目上实现了一个评分的服务和架构GrID。

  

  学生提交到GrID中的代码,都是保存在每一个文件,然后它会创建一个新的容器资源,然后将这个代码在容器资源里面运行。为了保护这个环境还使用了AWS下面的防火墙VPC。最大程度得将风险限制在容器里面。同时还启用了用了审核日志、第三方监控等安全措施。

  微服务架构下的Docker实践,以及Docker在测试环境中的应用

  接下来是灵雀云客户,e袋洗架构师邸跃带来的演讲『微服务架构下的Docker实践,以及Docker在测试环境中的应用』。

  e袋洗为什么要使用微服务的架构呢?因为e袋洗后端支持的业务很多,有销售、订单、商品、物流等。如果采用单一系统架构会产生很多问题。

  

  邸跃介绍了拆分成微服务架构需要实现的几个前提:

首先业务层要做成模型化、抽象化,功能要单一起来,避免代码耦合;

业务需要同步,需要有一个通讯架构和消息架构

服务发现的机制,因为你拆分成微服务之后,可能要在2-3台服务器上部署同一个服务,如何找到这个资源,然后利用起来;

然后需要内部统一的通信规范,可以降低开发成本和维护成本。

  将系统拆分为微服务后,e袋洗做服务间接口调用的时候发现,由于共享的单位是模型,多数接口调用是直接下穿到模型的方法调用,多数方法返回结果即为接口返回结果。为了避免接口调用产生的开发成本和维护成本,e袋洗开发了服务共享的框架Zombie。以下为e袋洗当前的架构和Zombie的框架:

  

  

  微服务架构的复杂度比以前高了很多,Docker是一个很好的解决方案。比如在开发环境中:

  

下穿编程(编程下料)

  e袋洗架构中的Docker容器分为三种:外部访问型Docker,内部服务Docker,基础服务型Docker。邸跃详细介绍了这些Docker的制作策略,配置管理,打包机制,以及Jekins持续集成。

  在测试环境中:

  

  

  Technologies for Docker Container Monitoring

  最后,灵雀云首席架构师Saurabh Wagh带来了演讲『Technologies for Docker Container Monitoring』。云监控的目的是:减少服务宕机,规模性能管理,扩容计划,恶意事件监测,故障排查和修复。监控的范围包括:资源利用率(CPU/内存/硬盘/网络),网络情况,错误,应用详细度量,端点连通情况。

  监控也是Docker中很重要的一块,在Docker的生态系统中,除了Docker本身提供的监控之外,还有很多CaaS平台内集成的监控,开源软件和SaaS第三方提供的监控:

  

  那么这些监控工具中应该如何选择呢?开源工具适合于大企业自建监控系统,SaaS适合于中小型企业。

  

  

  灵雀云平台中也提供了基本的应用监控工具:

  

  PPT下载地址:https://vdisk.weibo.com/s/FdIh4Kv1nhLf7

  最后,感谢合作伙伴对本次活动的支持!

  

阅读
分享