在本地,还是去云端?这一辩论由来已久,尤其是在云计算兴起时,那时人们一直在反复思考是该将工作负载保留在本地数据中心还是迁移到云主机上。

但是,Docker带来的技术革命把这场辩论引入了一个新的层面。随着越来越多的机构采用容器,他们迫切地想知道,托管容器的最佳位置是本地还是云端。

如你所想,其实根本不存在适用于每个人的单一标准答案。在本文中,我们将分析云和本地容器部署的利与弊,以及您所在的组织若想要做出正确选择,应该考虑哪些因素。

DevOps、容器和云

首先,让我们快速回顾一下DevOps、容器和云之间的基本关系。从多方面评测,DevOps和容器的组合不失为在云中做IT的一种方法。毕竟,许多人把应用系统迁移到云上的主要原因就在于容器最大限度地提高了可伸缩性和灵活性,这也是DevOps运动的关键目标。像虚拟化和持续交付似乎完全适用于云(或云计算环境),并且很有可能的是,如果DevOps起源于敏捷世界,它将自然而然发展出适用云计算的IT实践进程。

DevOps和本地部署

然而,这是否意味着容器化、DevOps和持续交付在某种程度上不适用本地部署,甚至与本地部署根本不相关?不尽然,“本地部署”已经有所改变了,它现在具有云的许多特性,包括高度虚拟化,以及通过抽象实现硬件约束的相对独立性。

一般而言,本地系统符合“私有云”的定义,并且它们能够很好地适用于DevOps核心的自动化开发和操作周期。

事实上,DevOps/容器领域的许多主要厂商(包括AWS和Docker)为本地部署提供了强大的支持,而复杂强大的容器管理工具(如Rancher)旨在实现跨公共/私有云边界无缝工作。可以毫不夸张地说,容器,对于云或本地部署而言已经没有太大区别了。

本地部署的原因

为什么要在本地部署容器?

本地资源

也许最直接的原因在于需要直接访问和使用如存储或特定于处理器的操作等硬件功能。 例如,如果你使用一个图形芯片阵列进行矩阵密集型计算,你可能会被绑定到本地硬件。

容器,和虚拟机一样,总是需要一定程度的抽象,但本地运行的容器会将应用程序和底层metal之间的抽象层数减少到最小。您可以通过容器直接访问底层操作系统硬件,这对于裸机上的虚拟机或公共云中的容器而言,就难以实现了。

本地监控

同样,您也可能需要容器来监视、控制和管理本地设备。在工业环境或研究设施中,这可能是重要考虑因素。当然,您也可以使用更传统的软件类型执行监控和控制的功能,但是,容器化和持续交付的结合使您能够根据制造过程或研究程序的变化快速更新和调整软件。

本地安全控制

当涉及到在内部部署容器时,安全性也可能是其中一个主要考虑因素。由于容器从底层操作系统访问资源,它们具有潜在的安全漏洞,为了保证容器安全,必须采取向容器系统添加安全功能这类积极措施。

大多数容器部署系统都具有内置的安全功能。然而,本地部署为添加额外安全层起到了积极作用。除通过控制对物理设施的访问之外,内部容器部署还能够利用底层硬件的内置安全功能来提升安全性。

传统基础架构和云迁移

如果你不能放弃现有的内部部署基础架构怎么办?如果一家公司有相当数量的资金投资在硬件上,或者根本不愿意或者不能够一次性地从一个大型和复杂的互连的遗留应用程序迁移,那么暂且维持现有状态可能是最实用的(或最谨慎的)中短期选择。通过内部引入容器(和DevOps实践),您可以为逐渐迁移到云计算铺设一条相对容易的路径。

在本地测试,在云中部署

您还可能希望在本地开发和测试容器化的应用程序,然后在云中部署。本地开发允许您密切监控软件与部署平台之间的交互,并在受控条件下观察其操作。

通过将应用程序在云中的行为与其在已知的受控环境中的行为进行比较,可以使隔离未预料到的部署后问题变得更容易。它还允许您在一个可信任的环境中部署和测试基于容器的软件,而不必担心可能会泄漏给您的竞争对手。

公共云/私有云混合

在比较云和本地容器部署时,还需要考虑另一点:公共云和私有云部署并没有完全不兼容,甚至在许多方面,它们之间根本没有明显的界限。

当然,对于传统的单片应用来说,它可以驻留在私有服务器上,同时通过基于云的接口访问远程用户,但通过容器,在适当时候,公共/私有的界限可以更加模糊和灵活。

例如,您可以通过公共云中的容器部署大部分应用程序,令某些功能在本地容器上运行。 这使您能够对诸如安全或本地设备访问等事项进行精细控制,同时您还可以利用公有云部署的灵活性、广泛覆盖面和成本优势。

如何正确组合

哪种类型的部署对您的公司更好?

一般来说,初创公司和中小型企业对绑定到硬件的需求不会那么强烈,因此它们很容易迁移到(或开始迁移到)云上。更大规模的公司以及需要管理和控制本地硬件资源的公司则更有可能倾向于本地基础架构。在这些企业中,内部部署容器可以作为整个公有云部署或混合私有/公有部署的桥梁。

然而,选择公有云还是本地,要取决于您的业务的具体需求。这世界不存在两个一样的企业,也没有两个软件部署是一样的,但无论您的软件/IT目标是什么、您如何计划去达成,在内部部署和公有云部署之间,都有足够的空间令该计划灵活进行。

本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/1909910

DevOps和容器:本地or云端,如何选择?相关推荐

  1. 一种本地和云端相结合的语音识别系统及方法与流程

    本发明涉及语音识别领域,特别是涉及到一种本地和云端相结合的语音识别系统及方法. 背景技术: 目前语音识别作为一种常用的人机交互技术,已广泛应用于各类电子产品中,以其自然方便的交互方式收到了消费者的喜爱 ...

  2. 【JY】LS-DYNA求解效率深度测评│六种规模,本地VS云端5种不同硬件配置

    LS-DYNA是一个以显式求解为主,隐式求解为辅的通用非线性动力有限元分析程序,核心是求解器. 用户主要是高校/科研机构和航空航天.汽车.电子/高科技.船舶.土木工程.制造和生物工程等行业,包括汽车碰 ...

  3. Obsidian 从本地到云端

    原文: https://www.ftls.xyz/posts/obcsapi-fc-simple/ 作者:恐咖兵糖 Obsidian 从本地到云端 Obsidian 作为本地笔记软件,在使用了多端同步 ...

  4. 与容器服务 ACK 发行版的深度对话最终弹:如何通过 open-local 玩转容器本地存储

    记者: 各位阿里巴巴云原生的读者朋友们大家好,又跟大家见面了.今天是我们的老朋友『阿里云容器服务 ACK 发行版』最后一次做客探究身世之谜系列专栏,在之前的访谈中,它为我们带来了精彩的讲解,感兴趣的朋 ...

  5. 家庭安全摄像头:应选择本地还是云端存储?

    如果你担心家中遭窃,无线安全摄像头显然是一个新的解决方案.它们能够一直接入WIFI网络,具有动作监测.夜视甚至是面部识别功能,可以在发生可疑情况时第一时间向你的手机发送通知,非常方便. 目前,家庭安全 ...

  6. 华为云DevCloud管理App开发之一:Git连接华为代码托管CodeHub,iOS和Android本地和云端开发环境搭建

    目录 背景 1 华为云DevCloud端建项目 2 华为云DevCloud端建仓库 3 本地Xcode通过Git连接华为云LiOS仓库 4 本地Android Studio通过Git连接华为云LAnd ...

  7. 容器化时代我们应当选择Kubernetes

    昨天发的文章<基于Kubernetes 构建.NET Core 的技术体系>,有同学问.NET Core上有Spring Cloud类似的平台吗? .NET Core出现这么久了,这个为云 ...

  8. 为啥Underlay才是容器网络的最佳落地选择

    导语: 几年前,当博云启动自研容器网络研发的时候,除了技术选型的考虑,我们对于先做 Underlay 还是 Overlay 网络也有过深度的讨论.当时的开源社区以及主流容器厂商,多数还是以 Overl ...

  9. 判断本地和云端通讯录是否一致

    由于判断手机号是否相等是非常困难的,因为本地可能存在多个相同联系人名字,云端也是. 所以比较两个list字符串是否相等,这样效率极大的提高. //是否存在手机号 private boolean isP ...

最新文章

  1. js通过月份判断前三个月_怀孕前三个月如何判断胎儿发育是否健康,看HCG翻倍情况,快收藏...
  2. SpringCloud(第一部分)
  3. 【算法】字符串近似搜索(转)
  4. 93. Restore IP Addresses 复原IP地址
  5. 四色原型图进行业务建模的思考
  6. sybase数据库配置经验交流
  7. linux gcc编译器误用-MM导致出现linker input file unused because linking not done
  8. java 可插拔注解_20200311 8. 注解和可插拔性
  9. jadc连接oracle,用jdbc连接oracle的第一次经历
  10. -----表达式-处理字符串表达式// A(A>0.5)
  11. Codeforces Round #544 (Div. 3) A.Middle of the Contest
  12. 2016年10月20日 .NET Core 1.0.2 更新
  13. 改变你思维模式的书单
  14. GDI简单绘图(二)- 绘制验证码
  15. 基于STM32单片机的精彩设计实例合集
  16. 1946电子计算机诞生什么影响,自1946年世界上第一台电子计算机诞生至今.doc
  17. LM358电流检测电路
  18. Java录制网页_Java 录制语音的实现代码
  19. Android设备虚拟摄像头技术实现
  20. BIND的进阶二:视图,日志,转发,子域的授权

热门文章

  1. 人类倾向于高估人工智能的进步,低估自身智能的复杂性-读《AI 3.0》
  2. 搞基础理论研究有什么用?
  3. 分析 | MEMS传感器市场报告
  4. 工业4.0:数字化供应链的三个方向
  5. LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  6. 高精度定位!“天地一体”基础设施助中国北斗在商用领域“弯道超车”
  7. 7个小技巧,老板再也无法留我加班了...
  8. 被马斯克送上天的《银河帝国》和互联网江湖 | 赠书
  9. 死磕 java集合之TreeMap源码分析(二)- 内含红黑树分析全过程
  10. 通过jquery的serializearray处理表单数据成json格式,并提交到后台处理