Microsoft Build 是微软一年一度的面向开发者的最大的会议。今年的微软Build大会主题围绕ACIDD,和某人提出的ACID英雄所见略同。整个keynote里,Staya主要集中介绍微软在AI、IoT方面的成绩,微软EVP ScottGu 则更全面的对这五个方面的主要功能进行了阐述。
从微软推出的服务,可以发现这五个方面也是互相联系的:
- -DevTools/DevOps 为所有方面的开发提供整体支持,可以使用容器环境进行测试、部署
- -AI
- -数据采集阶段需要大规模可扩展的Data服务
- -数据建模和训练阶段需要Machine Learning服务
- -被训练过的AI模型又可以被以Container的方式输出到IoT 设备中
另外一个重要的趋势是IaaS到PaaS的转变。可以看到本次Azure发布的新服务大多为PaaS。这一转变的主要原因是IaaS层面厂商已经无法做出很大的差异化,而PaaS可以更好的锁定用户,所以演讲中微软数次强调“This is only available to Azure customers".
下面列举列举一下本次Build大会的一些亮点和个人想法:
Dev Tools + DevOps
- -VisualStudio live share作为一个VS,VS code对多人协作的亮点,支持多人同时共享同一个project,协作者甚至可以直接access对方及其的debugger和localhost。目前只有微软的开发工具具有这一功能,微软在这一方面持续处于大幅领先地位。
- -微软成为Github上最大的open source 贡献者
- -Azure App Center联合Github发布CICD解决方案,解决移动端自动集成,自动测试,自动部署应用商店的DevOps问题。
- -DevOps Projects 对标 AWS Beanstalk提供一整套基于K8S和Visual Studio Teams的CICD解决方案。
容器 + Serverless
在前Google K8S co-funder BrendanBurns加入微软之后, 微软在容器方面对K8S的支持大幅提高,先后推出了:
- -Azure Container Instance
- -Azure Cloud Shell based on ACI
- -Fully managed K8S with auto scale function ( 本次Build新发布)
其中ACI, CloudShell均部署在Azure K8S 服务商上,作为验证K8S服务的有力应用验证。个人认为,云产品“自己先用起来”的模式非常值得在推广,因为云平台的规模通常要超过客户的规模。
Devspaces for AKS: 支持在K8S上部署个人的namespace上,让开发者可以非常方面的在production环境进行测试,并且不影响production环境。同时支持快速的搜索所有的log来debug。
在Serverless方面,Serverless Function, Logic App(serverless workflow),配合Even Grids提供比较完整的基于时间的Serverless的编程模型。其中,
- -Serverless Function 提供了多语言的函数计算
- -EventGrid 实现了可靠的,超大规模的消息传递。利用Event模型,应用之间可以做到解藕,即时,避免不断的Polling。更重要的是EventGrid集成了Azure主要Service的event,使得开发者的开发变得非常简单,例如支持Storage,Resource Management的事件。
- -Logic Apps支持EventGrid传递来的信息,并可以出发上百种Action,例如Post a twiter,Serverless Function, Send a email. 很多简单场景甚至无需写Code就可以实现。例如 开发者可以利用Storage events,利用 logic app 的workflow 实现图像/视频上传后的自动Index。
从这套体系,可以看出集成各种Serverless产品,最大程度的减少code的数量,是在serverless的关键。Code转向声明式的Markup是减少code一条重要途径,因为code可能是世界上最难图形化的东西。
Internet of Things
IoT算是新兴产业,但是具有指数级的发展。IoT的使用离不开AI和MachineLearning服务,微软从云到端建立了一套比较完整的体系:
- -Azure IoT Hub: 作为用户所有IoT设备的管理中心负责接收事件,配置,升级等全方面的管理功能. 其中,IoT Hub收到的事件,也可以触发Logic Apps 的workflow。
- -Azure Iot Edge : IoT发展的重要方向之一是部分AI计算被放在了IoT设备上,来增加AI的即时性并。作为IoT设备上的AI平台,edge支持通过container的应用部署,用户甚至可以直接将Serverless Function部署在其中。同时微软开源了Azure Iot Edge来吸引更多的开发者,构建IoT生态。
- -Azure Sphere: connected MCU-powered devices + OS + Security 和一体的硬件设备。
应用场景方面,微软展示了两个新的Partnership,给人们丰富的联想空间
- -Qualcomm, 部署基于container的训练好的AI模型在摄像头中,探测视频中的异常情况,提出报警。
- -DJI Drones 在小型无人飞机上部署AI,利用飞机探测人类难以进入的环境。
人工智能
AI的现有市场并不大,但是微软预测AI在将来将无处不在。Azure AI 目前包括vision ,speech ,language方面的 50多种服务.
Azure AI的应用场景:
- -Sataya特别提到中国的华为手机集成了自动翻译的API,以及小米的翻译设备,Roobo的Speech Device SDK and Reference Device. 这些设备均利用Azure AI。不知道Sataya在此特别展示中国的合作伙伴是否具有深意?
- -Azure 对话式机器人
- 主要用于自动客服服务
- 开发一次,发不到各种渠道,如twitter,facebook
- -AI 应用在残疾人场景,例如失明人群可以借助AI听到搜看到的内容,或者听不见的人可以看到大家实时对话的文字
硬件方面:
-支持Azure AI 的设备:
- -Roobo Speech Devices SDK and Reference Device (Roobo全称北京智能管家科技有限公司)
- -Kinect and Project Kinect for Azure
-Project Brainwave: FPGA based Real-time AI chip,除了服务器可以用,也可以在端设备上使用. FPGA, 硬件延时只有TPU的五分之一,图像处理速度是CPU的100倍以上 , 并且价格低于GPU。
另外有趣的是,微软史无前例的和Amazon尝试AI方面的合作:Alexa和Cortana互相唤起。不知道两大竞争对手的合作能走多远。。
Data
Azure运行时数据服务主要有 SQL DB, Postgre SQL, MySQL, Redis Cache, Cosmos DB. 然而,CosmosDB 是唯一在keynote上的数据类产品,连续两届Build上都有展示,其地位可见一斑。同时,CosmosDB在微软内部也得到了广泛的应用,为产品的质量做了很好的保障。微软将Cosmos DB定位KO其他NOSQL数据库厂商的一把利剑。
技术层面,Cosmos DB是我最喜欢的服务之一,较为全面的解决了cloud native应用数据的需求。主要特点:
- -全球分布,无限扩展
- -完全的PaaS
- -多类型的原始数据,比如MongoDB,Table API,SQL, Cassenra,Gremlin Graph, Spark
- -Industry leading SLA
- -Multi-master write support! (本次Build大会新增)。目前还没有另一家厂商支持这种模式。如果要实现一个多区域发布的应用,使用cosmos DB大大简化数据层面开发和运维的成本。
-陈云龙写于5月9日晚