3条建议,助您迈出容器策略第一步!

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 您获悉了一个很棒的新流程或是新工具,知道它可以帮您直击痛点,而且它确实可以解决某种需求。如果可以恰当的推出它,可能会改变游戏规则。

screenshot

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


您获悉了一个很棒的新流程或是新工具,知道它可以帮您直击痛点,而且它确实可以解决某种需求。如果可以恰当的推出它,可能会改变游戏规则。您通过自己的努力完成了调研,并亲自测试了它,运行了一个简单的 PoC (概念验证)并解决了相关问题,您觉得现在是时候进行广泛的推广并扩展到全公司。当您发出通知告诉大家这个新流程或是新工具即将上线使用时,几乎没有人使用它们。究其原因是因为团队不确定或对迈出第一步感到焦虑。这种现象就是我所说的“接受焦虑”,这里有一些技巧帮助我成功地将容器即服务(Container-as-a-Service, CaaS)平台引入到企业规模的公司。


牢记您的目标

自己想出的点子,一定会认为它是最棒的。但仅仅因为某件事对您来说很重要,并不能保证您的解决方案会转化为其他人的解决方案。我们要遵循互惠原则 —— 当有人为我们做了某件事,我们天生就会被迫为他们做一些事情作为回报。

第一个建议:问问客户:“您想做什么?”

如果您的客户能够明确哪个工具和策略能够实现他们的愿景,那么他们就不会与您交谈了。如果问题是“您需要什么?答案可能是“我需要“X”工具的设置与“Y”的配置,就像我在“Z”的 GitHub 帖子中看到的那样。但是,如果问题是“您想做什么?”,那么您将更好地了解客户的目标以及了解如何调整您的解决方案来实现客户的目标。

当向我们的开发团队提出“您想做什么?”这个问题时,答案是他们希望能够更快地创建原型、更好地控制自己的基础架构并且使用自动化测试(CI / CD)进行代码推送。

在此之后,我们的团队使用了容器化解决方案,拥有了几乎完全自主的环境,并能够充分利用全自动的 CI / CD 管道。现在,不是我们的团队试图将我们的解决方案推广给其他的开发团队,而是其他的开发团队向我们询问,他们需要做些什么才能加入并使用这个系统。结果是,不仅其他的开发团队被说服使用我们的策略,他们还开始帮助我们开发自动化。这种转变是因为我们一开始就询问如何帮助他们解决目标。


推进的目的

当我们第一次开始研究容器时,说我们什么都不知道并不夸张。容器是新的热门,Docker 是可以让我们所有的 DevOps 梦想成真的黑魔法。我学习了所有关于集群架构、etcd、rethink 和 raft 的知识,但创建第一个 Dockerfile 可能还需要几个月的时间。这是为什么呢?因为我读过的有关容器的所有内容都告诉我他们将会改变游戏规则,我很害怕学习 Dockerfile “语言” 需要花费很多时间(想想 AWS CloudFormation),以至于我没时间关注制定整体的 CaaS 战略计划。最后我请了一位同事向我展示他们编写的 Dockerfile,并向我介绍语法(再次考虑 AWS CloudFormation),这是他们向我展示的Dockerfile:

screenshot

我的天!Dockerfile 只需 3 行代码可以支持一个 web 服务器。突然之间,我确信为之努力的战斗已经胜利了。

第二个建议:与他们一同迈出第一步

不要寄希望于一两封邮件就可以让大家相互理解,不要等待团队从零开始起步。相反,花时间举办一场研讨会或一对一坐下来向他们展示如何入门,实际上比他们想象的要简单得多。通过花费30分钟创建第一个 Dockerfile 文件开始,开发团队就会有信心使用容器。在我们采用这种研讨会的方法之前,开发团队可能需要数周或数月才能开始尝试创建他们的第一个容器。当开发团队在 Docker 中运行了第一个 Prod 实例之后,他们开始对使用容器和 CI/CD 产生了浓厚的兴趣。而且,一旦开发团队将其第一个应用程序容器化后,他们就能够在短短几天内教授其他团队成员如何迁移新的应用程序。


不要好高骛远

据估计,在14世纪,黑死病已造成欧洲30-60%的人口死亡。总的来说,瘟疫可能使世界人口从估计的4.5亿减少到3.5 - 3.75亿(维基百科)。在21世纪,“病毒式传播”在传播能力上与黑死病类似。同样,我们的推广计划是在公司内部进行有机传播,直到项目像病毒一样扩散开来。

最后一个建议:有节奏的增长,在自己适合的深度游泳

由于没有使用Docker、Swarm 或 CI / CD 的经验,所以我们采取小步快跑的迭代步骤而不是一开始就排列出完美的步骤。我们从一个小型 PoC 小组开始,我们知道他们对新技术充满热情。我们从处于新开发阶段而非关键业务的应用程序开始。在将这些应用程序投入生产之后,我们引入了另一个试验小组来测试我们第一波创建所使用的流程和自动化。从这些团队的探索中,我们创建了示例和参考架构,以培训新团队使用 Docker。现在我们有大约50个开发团队和400多个应用程序都在我们的 CaaS 平台中使用 CI / CD。在这些团队中,85%的团队能够在不需要我们团队帮助的情况下将额外的应用程序带到平台上生产,并且能够教授他们周围的团队使用 CI/CD 在 Docker 中设置他们的应用程序。在6个月的 PoC 中,我们有了两个开发团队,现在 Docker 已经成为我们公司首选的运行时环境,每周都会有有1到3个新团队加入。进入 2019 年,我们准备应对将数千个旧的应用程序迁移到 Docker 的挑战,我们相信这在很大程度上是因为这种分阶段的方法,使得我们能够保持势头,同时永远不会让项目脱离正轨。


如果您已经实现了您的愿景,那么我希望您能从这些建议中找到一些有用的东西。如果您是 Docker 新手,在发现阶段或等待决定 Docker 是否适合您的解决方案时,我能给您的最好建议是勇敢的迈出第一步!

相关文章
|
1月前
|
Kubernetes 开发者 Docker
探索微服务架构下的容器化部署策略
在当今快速发展的软件工程领域,微服务架构已成为构建可扩展、灵活且高效系统的首选方法。与此同时,容器技术,尤其是Docker和Kubernetes,为微服务的部署提供了前所未有的便利和效率。本文将深入探讨微服务架构下的容器化部署策略,包括容器化的基本概念、微服务的特点、以及如何利用Docker和Kubernetes等工具实现高效、可靠的服务部署。通过具体案例分析,本文旨在为开发者提供一套完整的微服务容器化部署解决方案,帮助他们在复杂多变的软件开发环境中保持竞争力。
|
Docker 容器
docker容器的重启策略
docker容器的重启策略
662 0
|
13天前
|
测试技术 Go 云计算
Go语言优化云计算与容器化环境的策略与最佳实践
【2月更文挑战第15天】在云计算和容器化环境中,Go语言的应用和优化策略对于提高系统的性能和效率至关重要。本文深入探讨了如何使用Go语言优化云计算和容器化环境,包括内存管理、并发编程、代码优化等方面的最佳实践,旨在帮助开发者充分利用Go语言的优势,提升系统的整体性能。
|
3月前
|
Docker 容器
百度搜索:蓝易云【docker篇-重启策略+run容器常用参数】
总结: 通过重启策略和 `docker run`的参数,你可以在Docker中管理容器的重启行为和配置。重启策略定义了容器在退出或崩溃后的重启行为,而 `docker run`的参数可以用来设置容器的其他行为,如运行模式、端口映射、文件挂载等。
63 0
|
3月前
|
Docker 容器
Docker 容器的重启策略
Docker 容器的重启策略
|
10月前
|
安全 容器
并发编程-14线程安全策略之并发容器(J.U.C)中的集合类
并发编程-14线程安全策略之并发容器(J.U.C)中的集合类
57 0
|
10月前
|
安全 Java 容器
并发编程-13线程安全策略之两种类型的同步容器
并发编程-13线程安全策略之两种类型的同步容器
57 0
|
10月前
|
Kubernetes 网络协议 数据可视化
「容器平台」Kubernetes网络策略101
「容器平台」Kubernetes网络策略101
|
容器 Perl
Kubernetes----Pod配置容器重启策略
Kubernetes----Pod配置容器重启策略
1581 0
|
Kubernetes Cloud Native 应用服务中间件
如何合理使用 CPU 管理策略,提升容器性能?
CPU Burst、拓扑感知调度是阿里云容器服务 ACK 提升应用性能的两大利器,它们解决了不同场景下的 CPU 资源管理,可以共同使用。点击下文,查看详情!
如何合理使用 CPU 管理策略,提升容器性能?

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版