运行容器的12个阶段以及4个测试情景

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文讲的是运行容器的12个阶段以及4个测试情景【编者的话】本文介绍运行容器的12个阶段以及4个测试情景来帮助完美运行以及测试容器。
本文讲的是运行容器的12个阶段以及4个测试情景【编者的话】本文介绍运行容器的12个阶段以及4个测试情景来帮助完美运行以及测试容器。

这篇文章是对我们的网络研讨会(Codefresh周四,2017年2月9日)的一个简短总结。研讨会包括两个论题:“Docker内在/外在:由Daniel van Gils实现的现实中“真实”的在生产中应用的容器栈和Alexei Ledenev对于容器驱动开发的测试策略。如果你错过了会议, 点击这里 了解更多关于Docker在生产运行和检查的测试策略部署方面的技巧和窍门。

在生产中运行容器的12个阶段

前两个阶段是非常简单的。你已经知道开发你工作的项目所需要的方法。你听说了容器技术,然后你看看容器到底能做什么以及它看起来到底有多神奇!

接下来,在第三阶段,你开始想,“我怎么能在我目前的工作流程中运用到容器技术?“然后你进行一些调研来论证是否容器即使可行,在此你需要在生产上实践使用容器,积累实践知识和经验。

阶段四:拜见你的导师!你的导师是已经在生产中使用容器,比你更加了解容器,而且很乐意在容器的旅程中带你飞。

利用artichoke模型,可以看出你所在公司当中的每一个从容器受益的角色。每个人都需要理解容器的核心概念及其对组织的影响。这是转变管理的一部分。

阶段五:现在,你穿过阈值并开始真正投入到容器机器当中。试着在一个简单的项目当中应用容器,然后再其它更加复杂的项目上应用容器技术。这个过程中将会涉及大量的测试(Alexei的讲话中更多的介绍了关于容器的测试)。

黄金法则:确保容器先在本地测试通过,然后在移植到生产环境!全局思考,本地执行。

阶段六:你使用容器,并且遇到一些问题,然后犯一些错误。这同样是此过程的一部分。试着退一步,花时间去找到一个解决方案,你会发现并没有捷径。在这个阶段大多数开发人员意识到他们的Docker镜像包含太多的组件,然后其中有一半的组件是没有任何用处的。试着简洁化你的镜像。

记住: 屎一样的组件被打包进去,一定会产生屎一样的镜像。你不可能把屎一样的东西改进的不像屎。
yi.png

欢迎来到七个阶段。现在,你更了解你的镜像需要长什么样子。你需要保持轻量、安全、快速、稳定、设置!
  • 轻量:将你不需要的层移除掉。
  • 安全:确保你有最新的更新,记得要删除所有的秘密。
  • 快速:遵循最佳部署实践进行运行性能测试。
  • 稳定:对你的Docker镜像进行版本控制。
  • 设置:不变的;不要把数据库或复杂的卷放到你的容器。可以,但这项技术还太新。

阶段八。终于到了生产阶段!首先,让我们做一个真是的检测。每个人都真的使用微服务吗?答案是否定的。
  • 60%开发人员使用一个单独的比较重的容器。这是可以理解的,因为它是学习曲线的一部分。
  • 30%的开发者使用api方法,主要是在处理前端。
  • 7%的开发者将对容器进行架构。这里包括workers、API和后台进程等。
  • 3%的开发者是真正的在他们的项目中使用微服务。

阶段九。现在,你知道容器生态系统的所有部分以及你需要掌握哪些。这是你的容器初级形态:
er.png

阶段十:概念的验证。完成了。你知道如何实现容器,你需要一些空间去了解容器之外的服务和产品,并密切关注市场的新技术。

阶段十一。随着你不断的积累知识和经验,你形成了一个新的方式,也就是你明白在基础设施中你需要如何去适应你的容器。

阶段十二。你已经是一个容器圈的英雄。你以及加入你的旅程的人都了解到了容器的力量以及它如何应用到所有的项目和部门。

4个测试场景

Alexei 开始进行了容器架构组件的描述,列出了使用容器技术好处的清单,如可移植性、速度、配置、灵活性等等。

在我们介绍测试场景之前,我们介绍一下演示应用程序的组件和测试样例:
  • demo应用程序:所有的测试都是用Golang写的基于简单的Rest API服务器。
  • Postmen:Rest API测试工具以及Chrome浏览器扩展。
  • Newman:由Postman读取测试场景失败。
  • Node.js 应用

san.png

1. 修改现有的Pipeline

场景1号(又名天真方法)需要修改现有的管道。

从29:30开始网络研讨会上可以看到第一个场景演示。

输出结果:你会获得一个熟悉的CI流,可移植应用程序,以及较小的Docker镜像,但不会有便携式开发或测试环境。

这意味着它在CI之外是不可能复制相同的开发或测试环境。同样的程序必须为每台机器的重复。

2. 我们如何改善这种情况?

把所有的Cl流(编译和测试)移至容器中。

从33:38开始网络研讨会上可以看到第二个场景演示。

结果是,你将获得一个简单的CI流,可移植的应用程序和可移植的开发和测试环境。缺点是,Docker镜像变得更大、被污染而且存在一些不必要的依赖包。每次都必须重新构建镜像包的代码,或者测试更改的话你需要决定如何管理测试结果。

3. 把镜像拆分成两个

在这个测试场景中,你还有一个Dockerfile包含应用程序和测试代码,但是你需要提取出镜像层然后拆分成两个镜像。

从38:31观看网络研讨会第三个场景演示。

现在,应用程序具有可移植性以及便携式开发和测试环境,最后得到两个不同的镜像和一个Docker file,但代码或测试更改时你仍然需要重新构建整个Docker 镜像。同时,你需要一些shell“魔法”来创建一个清洁的应用镜像。

4. 创建Docker自动化流

你可以通过按照每一步来实现容器自动化,包括构建和测试。

从42:56观看网络研讨会第四个场景演示。

你会实现应用程序的可移植性,便携的开发和测试环境(这样你就可以在任何地方构建和测试),一个很小的应用镜像,以及实现快速构建。然而,你仍然需要一个工具来自动化和编排Docker建立流,如bash、ansible、dobi、 Habitus.oi 或Docker CI / CD服务像  Code Fresh 或者 Cloud66

原文链接: 12 Stages of Running Containers and 4 Testing Scenarios(翻译:边天亮 )

原文发布时间为:2017-05-18

本文作者:边天亮 

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:运行容器的12个阶段以及4个测试情景

相关文章
|
2月前
|
Ubuntu PHP Docker
一个可以运行的Dockerfile_php ,用来创建php容器镜像
该简介描述了一个基于 Dragonwell 8 Ubuntu 的 Docker 镜像,用于构建包含 PHP 7.4 及常用扩展的运行环境。通过更换为阿里云源提升安装速度,配置了 PHP-FPM 并暴露 9000 端口,使用自定义 Dockerfile 构建镜像并成功运行容器。
|
5月前
|
监控 安全 测试技术
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
149 14
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
|
9月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
598 279
|
7月前
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
8月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
887 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
8月前
|
人工智能 Prometheus 监控
容器化AI模型的监控与治理:确保模型持续稳定运行
在前几篇文章中,我们探讨了AI模型的容器化部署及构建容器化机器学习流水线。然而,将模型部署到生产环境只是第一步,更重要的是确保其持续稳定运行并保持性能。为此,必须关注容器化AI模型的监控与治理。 监控和治理至关重要,因为AI模型在生产环境中面临数据漂移、概念漂移、模型退化和安全风险等挑战。全面的监控涵盖模型性能、数据质量、解释性、安全性和版本管理等方面。使用Prometheus和Grafana可有效监控性能指标,而遵循模型治理最佳实践(如建立治理框架、定期评估、持续改进和加强安全)则能进一步提升模型的可信度和可靠性。总之,容器化AI模型的监控与治理是确保其长期稳定运行的关键。
|
7月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
177 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
8月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
127 1
|
10月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
8月前
|
PHP Docker 容器
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
142 14