社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

为什么我们从 Docker 转向了 Go?

码小辫 • 3 年前 • 217 次点击  

码小辫
专注更多编程视频和电子书
天天在用钱


作者 | meezeeworkouts 
译者 | 弯月
出品 | CSDN(ID:CSDNnews)

在以往的很多项目中,我们都采用了Docker,而且效果都很不错(大多数时候都不错,只不过有时我们的生产系统中的红帽系统文件会出一些莫名的状况,但可能并不是Docker的问题)。但是,这一次我们并没有采用Docker,原因是没有必要。我们用golang编写了Web服务和静态的html,并且还是用了golang 1.16的新指令//embed,最终得到了一个可部署的二进制文件。 

作为一个自强自立的创业公司,我们可以使用的资源非常有限。正是出于这个原因,我们才选择了Golang。我们也渴望能够花费几个星期来构建完善的CI / CD管道、优雅的部署流程以及漂亮的仪表板。但是,为了吸引用户订阅,我们需要交付软件。任何与这个目标没有直接关系的工作都要靠边站,Docker就是其中之一。Docker本身的代码量超过了900万,其自身的bug不可避免,而且还有其自身的特质。

使用Golang可以让我们构建速度非常快的Web服务(至少能够满足我们当前的增长水平),而且可伸缩性非常强(至少能够满足我们当前的需求)。我们的每台服务器每秒可以处理数千个事务。但实际的业务量每秒还不到一千。但是,可以肯定的是,我们用node或deno也可以达到相同的水平。V8引擎也非常快。如果你的最大流量每秒只有大概两个事务(我们有一个健身视频应用,但肯定没有推特那个水平的扩展性问题),那么实际上无论选择哪种编程语言都没有关系。如果容量不足,只需升级服务器就可以了。

我们选择Go的原因是,golang的打包比node、Java或C#好太多了。最终只有一个二进制文件。

构建时,只需运行:

go build

测试时,只需运行:

go test

部署时,只需运行:

scp app user@host:ssh user@host “nohup ./app”

我们的实际工作的确比上述“稍微”复杂一些,我们创建了一个SystemD脚本在服务器启动时运行服务。我们还投入了一个专用的构建服务器,其上运行了一个10行代码的shell脚本,而这个脚本可以完成所有的构建工作(git clone、go build、go test、go lint、go vet)。但是,我们之中还有人认为这太复杂了。过几天,可能我们还会添加一个界面(比如https://www.rundeck.com)来控制部署。 

我们花在建立构建和部署系统的总时长非常短,我们甚至都不知道如何衡量。

下面,我们来算一算学习Docker、部署Docker、还有故障排除等工作需要花费多少时间。即便你非常喜欢Docker,而它也改变了你的生活,但它是必不可少的吗?你真的认为Docker比我们使用golang内置功能建立的构建和部署还简单吗?我敢向你保证,并没有。

对于Docker,你有何想法?请在下方留言。

原文链接:https://launchyourapp.meezeeworkouts.com/2021/03/why-we-dont-use-docker-we-dont-need-it.html?m=1

声明:本文由CSDN翻译,转载请注明来源。

-END-

关注视频号,参与留言送书活动

↓↓↓↓

一个认真分享的小编

前沿技术 /名企内推 /干货分享

商务合作:dot3721
长按左侧二维码添加

点分享

点点赞

点在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111113
 
217 次点击