【云栖计算之旅】第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云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
2月前
|
jenkins 测试技术 持续交付
Docker最佳实践:构建高效的CI/CD流水线
【10月更文挑战第17天】在现代软件开发实践中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已成为提高开发效率和软件质量的重要手段。Docker作为一种容器技术,为构建一致且隔离的开发环境提供了强有力的支撑。本文将探讨如何利用Docker来优化CI/CD流程,包括构建环境的标准化、镜像管理以及与CI/CD工具(如Jenkins、GitLab CI)的集成。
75 5
|
2月前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
5月前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
|
7月前
|
Ubuntu 安全 Docker
【DevOps】Docker 最佳实践指南(绝对干货)
祝您的 Docker 之旅一切顺利!
219 4
|
2月前
|
安全 Devops 网络安全
【DevOps】Docker 最佳实践指南(绝对干货)
Docker 是一种领先的容器化平台,可简化应用开发、部署和管理。本文档介绍 Docker 的最佳实践,涵盖安全性、网络、镜像、主机安全及资源限制等方面,帮助用户高效利用 Docker,确保应用的安全性和性能。
148 0
|
3月前
|
机器学习/深度学习 人工智能 物联网
探索云平台:构建未来计算的基石
本文旨在深入探讨云平台的基本概念、核心优势及其在现代IT架构中的关键作用。我们将从云计算的起源讲起,逐步解析云平台的运作机制,并通过具体案例展示其如何推动企业创新和效率提升。无论是创业者还是资深技术专家,了解云平台的本质和发展动向,都是把握未来科技趋势的重要一步。
108 2
|
3月前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
4月前
|
jenkins 持续交付 开发工具
Jenkins 与 Docker 集成的最佳实践
【8月更文第31天】随着容器技术的兴起,越来越多的团队开始采用 Docker 来构建和部署应用。Docker 提供了一种轻量级的虚拟化方法,使得应用可以在任何地方以相同的方式运行,这极大地提高了开发效率和部署的一致性。与此同时,Jenkins 作为一种广泛使用的持续集成/持续交付(CI/CD)工具,可以帮助团队自动化构建、测试和部署流程。本文将探讨如何将 Docker 与 Jenkins 集成,以简化开发环境的搭建和维护。
389 0
|
5月前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
下一篇
DataWorks