开发环境与生产环境中的Docker--第二篇
admin
2023-04-06 03:03:36
0

开发环境与生产环境中的Docker--第二篇



对于大多数团队而言,采用Docker主要是为了让开发人员更快地迭代和缩短发布周期,这对于开发环境是非常有益的,但对于生产环境,在同一台服务器上运行多个Docker容器,可能会导致安全方面的漏洞。事实上,几乎所有关于在生产环境中运行Docker的话题,都是围绕着将开发环境与生产环境区分开来进行的:一是编排,二是安全。


在生产环境中,Docker有时是用于接收公共网络流量的容器,有时则是用来处理来自负荷的异步后台作业,不管哪种用途,在生产环境中运行Docker与在其他环境中运行相比,最主要的差异就是都需要在其安全性与稳定性上投入较多的注意力。Docker生产环境很难管理,它简化了从开发到生产的工作流程,但同时增加了安全和编排的复杂度。所有在生产环境中运行Docker的团队,都会在传统的安全最佳实践上做出一项或多项妥协。如果无法完全信任容器内运行的代码,那么就只得选用容器与虚拟机一对一的拓扑方式。对于很多团队而言,在生产环境中运行Docker的优势远远大于其带来的安全与编排问题。


哪些东西不要Docker化?不要期望能在Docker容器中运行所有的东西。Herok风格的“十二要素”应用是最容易Docker化的,因为它们不维护状态。在理想的微服务环境中,容器能在几毫秒内启动、停止而不影响集群的健康或应用程序的状态。Docker还不适用于任何需要动态调整CPU和内存要求的应用。允许动态调整的代码已经完成,但尚不清楚何时才能在一般的生产环境中投入使用。目前,若对被容器的CPU和内存的限制进行调整,需要停止并重新启动容器。另外,对网络吞吐量有高要求的应用进行最佳优化时不要使用Docker,因为Docker使用iptables来完成宿主机IP到容器IP的NAT转换,通过禁用Docker的NAT来提升网络性能是可行的,但这是一个高级使用场景,很少有团队会在生产环境中这么做。


Docker最好的使用方式是将应用程序代码预先打包成一个Docker镜像,镜像通常包含所有的应用程序代码、运行时的依赖及系统的需求,而包含数据库凭证和其他敏感信息的配置文件通常在运行时添加,而非内建到镜像中。有些团队会在开发机上手工构建Docker镜像,然后推送到镜像仓库,之后再从仓库中拉取镜像到生产环境宿主机中,这是个很简单的用例,虽然行得通,但从工作流和安全角度考虑并不理想。一个更常见的生产环境示例是,使用持续集成/持续交付系统在应用程序代码或Dockerfile文件发生变更时自动构建新镜像。


最近几年,科技发展迅速,从物理服务器到虚拟服务器,从虚拟服务器到拥有PaaS环境的云计算,无论是否采用了全新架构,Docker镜像都可以在当前环境中很容易地被使用,要使用Docker,并不需要立即从单体应用程序迁移到面向服务架构,有很多用命允许在不同层次上集成Docker,以下是Docker常用的场景:

    。使用以镜像为基础的部署方式取代常规代码部署系统;

    。安全地在同一台服务器上运行遗留应用和新应用;

    。使用一个工具链循序渐进地迁移到面向服务架构;

    。管理云端或裸机上的水平扩展和弹性;

    。确保从开发环境到预演环境再到生产环境的一致性;

    。简化开发人员的机器设置和一致性;


将应用的后台程序迁移到Docker集群中,同时保持网页服务器和数据库服务器不变是开始使用Docker常见示例。另一示例是将应用的部分Restful Api迁移到Docker中运行,前端使用Nginx代理在遗留服务和Docker集群之间路由通信,通过使用此类技术,团队可以渐进式地从单体应用无缝地迁移到面向服务架构。如今的应用程序往往需要几十个第三方库,用于加速功能开发或连接第三方SaaS和数据库服务。每个库都可能产生BUG,或是让用户陷入版本依赖的泥沼,再加上库频繁更改,要在基础设施上完成工作代码的持续部署而不引起失败,压力巨大。Docker可贵的镜像思想使得技术团队在部署工作代码时,不论是单体架构、面向服务或是二者的混合,由于代码及其依赖捆绑在同一个镜像中,所使用的方式对每次部署都是可测试、可重复、文档化且一致的,一旦一个镜像构建完毕,就可以部署到任意多个运行着的Docker守护进程的服务器上。另外一个常见的Docker用例是跨环境部署一个单一容器,其典型的代码路径是从开发环境到预演环境再到生产环境,容器为整个代码路径提供了一个一致的、可测试的环境。作为一个开发人员,Docker模型允许在其个人电脑上调试与生产环境完全一致的代码,开发人员可以很容易地下载、运行和调试有问题的生产环境镜像,且无需事先对本地开发环境进行修改。




相关内容

热门资讯

玩家分享攻略“白金岛游戏有没有... 您好:白金岛游戏这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
凤凰晚报|银行女经理和丈夫先后... 今日人物【银行女经理和丈夫先后自杀,储户取款被告知78万存款只剩4000多元】今年4月12日,36岁...
【第一消息】“同城游跑胡子可以... 您好:同城游跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款...
今日重大发现“胡一把麻将到底有... 有 亲,根据资深记者爆料胡一把麻将是可以开挂的,确实有挂(咨询软件无需打...
腾冲深部构造活动云南省野外科学... 2025年12月24日,腾冲深部构造活动云南省野外科学观测研究站获得云南省科技厅批准。 依托云南省地...
最新引进“乐山游戏中心怎么开挂... 最新引进“乐山游戏中心怎么开挂?”(果然有透视挂)您好,乐山游戏中心这个游戏其实有挂的,确实是有挂的...
微短剧精品创作分享会暨微短剧《... 来源:滚动播报 (来源:文旅中国) 12月27日,微短剧精品创作分享会暨微短剧《“发”家致富》启动仪...
今日重磅消息“微信链接牛牛真的... 网上科普关于“微信链接牛牛有没有挂”话题很是火热,小编也是针对微信链接牛牛作*弊开挂的方法以及开挂对...
【今日要闻】“决战血流麻将究竟... 网上科普关于“决战血流麻将有没有挂”话题很是火热,小编也是针对决战血流麻将作*弊开挂的方法以及开挂对...
【第一资讯】“腾威互娱究竟有挂... 【第一资讯】“腾威互娱究竟有挂吗?”(太坑了果然有挂)您好,腾威互娱这个游戏其实有挂的,确实是有挂的...