当前位置: 首页 > news >正文

赢得Docker挑战最佳实践

docker%E6%8C%91%E6%88%98-300x147.jpg

难怪Docker正在迅速发展。Docker,一个开源项目。仅仅两年,Docker价值近10亿美元,最近获得了9500万美元的资金。令人激动的是,我们看到有这么多开发者对这个项目的热情。然而,我将在下面讨论企业使用Docker本身是不够的。

现代IT问题

许多企业IT团队解决这两个问题:首先,开发者和运维者在优先级上并不能总是达成一致。企业必须应对的挑战将来自开发人员的代码和运维团队的代码切换。这两个团队之间的关系很难和谐相处。

第二,将代码从一个地方迁移到另一个可以是很困难的。因为你没有简单的方法打包应用程序代码,包括你的系统依赖性。你在不同的操作系统,不同的虚拟机或不同的IaaS上处理代码。

Docker的好处

Docker最激动人心之处就是可以解决企业的这两个问题。第一个问题似乎是确定的,因为开发人员和运维人员之间有着清楚的界限。开发人员考虑Docker容器内部发生的一切,运维人员思考容器外面发生了什么。Docker让这一切变得更加简单和方便,这是一个非常便携式的解决方案。

至于第二个问题,Docker通过使你在单个应用程序进程打包一切与你相关的应用程序。但这只是部分解决了这些问题。

Docker缺少什么

Docker可以形象化的比喻为像可叠起堆放的乐高积木。每个容器是一个乐高。乐高玩具的美丽之处是可以组装的砖块和建立各种各样的奇妙的东西。同样的概念也适用于Docker的容器中。利用Docker,诸如编排、监控、日志记录和扩展可能成为企业关注的问题。Docker容器可以为企业运行几个容器,但如果你运行成百上千的呢?这些都是需要考虑的一些问题,它们超出了Docker容器本身可以提供的范围,为什么PaaS平台是对Docker的补充。
让我们看看容器本身三个特定的缺陷:

1.装载容器

应用程序开发人员如何让一款应用进入容器?对于开发者来说构建Docker image也有一些负担,谁需要关注代码,不依赖于不同的系统的操作系统。这个问题的解决方案被称为buildpacks——对于PaaS是最好和最便携的选择。大多数PaaS生态系统正在让其标准化。Buildpacks允许你建立你的栈,包括在容器内部的所有系统依赖关系,以及配置应用程序的环境。开发人员只需要考虑他们的应用程序代码。他们不需要担心什么。Buildpacks配置你的应用程序。

2.编排运输过程

假设开发人员创建大量的Docker的容器。然后他们与运维团队通信:“Ship these. Deploy these to production”。IT运维人员如何传输这些容器并且以系统的方法来管理这些容器性能、安全性和遵从性?容器有很多乐高积木。他们如何管理?

这个问题的答案是Docker Schedulers。如今在市场上有大量的调度器,它们为你编排和运行的容器并且跨集群分发它们——而不用考虑你的云计算集群是什么。调度器是有弹性的,所以如果一个容器或机器或应用程序宕机,它会重新分配这些容器。从用户的角度来看,根本感觉没有停机时间。虽然这些调度器解决一部分运输问题是有帮助的,但是还有另一个重要的问题,企业仍然面临一个调度器不能解决的问题。

3.开发自助服务

企业文化当中对于自助服务似乎有着天然的缺陷。开发人员和IT运维之间也存在的天然的鸿沟。在某些方面,你可以说他们之间存在着一堵墙。经常发生的是,开发人员将构建一个应用程序,然后把它扔在墙那边给运维人员,并且希望应用能够一切运行正常。因此,将应用程序部署到生产需要数周或数月。所以听到开发者抱怨他们需要多长多长时间在生产环境中部署应用就不难理解了。

这种文化上的差异遭遇到破旧的基础设施时,后果就会更严重,因为一些企业仍使用过时的票务系统获取虚拟机,计算周期可能需要数周时间。

开发人员可以解决这个分歧,但他们需要特殊的工具。他们需要一种自助的方式为企业工作。给开发人员自由的部署在他们的应用,但是这些工具也必须满足安全性和遵企业的需求,包括多租户管理。开发人员可以专注于他或她的应用程序,但是企业需要考虑所有由不同的开发人员提交的应用程序。怎么处理这个?如何打破这堵存在与开发者和运维者之间的墙?

PaaS平台也有闪光的地方,它提供了一个介于你的应用程序和基础设施之间的平台。这个平台是一样的,从开发到生产,提供一个无缝应用交付体验。

一个新的开发方法

Docker的承诺是真正伟大的,帮助开发人员解决构建新应用时的重大问题。它将改变应用程序开发过程,但某些挑战必须克服从而使得企业获得最大好处。PaaS平台将促进Docker的发展,并且帮助其履行自己的承诺。

本文作者ActiveState CEO Bart Copeland,由张鹏程编译整理,转载自时速云。原文链接:http://blog.tenxcloud.com/?p=502

相关文章:

  • 小蚂蚁学memcache笔记—php操作memcache(2)
  • ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com
  • git学习------git commit命令的默认编辑器的修改
  • 新浪、万网前系统架构师高俊峰:统一监控报警平台架构设计思路
  • HTLM5 WebSocket权威指南
  • NSString+URLEncoding.h --使用Obj-C对数据等进行URLEncoding编码
  • 安卓很抱歉已停止运行
  • oracle中execute immediate的使用(select/insert/update/delete)(转)
  • log4j.properties模板
  • BZOJ 1324 Exca神剑 最小割
  • 滚动条美化,两款优秀的模拟滚动条插件
  • HDU 1230解题报告
  • DDR3基本知识及测试【转】
  • 数据结构与算法 Big O 备忘录与现实
  • Web API应用架构设计分析(2)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Angular4 模板式表单用法以及验证
  • CSS3 变换
  • docker容器内的网络抓包
  • Druid 在有赞的实践
  • Python打包系统简单入门
  • Vue.js-Day01
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 仿天猫超市收藏抛物线动画工具库
  • 官方解决所有 npm 全局安装权限问题
  • 回顾2016
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 最简单的无缝轮播
  • ​力扣解法汇总946-验证栈序列
  • # centos7下FFmpeg环境部署记录
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (六)软件测试分工
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .Net多线程总结
  • .net下简单快捷的数值高低位切换
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • []常用AT命令解释()
  • [20161101]rman备份与数据文件变化7.txt
  • [383] 赎金信 js
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [android] 请求码和结果码的作用
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [BZOJ 1040] 骑士
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [C++]拼图游戏
  • [codeforces] 25E Test || hash
  • [leetcode]Flatten Binary Tree to Linked List