运维开发网

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

运维开发网 https://www.qedev.com 2021-04-26 09:41 出处:51CTO 作者:mob604756f2dcb4
朱永光 中生代技术过去几年中微软在开源方面做了很多努力,这些努力目前已经出具成效,在前不久GitHub发布的开源报告中,微软已经成为一家重要的开源技术公司。本分享将从工具、运行时和基础设施三个角度来解析微软开源的策略和发展。并以微服务的开发为例,来演示微软开源工具、运行时和基础设施的使用,以此展示微软开源技术被选型和应用的可能性。下面是朱老师现场的分享视频https://v.qq.com/x/p

 朱永光 中生代技术

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

过去几年中微软在开源方面做了很多努力,这些努力目前已经出具成效,在前不久GitHub发布的开源报告中,微软已经成为一家重要的开源技术公司。本分享将从工具、运行时和基础设施三个角度来解析微软开源的策略和发展。并以微服务的开发为例,来演示微软开源工具、运行时和基础设施的使用,以此展示微软开源技术被选型和应用的可能性。

  • 下面是朱老师现场的分享视频

  • 微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

https://v.qq.com/x/page/y03376jx05x.html

带大家走马观花看一下微软的开源技术,如果大家感兴趣的话,我后面的线下活动再针对某些主题进行深入分享,希望做成一个专题。然后现场演示一个helloworld难度的示例,让大家看看如果使用微软开源技术。为了体现微软技术的跨平台的真实性,我没有使用我的Surface,而是特意带上了不常用的Macbook Air。

分享内容

  1. “走马观花”

  2. “Hello World”

  3. 问答

Linux是威胁微软知识产权的‘毒瘤’

        ——2001年,史蒂夫﹒鲍尔默的著名言论

2014年的一次技术会议上,现任微软CEO萨蒂亚·纳德拉宣称。由此可以看出微软的巨大转变,虽然这个转变有点晚了,但是晚总比没有好。

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软在git上开源的地址

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

C#

C#虽然没有打上开源标签,但是标准开放ECMA,且编译器开源

一段代码了解所有C# 7新特性:https://blogs.msdn.microsoft.com/visualstudio/2016/08/30/new-c-7-0-features-in-vs15-preview-4

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

F#是2005年底就开始开源的微软首要编程语言 ,口号是让用户和组织使用简单、可维护和健壮的代码来处理复杂的计算问题。

TypeScript

  • 类型化的JavaScript超集,编译为标准JavaScript

  • 直接使用ECMAScript 2015及其未来特性

  • 2.0已经正式发布:http://www.infoq.com/cn/news/2016/09/typescript-release-20

  • 是很多项目的开发语言:VisualStudio Code、Angular2、仙鹤引擎,Azure Portal

  • 被多种工具支持:VS 2015/2013、VSC、WebStorm、Eclipse、Sublime

R语言

  • 2014年底收购R开发商Revolution Analytics,继续推出开源发行版本Microsoft R Open

  • 集成到SQL Server 2016中提供R Services

Visual Studio Code

  • Erich Gamma领导的GitHub明星项目:★18477,Fork2539

  • 重新定义代码编辑器:多语言支持、智能感知、调试支持、内置Git、丰富扩展、控制台集成……

  • 微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

Visual Studio Code的幕后英雄

  • 开源浏览器编辑器:monaco-editor,还用于Azure、VSTS、OneDrive、Edge和你自己的产品

  • 基于大量开源产品:Electron、Node和TypeScript,N多前端工具

  • 语言和调试支持:

  • C#:Roslyn和OmniSharp

  • Java:javac或java-language-server(by RedHat)

  • TypeScript/JavaScript:TS/JS Server

  • Go:Go CLI Tools

  • Python:Jedi

java-language-server是Redhat维护的,实现了一个开发协议Language Server Protocol,这个协议也被用于Eclipse Che中。

MonoDevelop

  • 针对.NET/Mono开发人员的跨平台、全功能的IDE

  • Xamarin Studio的基础

MSBuild

  • Microsoft Build Engine,一个构建应用程序的平台(类似Ant、Maven),目前主要用于Visual Studio,随着开源会用于VSC和MonoDevelop中,甚至JetBrain的产品中

  • 提供了.NET Core版本实现了跨平台

  • 开源的目的是为了未来统一.NET Core和.NET Framework的项目格式

有意思的是,MSBuild的CI系统是托管在Azure上的Jenkins,其实大部分微软的开源项目都使用此CI平台,如:JetBrain的C# IDE Rider

XXX Tools for VS

  • Node.js Tools for Visual Studio

  • Python Tools for Visual Studio

  • R Tools for Visual Studio

ASP.NET 4 Stack

  • 微软大规模开源的试点项目,托管在CodePlex

  • 可以通过Mono实现跨平台运行

  • MVC 5.x、Web API 2.x、Web Pages 3.x、SignalR 1.x

  • 当然还有OWIN和Katana

Mono/Xamarin

  • Mono,一个.NET开源实现(之前非官方,现在算是半官方),实现了.NET Framework的大部分内容(也有自己的扩展)

    • 在.NET Core之前,已经可以通过Mono在Linux上完美运行ASP.NET应用

    • Mono将会逐步吸收.NET Core的FX代码

  • Xamarin,基于Mono的移动开发框架,Xamarin SDK开源

    • 使用熟悉的IDE和语言,共享众多的函数库

    • 原生的用户界面、原生的API访问、原生的性能

    • 包括:Xamarin.iOS(AOT)、Xamarin.Android(JIT)

    • Xamarin.Forms,使用XAML构建多平台UI

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

.NET Core

  • .NET Framework的一次重生,微软开源策略的核心和支点

  • 定位:Web应用程序和服务

  • 跨平台:Windows、Linux(主要发行版本)、Mac和Docker

  • 统一:利用.NET Standard函数库实现多个运行时的统一

  • 快速:Node.js 8倍,Go 3倍

  • 轻量级:模块化开发和部署

  • 现代语言支持:C#、VB和F#

  • 开源:运行时CoreCLR、函数库CoreFX、编译器Roslyn、语言、工具CLI和ASP.NET Core都在GitHub上

这是微软未来开源技术和平台的支点

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

ASP.NET Core

  • ASP.NET的完全重写,可以运行在.NET Core和.NET Framework

  • 把MVC和Web API合二为一,特性比ASP.NET 4有所加强

  • 基于libuv实现跨平台KestrelHttpServer

  • 模块化、内置依赖注入、可集成任意前端框架

  • 依然可以使用OWIN组件

libuv is a multi-platform support library with a focus on asynchronous I/O.

第三方对.NET Core和ASP.NET Core的支持

  • gRPC、protobuf、NancyFx……

  • IBMBluemix

  • AWS Elastic Beanstalk

  • Google Cloud Platform

EnitityFramework 6.x/EF Core

  • 微软官方的ORM

  • Entity Framework 6.x也是开源的,通过Mono实现跨平台

  • EF Core不是6的升级而是重写,更加轻量级更易扩展

  • EF Core内置支持SQL Server和SQLite,以及用于测试目的的内存数据库

  • 当然第三方已经提供对MySQL等数据库的支持

  • Pomelo.EntityFrameworkCore.MySql

Orleans

  • 不用学习和应用复杂并发或其他缩放模式,构建分布式、高伸缩应用程序的一种直接方式

  • 微软研究院出品,实现Virtual Actor Model,官方版的Actor框架

  • 被Azure和很多微软或第三方产品使用:

  • Halo 4和Halo 5的游戏后端

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

Computational Network Toolkit

Production-quality, Open Source, Multi-machine, Multi-GPU,

Highly efficient RNN training,

Speech, Image, Text

深度学习网络计算框架,微软认知服务背后的计算核心

OSS on Azure

  • 常见的Linux发行版本镜像已经在Azure上提供

  • Azure中国版运行的VM超过一半是Linux

  • MySQL、Hadoop、Spark、HBase、Storm、Redis、Docker、Mesos、Marathon、Kubernetes

  • Cloud Foundry 8月份在Azure中国版发布

  • App Service支持.NET、NodeJS、PHP、Python或 Java

Docker VM Extension,Docker Service Cluster

SQL Server on Linux

  • 没有什么好说了

  • 关于原因大家可以看我这位朋友的分析:http://www.cnblogs.com/lyhabc/p/5255763.html

Ubuntu on Windows

  • Bash on Ubuntu on Windows

  • 提供一个原生运行的命令行工具方便开发人员在Windows上开发Linux的程序

  • Windows 10周年更+开发人员模式

Windows is running Ubuntu user-mode binaries provided by Canonical. This means the command-line utilities are the same as those that run within a native Ubuntu environment.

Docker on Windows

  • 和Docker Inc.合作,把命令行工具带到Windows

  • Docker发行了Docker for Windows

    • 跑在Hyper-V中的MobyLinux作为Host OS

  • 微软在Windows 10周年更和Windows Server 2016提供了容器功能(抽象层),并基于Docker作为实现

    • 兼容Docker的一切(CLI、Hub、Registry、Dockerfile等)

    • Windows Server 容器 vs Hyper-V 容器

    • Nano Server vs Windows Server Core

PowerShell

  • 移植到.NET Core,支持跨平台

  • 口号是:PowerShell for every system

  • 8月份开源,现在★5286

基于.NETCore构建微服务

技术总是要落地,要为业务服务才有价值。我个人认为落地.NET Core的一个很好的地方就是开放服务端的微服务,或者前端Web应用程序。

为什么选择微服务?

  • .NET Core的定位决定了它更适合开发服务端

  • 微服务的特点让.NET Core的试用成本更低

    • 主要好处之一:技术异构性。微服务可以帮助我们更快地采用新技术。——《微服务设计》

  • .NET Core能很好的适应——微服务的主要托管环境——容器。

基于.NET Core开发微服务的图书

  • Microservices in .NET Core:https://www.manning.com/books/microservices-in-net-core

  • Building Microservices with ASP.NET Core——Develop, Test, and Deploy Cross-Platform Services in the Cloud:http://shop.oreilly.com/product/0636920052074.do

微服务多小算小?

  • 微服务->实现单一功能->满足某个业务

  • 领域驱动设计->基于聚合来切分业务领域

  • 一个微服务==一个聚合

撸码ing

  • 技术栈:

    • .NET Core

    • NancyFx

    • Visual Studio Code

    • Docker

  • 源代码:

    • https://github.com/heavenwing/WeatherMicroservice

微服务应用平台

  • Docker Swarm and Docker Compose

  • Kubernetes

  • Mesosphere DCOS, with Apache Mesosand Marathon

  • OpenShift

  • Pivotal Cloud Foundry

  • Service Fabric

Microsoft and Mesosphere have partnered to bring open source components of the Mesosphere Datacenter Operating System (DCOS), including Apache Mesos and Marathon, to Azure. The Mesosphere DCOS, powered by Mesos, is a scalable cluster manager that includes Mesosphere’s Marathon, a production-grade container orchestration tool. It is available as part of the Azure Container Service. 

微软爱开源?鲍尔默不是说Linux是威胁Windows的毒瘤么?|启路CTO朱永光为你讲解微软开源的

Service Fabric powers many of our hyper-scale cloud services, including SQL DB, DocDB, Intune, Cortana and Skype for Business, as well as many internal Azure infrastructure services. 

Service Fabric has built-in support for lifecycle management, hybrid deployments, and 24x7 availability Service Fabric supports both

stateless and stateful microservices with leadership election to support data consistency and a state replication framework that supports transactions for stateful data guarantees. 

CI/CD

http://devopshub.cn/

使用VSTS/TFS搭建基于容器的持续交付管道

参考资料:

  • http://www.cnblogs.com/shanyou/p/5915056.html

  • http://www.infoq.com/cn/news/2016/04/Microsoft-Linux-strategy

  • http://www.infoq.com/cn/news/2016/06/NET-Core-1-0-publish

  • https://docs.microsoft.com/en-us/dotnet/articles/csharp/tutorials/microservices

  • https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Hosting.Kestrel

  • https://docs.microsoft.com/zh-cn/dotnet/articles/core/docker/building-net-docker-images

  • https://docs.microsoft.com/en-us/dotnet/articles/csharp/tutorials/microservices

  • https://azure.microsoft.com/zh-cn/documentation/articles/service-fabric-overview/

  • https://azure.microsoft.com/zh-cn/blog/microservices-an-application-revolution-powered-by-the-cloud/

  • https://docs.microsoft.com/zh-cn/dotnet/articles/core/deploying/index

0

精彩评论

暂无评论...
验证码 换一张
取 消