目前基于云原生理念构建应用已是主流,然而有些同仁手上可能还有在维护的项目或者产品使用的是基于 .NET Framework 的 Asp.NET 而非 .NET Core。
那么为了迎接云原生是否需要全部把现有程序重写为 Java 或者 Golang 呢,对于资源充足的团队或者公司或为可行,但是对于人少业务多的团队而言,今天给大家提供另外一种选项,使已经跑了五六年甚至十多年左右的代码库也能搭上云原生的顺风车。
本场 Chat 内容将涉及如下:
- Asp.NET 回顾
- Mono 简介
- Docker 简介
- 云原生简介
- 容器化实践
- .NET 展望
Asp.NET 回顾
2007 年入坑.NET ,始于.NET 2.0,一直到 2014 年前后慢慢开始接触 Asp.NET Core 的前身 ASP.NET vNext,后逐渐少去折腾.NET FrameWork 了。单论感性,我会说.NET 是款很舒服的工具集,要什么有什么,尤其是针对企业开发的时候。最终的结论是:不论是个人-团队的技术成长甚或企业的技术风险-债务规避,真正跨平台语言和工具带来地感受和价值远比用起来舒服来得重要。客观地说 .NET Framework 以及 Asp.NET 都极其优秀,至少从诞生到 2015 年前后的市场占有可见其功。可是隐患也颇深,跟一个同事聊天的时候,得出一个结论:微软的路子就是你累就给凳子,困了就给床。什么都想做好都结局只有什么都很难做到极致。如果能更早些走开源社区路子,现在国内也不会存在大量公司/.NET 程序员转技术栈。很多欧洲公司也都在去微软化,这可能还包括其他很多因素但是一个不能真正跨平台的工具在现今云原生为主流的情形下,实在是很难受。
Mono 简介
Mono 与.NET 相比则是走了另外一条道路,完全开源,其官网定义-Sponsored by Microsoft, Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime。简单说就是.NET 的开源实现。目前最新版本支持到.NET 4.7,不支持 WPF,WWF,对于 Asp.NET 是基本全部支持,仅有少量异步栈受限。运行平台则是 macOS,Linux,Windows 一个都不能少。
Docker 简介
WiKi 定义:Docker 利用 Linux 核心中的资源分离机制,例如 cgroups,以及 Linux 核心名字空间(namespaces