当前位置 : 主页 > 手机开发 > 无线 >

将虚拟主机移动到Docker容器有什么好处?

来源:互联网 收集:自由互联 发布时间:2021-06-10
我正面临从旧的专用服务器迁移到具有更新硬件的服务器的迁移.目前我正在托管以下网站: PHP nginx mysql PHP nginx postgresql (venv)Flask nginx redis (venv)django nginx memcached postgres 所有的网站都是
我正面临从旧的专用服务器迁移到具有更新硬件的服务器的迁移.目前我正在托管以下网站:

> PHP nginx mysql
> PHP nginx postgresql
>(venv)Flask nginx redis
>(venv)django nginx memcached postgres

所有的网站都是完美无缺的.目前我正在考虑将它们装入容器中,但集装箱化的好处是什么?如果我在开发过程中使用Docker,那么专业人士是非常明显的,但旧的设置呢?我做了一些谷歌搜索,但我找不到经验丰富的开发者的任何答案.

我试图避免在这里提出意见,只是陈述我的经验,但问题的本质当然会引起不确定和辩论.

我最近完成了迁移到docker的工作.

主要优点:

>实施无国籍思维
>缩放
>易于部署
>相同的开发环境(*大量警告 – 见下文)

主要缺点:

>学习曲线
>抽象环境

首先要做的事情:

如果您的服务非常有状态(在文件系统上),您将不得不重新设计,或者几乎丧失Docker的所有优势.如果是这种情况,我会强调告诉你不要在这个阶段打扰,也许看到Docker作为一个更广泛的项目的中长期部分,转向12因素的应用程序. (https://12factor.net/)

即使您的底层架构已准备好进行迁移,如果您的站点永远不会“巨大”,那么学习曲线的优势也会大大超过优势.水平缩放很好,但是大多数站点永远不需要它,并且在大多数情况下,曲线丢失的时间可以更有效地用于减少上市/迭代时间.我对计算机和新技术非常有信心,这给我带来了4个非常可靠的月份,可以为你提供类似的外观.

发展警告:

“发展”优势充满了危险,特别是如果你在Mac上. PHP需要许多文件协同工作才能运行您的站点,而文件系统的差异意味着您的mac(运行docker)比服务器上的速度快4到5倍.这非常令人沮丧.有解决方案,但它们增加了学习曲线,但仍然不完美.

此外,相同环境的“梦想”也有许多噩梦般的方面.您是否要强制使用本地计算机来使用SSL?然后,您将需要在所有开发计算机上使用“假”自签名证书,因此每次尝试访问时都会向浏览器提出投诉.此外,与使用堆栈部署相比,NGINX与docker-compose的运行方式不同,使用compose而不是堆栈开发有很多优点,因此仅使用堆栈并不是一个真正的选择.我花了一个星期的时间来找出解决方案.

然而,一旦这些问题得到解决(我们转向Linux进行开发,并且有脚本来解决大多数其他问题,并且只需要告诉Chrome每隔2小时左右接受我的’假’证书),不可否认一切都非常顺利,我很高兴我有过这样的经历.新项目可能从一开始就利用码头工具,因为我对它的工作原理,陷阱的位置,以及如何解决问题有所了解.

结论:

我会建议您在业余时间学习码头工作一年左右,而不是在工作时承诺.现在有一个优势,我们已经经历了痛苦,但这是一个很大的痛苦.如果您确实在数小时内学会了它,请确保您通过持续集成,测试和工作来模拟全面的生产部署. Docker很容易上手,它会让你觉得它同样容易掌握.它真的不是.

网友评论