docker4dotnet #1 – 前世今生 & 世界你好

作为一名.NET Developer,这几年看着docker的流行实在是有些眼馋。可惜的是,Docker是基于Linux环境的,眼瞧着那些 java, python, node.js, go 甚至连php程序员都可以docker了,自己还在苦哈哈的装虚拟机,实在是急啊!所以对于.NET Core的发展格外关注,因为它的跨平台,意味着.NET Developer也可以docker了。

前世今生

d4d-1-001

.NET core 1.0并不是对原有的.net平台的升级,而是一次全新的重写,这个开发过程微软也史无前例的采用了全面开源的做法,在github上接受全球开发者的pull request。从上图可以看出,.NET core与现有的.net framework是并行的,是完全独立发展的一套开发平台。与之前的.net framework最大的区别在于跨平台,同时支持Windows/macOS/Linux 这三大操作系统。在GitHub上.NET Core的发布时间线可以看到在过去的2年里,微软一步步的将.NET 从Windows操作系统上剥离,逐步添加了对macOS和Linux操作系统的支持,同时与开源社区的合作也在逐步加深。

– 2014年7月 - 微软在github上发布了asp.net vNext(也就是asp.net 5)的前身,这时还是alpha阶段
– 2014年11月 - 发布了beta1,并且开始使用asp.net 5的名称
– 2015年10月 - 发布了beta8,这是最后的一个beta版本,这一年的时间里,微软逐步提供了对于macOS和Linux操作系统的支持;同时随着 Visual Studio Code 这个跨平台代码编辑器的流行,大家慢慢开始关注asp.net 5
– 2015年11月 - 发布了RC1,标志着asp.net 5基本具备了使用在生产环境的能力
– 2016年6月27日 - 在RedHat全栈开发者大会DevNation上,微软与RedHat携手发布了Asp.net Core 1.0,标志着微软这一跨平台开发工具的正式发布。

为什么是Docker?

我们再来看看docker,这个2013年才发布的开源项目从一开始就引起了全球开发者的极大关注,在发布4个月的时间里下载量就超过50000次, github上收到超过4000个star,涌现了超过100个贡献者,并且有超过150个项目和超过1000个产品开始使用docker。1年之内,RedHat和AWS就宣布为Docker提供官方支持,在这样大的关注下,连Docker自己的CEO都劝说全球的开发者暂时不要将Docker用于生产环境。2014年6月,Docker发布了1.0版本,这时Docker的下载量已经超过275万,到今天这个数字已经超过了10亿。

为什么小编对docker如此垂涎,此话要从“修电脑”说起。作为一名程序员,谁没有修过电脑,谁没有被叫去修过电脑,谁没有被认为很会修电脑 … … 可是,你有想过为啥我们这样擅长修电脑么?难道真的是因为泡妹子么?那都是副产品好么!!!

故事 … … 一个月前接了一个项目,用的是XXX技术,搭建好了环境,热火朝天干了一个月;今天项目经理说这里还有另外项目的一些小问题需要处理,你来看看吧,用不了多少时间。结果你发现这个项目用的是YYY的技术,搭建环境就化了你半天时间,这时候项目经理电话来了:“为啥还没搞完?啥,环境还没搞好,算了,你别搞了,我找别人!“。好吧,苦逼的你回去继续原来的项目,发现XXX环境的变量被YYY搞乱了,改了很久也搞不好 … … 结果就是:从!装!电!脑!

程序员就这样变成装机高手!再后来的程序员开始使用虚拟机,把开发环境放到虚拟机中,这样就不用担心不同环境之间互相冲突,不过虚拟机动辄几十个G的硬盘占用和巨大的CPU和内存开销让电脑变得慢吞吞的,本来i7的机器只能享受到i3的性能,太浪费了。

这就是为啥docker成为了全球程序员的福音:

– 不必担心新接手的项目环境搭建复杂;
– 不必担心同时开发2个环境互相冲突的项目;
– 不会再占用大量的内存和硬盘,环境启动迅速,启动一个容器只需要几秒钟,而虚拟机需要几分钟;就算是8G内存也可以同时跑多个容器,而虚拟机能跑2个就不错了;
– 直接把做好的应用丢给测试,测试不必自己再从新搭建环境,要恢复干净的测试环境也只是一个命令而已;
– 直接把测试好的应用丢给运维去部署,不用去和运维撕扯 jdk 1.8还是1.7
– 环境坏掉了,换个新的,不用费劲去看log,恢复这恢复那
– 不用担心你旁边的程序员用了不同版本的jdk,他的环境就是你的环境,哪怕你用的本本上是win7,他在用高大上的macbook pro

这不是程序员的天堂么? 这就是docker带给我们的,这就是为啥程序员们急不可耐的开始使用docker,而且愿意冲破阻力让运维去接受docker,这种事情在历史上好像没有出现过;从来都是运维要求开发使用标准化环境的。

其实Docker所解决就是一直困扰每一名IT人的环境不统一问题;这个问题随着各种技术,框架和平台的爆炸性增长最终成为应用开发效率的终极杀手,让开发者和企业付出巨大的努力和金钱。无论是从组织和流程层面的ITSM,还是从敏捷化角度推行的DevOps,或是自动化(如:Chef/Puppet等)都没有跳出这个问题所形成的漩涡。这些方法或者工具试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值