【云栖计算之旅】第2期精彩回顾:Docker在云平台上的最佳实践

简介: 12月9日下午,云栖计算之旅线下沙龙第2期《Docker在云平台上的最佳实践》专场在北京阿里中心望京A座举办,来自各大互联网公司的Docker开发者和运维人员齐聚,会场座无虚席,阿里云容器团队的3位Docker专家进行了分享。本文来回顾一下本次沙龙的精华内容。

Docker是一个开源的应用容器引擎,提供了一种在安全、可重复的环境中自动部署软件的方式,允许开发者将他们的应用和依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上。由于部署速度快、开发测试敏捷、资源占用少,越来越多的企业开始使用Docker,以减低开发和运维的成本。

d1656281b42533817f1d34c56a4bb09dfaca5977

12月9日下午,云栖计算之旅线下沙龙第2期《Docker在云平台上的最佳实践》专场在北京阿里中心望京A座举办,来自各大互联网公司的Docker开发者和运维人员齐聚,会场座无虚席,阿里云容器团队的3位Docker专家进行了分享。下面来回顾一下本次沙龙的精华内容。

Docker监控技术原理和阿里云容器监控服务实践


系统与应用监控是保障服务可用的重要环节,在大型网站系统中,监控是保障可用性的最后一个环节。在本次沙龙上,阿里云容器技术专家晨末分享了《Docker监控技术原理和阿里云容器监控服务实践》。
随着应用场景的复杂度增加,网站系统的架构一直在不断演进,从原始阶段的应用和数据库在同一台服务器上,到应用与数据分离、再到缓存服务、应用服务集群化、使用负载均衡、数据读写分离、使用反向代理和CDN,后来又发展到使用分布式数据库、应用拆分、使用分布式服务和微服务等。

23ef8b3c1f0b60a2374419813603dae48ab25904

如此复杂的高可用分布式服务系统,背后需要强大的运维系统支撑,如果没有监控服务,就没办法对系统“望闻问切”,找不到系统的问题,就没办法做针对性的改进,演进就会停止,线上服务就可能处于随时崩溃的边缘,会成为运维与开发人员投上的达摩克里斯之剑。

监控系统体系如下。
fc9144be25cf38b2c7d01d10d73649e106e3ae3b

可以监控如下两个指标:基础技术性能指标(包括底层物理设备监控、操作系统监控、应用容器监控等)和业务运营指标,以发现设备异常和业务系统异常,提前进行系统扩充和业务系统调度处理,做到“上医治未病”。
针对操作系统的监控,比如物理设备上CPU、内存的使用以及进程等情况,可以通过Linux系统中的/proc目录来查看。Docker容器的所有内存状态信息,可以在“/sys/fs/cgroup/memory/docker/容器ID” 目录下查看。
与传统监控相比,容器监控具有监控对象“动静结合”、系统指标统计维度多维的优势。几个关键的容器监控指标:

2f6596125a8a9f2d8717e32497f50a9cedf5f9cb

阿里云提供了功能强大的容器监控服务,集合了基础数据采集、自定义监控指标、第三方监控集成、监控报警与弹性伸缩等能力。架构图如下。

ffb4212bac18f95ad76b03210b6b817e068071e4


阿里云容器监控服务的详细信息,以及容器监控实战经验分享,请看PPT和精彩视频回顾。



当容器服务遇到了深度学习


从20世纪50年代的人工智能萌芽,到80年代开始兴起的机器学习,再到2010年的深度学习,人工智能已经进入了深度学习时代。在ILSVRC的ImageNet计算机视觉系统识别项目上,基于深度学习的机器视觉能力已经接近人类(如下图)。今年初AlphaGo与韩国棋手李世石4:1的比赛结果,再次向人们展示了人工智能的强大之处。

9d749a04fc395dbb8235fbc7a9b4713fd523ea35

当容器服务遇到了深度学习,会碰撞出什么样的火花,且听阿里云容器服务技术专家车漾为大家介绍两者如何混搭出1+1>>2的效果。

GPU的出现,也推动了深度学习的发展,但是目前常见的单GPU并不能满足深度学习井喷式的计算需求,而通过容器技术,可以很方便地对云上计算集群按照GPU进行调度、隔离和监控。

阿里云容器服务针对GPU的管理提供了很好的支持,比如调度GPU:

03b0a2d0d69f142d342cdda97cf872ec6d7d0f2e

监控GPU:

e960f58580a2bb4d2672d42d14fe99aaa1fd0c14

结合阿里云的高性能计算服务(HPC)以及其他相关的云服务,可以构建出完整的深度学习解决方案。
88f38a275c344c9d7cc7781563a0e411b5316f37

车漾在现场演示了图像识别技术以及GPU监控操作,详细信息请看PPT和精彩视频回顾。


基于容器技术的DevOps探索


最后,阿里云容器服务团队的高级研发工程师秦妤嘉分享了《基于容器技术的DevOps探索》。
近两年,Docker大热,大家在谈论Docker的时候,也经常会提到DevOps。
在一个较成熟的软件和服务交付的团队里,就技术层面来说主要分为三个组成部分:开发、测试和运维。开发测试团队比较关注的是代码能否运行,而运维比较关注的时系统能否在上线后稳定运行。于是隔阂就产生了。
DevOps的出现就是为了解决这一问题。DevOps的作用就是将这三个部分紧密的连接起来,提供一条从软件开发到质量保障到技术运营的自动化流水线,加强不同角色之间的沟通和协作,从而减少资源浪费、提高质量,并将产品快速推向市场。
f4634417b618249dceb21c055926cd7004bac6bc
而Docker就是实现DevOps最合适的工具之一,甚至变革了软件交付方式,可以有效解决持续交付过程中遇到的问题,比如环境一致性、版本管理、快速响应等。
下图是一个基于时下流行的持续集成工具Jenkins和阿里云容器服务构建的完整的持续交付流程。

b8845d418734fabcf6b06140027cb943a1438091

Jenkins 2.0版本中包含了一个新的管道(pipline)构建交付系统,管道的设计理念是基于Groovy DSL,实现一套灵活、可扩展的持续发布(CD)工作流,将原本独立运行于单个或多个节点的任务连接起来,实现复杂发布流程。
会上还演示了如何通过阿里云容器服务和Jenkins从0开始搭建一个持续交付系统。详细信息请看演讲PPT和视频回顾。

67ab32b5ddc23ca1fcadbabaca740a4896d3b56c


关于云栖计算之旅


云栖技术之旅,是由阿里云云栖社区主办,整合了阿里集团内部多个领域顶级技术专家与技术资源,通过线下技术培训的方式,为热爱技术的朋友提供一个交流&分享技术观点、碰撞精彩火花的平台。
第1期精彩回顾: https://yq.aliyun.com/articles/62414
第3期预告(12月23日前端专场): https://yq.aliyun.com/promotion/140

关于阿里云容器服务


阿里云容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造Docker云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
存储 负载均衡 调度
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
243 0
|
17天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的最佳实践
在现代云计算环境中,自动化运维成为保障系统稳定性与提升效率的关键。本文深入探讨了如何利用Docker容器化技术和Kubernetes容器编排工具构建一个高效、可靠的自动化运维体系。文中不仅介绍了相关的技术原理,还结合具体案例分析了实施过程中的常见问题及解决方案,为读者提供了一套行之有效的最佳实践指南。
|
2月前
|
安全 Linux Docker
制作 Python Docker 镜像的最佳实践
制作 Python Docker 镜像的最佳实践
|
4月前
|
负载均衡 持续交付 Docker
Docker容器编排与微服务架构的整合:最佳实践
微服务架构和Docker容器编排工具的结合为现代应用程序的构建和部署提供了巨大的便利性。本文将深入探讨如何将这两者整合在一起,提供丰富的示例代码和详细的最佳实践,以帮助大家构建可伸缩、可维护和高可用的微服务应用。
|
4月前
|
安全 测试技术 虚拟化
Docker实战案例研究:深入行业应用与最佳实践
Docker作为一种轻量级、可移植、可扩展的容器化技术,在各行各业都得到了广泛应用。本文将通过深入实际案例,介绍Docker在不同行业的应用以及相应的最佳实践,提供更加丰富的示例代码,以帮助大家更全面地理解和运用Docker的强大功能。
|
4月前
|
安全 应用服务中间件 nginx
Docker安全性:最佳实践和常见安全考虑
Docker 的快速发展和广泛应用使其成为现代应用开发的热门选择,然而,容器环境的安全性也受到关注。本文将深入研究 Docker 安全性的最佳实践,包括容器镜像安全、容器运行时安全、网络安全等方面,并提供丰富的示例代码,帮助读者全面了解如何确保 Docker 环境的安全性。
|
4月前
|
SQL 关系型数据库 C语言
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
43 0
|
5月前
|
Cloud Native Serverless 计算机视觉
Docker与Serverless计算的集成: Docker容器如何与Serverless计算结合。
集成Docker容器和Serverless计算是一种强大的方式,它结合了容器的可移植性和Serverless的自动伸缩性。在本文中,我们将深入探讨如何将这两种技术结合使用,以实现更灵活的应用程序部署方式。
153 0
|
6月前
|
存储 Kubernetes 监控
聊聊工程化 Docker 的最新趋势以及最佳实践
聊聊工程化 Docker 的最新趋势以及最佳实践
41 0
|
6月前
|
应用服务中间件 Linux nginx
Docker简介与云平台结合
Docker是一种开源的容器化平台,它通过将应用程序和其依赖项打包到一个独立的容器中,提供了一种轻量级、可移植和可扩展的软件交付解决方案。下面将介绍Docker的功能和优点:
177 1