- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼
传统应用容器化改造方案
1
丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。——《顾炎武》
人人好公,则天下太平;人人营私,则天下大乱。——刘鹗
目 录
1. 概念 3
2. 如何容器化 5
3. 更多相关考量 11
4. 总结 14
2
一寸光阴一寸金,寸金难买寸光阴。——《增广贤文》
百学须先立志。——朱熹
本文简要介绍什么是容器化,要在 Docker 容器中运行传统应用的缘由,容器化的过程,其间
可能遇到的问题,在用容器部署之后的其他步骤等。这将明显减轻部署工作的压力,并让应用
朝着零停机部署和横向缩放的方向前进。
注:本文专注在简化应用的部署过程,并不包含需要对应用重新设计的内容,比如高可用和横
向扩展。
1. 概念
什么是“传统”应用?
并没有一个特定的定义能够描述所有的传统应用,但它们有一些共同的特性:
• 使用本地文件系统来持久化存储,数据文件和应用的文件混合在一起。
• 在同一个服务器上运行很多服务,比如 MySQL 数据库,Redis 服务器,nginx web 服务器,
一个 Ruby on Rails 应用,以及一大堆定 时任务
• 使用大杂烩式 的脚本和手工流程进行安装和升级(文档也很简 陋)。
• 配置是存储在文件里 的,通常散落在多个位置 ,并与应用的文件混在一起。
• 进程间的通信是借助本地文件系统进行的 (比如在磁盘上放一个文件,另一个进程来读取) ,
而不是 TCP/IP。
• 按照单个服务器上只运行一个应用的示例 的方式来设计的。
传统应用的缺点
3
丹青不知老将至,贫贱于我如浮云。——杜甫
忍一句,息一怒,饶一着,退一步。——《增广贤文》
• 自动化部署很困难。
• 如果需要运行应用的多个不同的实例,很难让多个实例在同一个服务器上“共存”。
• 如果服务器停机,由于需要手工流程所以需要较长的时间来恢复。
• 部署新版本的过程基本是手动的,或者大部分是手动的,难以回滚。
• 很有可能测试环境与生产环境有较大差异,导致一些生产环境问题不能在测试期间发现。
• 很难通过增加新的实例来进行横向扩展。
什么是容器化?
将应用“容器化”的过程,就是让应用能够运行在 Docker 容器或类似技术中,它们能将操作
系统环境和应用封装在一起(完整的系统镜像)。由于容器能给应用提供近似于完整系统的环
境,这就为在不修改,或者少量修改应用的情况下 ,对应用的部署进行现代化改造提供 了一种
思路 。这也是应用的架构持续能保持 “云友好 ”的基础 。
容器化的好处
• 部署容易多了:使用新的容器镜像直接替换整个老版本。
• 自动化部署也相对容易 ,甚至可以完全 由 CI (Continuous Integration, 持续集成 )来驱动。
• 部署失败 时的回滚只要切换到之前 的镜像。
• 应用升级非常容易 ,因为现在没有可能 出错的“中间步骤”了 (不管 它是否影响整个部署过程
的成功 )。
• 相 同的容器镜像可以在不同的环境中充分测试,再直接部署到生产环境。这可以确保测试态与
生产态 的产品是完全一致的。
文档评论(0)