服务器宕机不再愁!Docker 内置功能帮您解决

简介: 在过去十年中,随着微服务和高度可扩展系统的普及,导致在网络上大量分布的应用程序的复杂性整体增加,从而使应用程序存在着许多迁移时产生的和一些潜在的故障模式。

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五晚6点10分 与您不见不散!


在过去十年中,随着微服务和高度可扩展系统的普及,导致在网络上大量分布的应用程序的复杂性整体增加,从而使应用程序存在着许多迁移时产生的和一些潜在的故障模式。

这种架构的演变已经改变了监控的需求,这使得我们需要拥有更具扩展性和洞察力的工具和实践,在问题影响到业务和最终用户(内部或外部)之前,更好的帮助我们识别、调试和解决系统中的问题。

screenshot

我在 DockerCon 2018 大会上分享了一个 Docker EE 中的重要功能,该功能可以使运营商更轻松地监控其容器平台环境。同时还为大家带来一些关键性指标和最佳实践,以便在故障发生前对问题进行分类和修复。


监控方法

最著名的早期监控技术之一是来自 Netflix 公司的 Brendan Gregg 的 USE 模型。USE 指的是对于全部资源我们应该监控其利用率(服务工作所花费的时间)、饱和度(资源的使用程度)以及错误(错误事件数)。该模型更多适用于以硬件/节点为中心的指标,但应对基于网络的应用程序就需要对该模型进行调整。

对于以网络为导向的云原生应用程序,其最流行的模型之一是 Google SRE 手册中提到的“4 Golden Signals”(延迟,流量,错误和饱和度)。这些监控方法在应用程序和平台级别上很有用,但仍然缺乏对复杂方案和故障进行分类所需的一些细节。


应用程序和平台的可观察性

可观察性比简单的指标更进一步,是衡量我们通过审查其产出来推断系统状态的方法。可观察性包括监控、记录(事件)、跟踪和警报,来构建系统状态的完整图像。为了使我们的应用程序“可观察”,对它们进行检测非常重要,这样我们就可以提取关键信息并对其进行分析。近年来,DataDog、Instana、Prometheus、Sumo Logic等公司在这一领域进行了工具复兴来满足这些领域对高级功能日益增长的需求。


Docker EE 的可观察性

Docker EE 内置了许多功能,可以更轻松地进行监控和度量标准指标。例如非常好用的运行状况检查、引擎指标和日志记录功能:

运行状况检查:运行状况检查功能内置于 Dockerfile 规范中,允许用户针对其应用程序进行编写监控检查。这些信息通过引擎和 Docker EE web 管理 UI 来报告。Docker EE 会自动安排运行状况检查失败的工作负载。

引擎指标:Docker EE 公开了一个端点,该端点发出 Prometheus 格式的指标数据,以便轻松集成到监控工具中。有数百个单独的指标可用,包括关于构建的数据、群体状态(用于检测领导者何时宕机、法定人数减少等)、守护程序事件(例如网络创建)等等。

日志记录:Docker EE 内置了对许多不同日志记录驱动程序的支持,包括使用元数据标记服务的功能,以便在将日志发送到聚合器后使查询更容易。


我们的实践经历

我们的基础设施团队在云计算平台上运行 Docker Hub&Store,并在该平台上看到令人难以置信的流量,每两周就会有超过10亿的镜像。下图是我们生产环境中的一些统计数据:

screenshot

这一切都在 Docker EE 上运行,同时利用了上文提及的许多工具和技术。


您可以在这里看完整的演讲视频:

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
NoSQL 关系型数据库 MySQL
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队; 刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;还考虑到异步,可能还需要建个文件导出表,主要记录文件的导出情况,文件的存放地址,用户根据文件列表情况下载导出文件。
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
|
2月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
59 0
|
1天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
10 1
|
10天前
|
Shell 数据安全/隐私保护 Docker
如何使用Docker安装FTP服务器?
【4月更文挑战第25天】
23 0
如何使用Docker安装FTP服务器?
|
28天前
|
关系型数据库 MySQL Linux
服务器脚本推荐,yum更新阿里镜像源、安装Docker、使用Docker安装MySQL服务
服务器脚本推荐,yum更新阿里镜像源、安装Docker、使用Docker安装MySQL服务
90 1
|
1月前
|
应用服务中间件 nginx Docker
docker搭建在线Markdown服务器
通过以上步骤,你就可以使用Docker搭建一个简单的在线Markdown服务器,方便浏览和编辑Markdown文件。注意,此方法适用于快速部署,如果需要更多高级功能,可以考虑使用专门的Markdown服务软件。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
65 0
|
2月前
|
jenkins Java 持续交付
Docker Swarm总结+Jenkins安装配置与集成snarqube和目标服务器(4/5)
Docker Swarm总结+Jenkins安装配置与集成snarqube和目标服务器(4/5)
47 0
|
3月前
|
缓存 安全 Docker
Docker 部署Streamlit项目 | Streamlit如何部署到云服务器
Docker 部署Streamlit项目 | Streamlit如何部署到云服务器
|
弹性计算 运维 Kubernetes
使用ECS服务器学习Docker
使用ECS服务器学习Docker
使用ECS服务器学习Docker
|
9天前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
110 6