Azure School与开源


距离Azure School(https://school.azure.cn/) 的正式上线时间,2017.8.3,已经过去了20多天了。这20多天得到了很多有帮助的建议和反馈,小伙伴们都很给力,互相帮助扶持,调整产品不正确的地方,快速迭代新的功能。期间我还去参加了团队组织的第一届微软云时代开发者社区生态圈会议,与会者都是在各自技术领域的贡献者,大家都给出了很有远见的提议,比如多鼓励业界的项目经验分享,内容文档应该多结合实际线上的操作,对于非.Net体系的技术如何借力Azure。听完以后自己也有很多感触,很多话都蛮讲到心里去的。微软从之前的封闭,到现在的拥抱开源,中间还有很长很长一段路要前行。如何改变开发者心中对于微软原本呆板,封闭的形象,还需要时间的磨合,让开发者意识还到微软的转变。 

  我说说自己的一个经历,我大概是在2015年11月入职的微软C+E云事业部的大家庭,之前一直使用Java做后端服务器的开发,更早之前也有一段前端的工作经历。在进入微软之前,其实我对.Net的技术并没有太大的好感,一直停留在当年大学时接触.Net和Windows的认知,这个认知就是封闭,傻瓜,笨重。但是时过境迁,微软已经发生了很大的变化,当自己好好静心下来学习,忘记自己原本的一些固执偏见以后,发现.Net结合Azure云服务的开发效率实在是高,对于开发者更加友好了。这种高效率体现在很多地方,比如语言的特性,方便的部署和拓展,借力各种现有的服务,强大的本地和远程调试工具等等。 

  在几个月以前,刚刚开始做Azure School项目的时候,我就萌发了开源Azure School的想法,但是我也一直在反问自己,开源Azure School的意义在哪里?如果只是为了开源而开源,那么开源Azure School的意义一点用处都没有。因为当一个项目要开源,它最本质的意义是希望能够给开发者带来效益,比如减少开发者自己重新造轮子的时间。现在的大部分开源项目基本都是工具类的类库,或者框架居多。因为这些类库和框架的分享,确实能帮助开发者,减少开发者在实际工作中的负担。但是Azure School这个项目既不属于类库,也不是什么框架,而是一个实实在在的产品,这个产品要提供给各类开发者相关的Azure技术文档,要建立一个平台,让开发者可以有效的在这个平台交流和解决现实中的问题。但是当我参加完微软云时代开发者社区会议后,我坚定了自己开源Azure School的想法。Azure School是个很典型的网站建站案例,之后有可能也会有各种其他终端的App。目前在开源社区中,按照我自己接触到的各类开源项目,并没有一个类似Azure School的项目,是依托于Azure云服务。  

  依托于Azure云服务,并分享实际项目在Azure中的使用,这就是Azure School开源的核心价值。在Azure云服务中,Azure给开发者提供了很多服务,从Iaas,Paas到Saas,各种服务。但是正是因为服务太多,开发者可能不知知道改如何正确使用,或者说有效的使用,开源Azure School可以给开发者一些启示,虽然说不一定是最佳实践,但也是经过摸索的实践总结。 

  Azure School的核心开发人员就只有三个,一个前端,两个后端。从项目开始到第一个正式版本,总共花了快有两个月的时间,这是一个完全从无到有的过程,所以开发的强度和压力很大,产出的效率也是很高的。简单的前端和后端开发并不能表明这中间的开发所要做的事情,因为开发人员除了要负责功能的开发还要负责项目的环境运维,安全,测试,数据收集,以及产品的设计,这期间还要负责各种临时安排的紧急事件和维护线上的服务。能在这么短的时间内完成项目的第一个发布版本,Azure云服务所提供的便捷性是一个很重要的因素。比如我们可以使用Azure Web App服务,直接将本地的代码发布到线上和个个不同环境,而不要自己从无到有去一个一个架服务器,配置等等。又比如Azure的Key Vault服务,很好的解决了敏感信息的泄露。Azure Redis 可以一键搭建分布式缓存,只要在代码中简单的调用就可以。Azure Web App提供的在线自动扩容功能,可以从容的应对各种攻击或者活动推广带来的高峰值。Azure Blob Storage的Blob非常适用于存储大文本的非结构化数据。Azure CDN加Azure Blob Storage可以很方便的搭建出自己的一套静态资源服务器。Azure Cognitive Service 提供了很多人工智能的Api接口,这些接口可以通过SDK或者Rest方式请求,调用很方便。借助Azure Cognitive Service 不仅可以降低社区运营的成本还可以让Azure School这款产品做出很多很酷很有意思的功能。讲了这么多Azure云服务的,都只是轻轻点到而已,在接下来的文章,会具体分享各种Azure服务在Azure School的实际应用,以及产生的优势和弊端。让我们一起通过Azure School来领略和探索Azure云服务吧! 

  最后,写下自己的一个心愿,真心希望Azure School能够做起来,给Azure开发者社区带来一些变化,推动Azure在国内的使用。有时候大家在讨论,怎么样才算是把Azure School这个产品做起来?我自己并没有一个很明确的数据指标,比如PV要达到多少,注册用户量要达到多少,或者用户要有多少的活跃度?但是我有一个感性的认知,来定义Azure School的成功。我希望有这么一天,当我碰到一个陌生的开发者,他会对我说:“你知道吗,Azure School社区上有很多干货和大神,他们帮我解决了很多实际工作中碰到的问题,我推荐你也应该去看看这个社区。”然后我很自豪的告诉他:"这个产品就是我们团队在开发和维护的,谢谢你对这个产品的认可!”

原文地址:http://www.cnblogs.com/unclechan/p/7485219.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssl提高组周六模拟赛【2018.9.8】

前言 开学后,新学年新气象,学校题库也迎来了新的改动,界面大改变,也可以比赛了。 所以这周就有比赛了,而在纪中被虐习惯后回来渴望继续被虐就来参加提高组模拟赛(反正今年也参加提高组) 成绩 …

select count(*)底层究竟干了啥么?

转载自 select count(*)底层究竟干了啥么? “SELECT COUNT( * ) FROM t” 是个再常见不过的 SQL 需求了。在 MySQL 的使用规范中,我们一般使用事务引擎 InnoDB 作为(一般业务)表的存储引擎,在此前提下,COUNT( * )操作的时间复杂…

linux系统中启动tomcat报错Cannot find /root/tomcat/bin/setclasspath.sh

今天在启动tomcat的时候莫名其妙的报了个这个错,在网上搜好多都说是要改配置文件啥的,都挺麻烦的。 我觉得我的问题不是配置文件的问题,就没有去改,找到了个新方法。 只需要在终端输入命令: unset CATALINA_HOME然后…

c关于数组的疑惑

#include<stdio.h>main(){char a[]"asdas";printf("%s\n",a);}不明白为什么【】【不需要加数字】 #include<stdio.h>main(){int a[]{1};printf("%d\n",a);}在这里插入代码片结果为很大的数

为什么不应该重写service方法

转载自 为什么不应该重写service方法 故事通常是这样开始的&#xff1a; 从前&#xff0c;有一个程序猿&#xff0c;他语重心长地对孙子说&#xff1a;“孩子&#xff0c;要是你以后写servlet&#xff0c;最好不要重写service方法啊” 孙子大为不解&#xff0c;程序猿又说&…

.net core之ACG小站爬虫(二)

紧跟着上一节说的文章&#xff0c;虽然已经放出了所写的全代码&#xff0c;但还是再解释一下另外一个页面的请求和分析过程吧。PS&#xff1a;又可以愉快的水一章了&#xff0c;咕嘿嘿。页面分析上回说到下载按钮的href属性是javascript:;伪协议&#xff0c;导致了新打开的页面…

P1541-乌龟棋【多维dp】

正题 评测记录链接:https://www.luogu.org/recordnew/lists?uid52918&pidP1541 题目大意 在不同的格子停留会获得不同的价值&#xff0c;有m张移动牌&#xff0c;可以移动1∼41∼4步&#xff08;每张牌固定&#xff09;&#xff0c;求最大价值。 解题思路 用fx1,x2,x3,…

判断一个数是否为素数

#include<stdio.h> main(){ int m,n;printf("请输入一个数我来给你判断是否是素数&#xff1a;\n");scanf("%d",&m);if((m%40&&m%100!0)||m%4000){printf("该数是素数");} else{printf("该数不是素数");} }

Correct the classpath of your application so that it contains compatible versions of the classes com

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号雄雄的小课堂 在使用springboot集成camunda卡蒙达工作流引擎时报错&#xff0c;报错信息如下&#xff1a; Description: An attempt was made to call a method that does not exist. The attempt was made from th…

.net core之ACG小站爬虫(一)

想到好久没写过.net的代码了&#xff0c;因此就尝试来写一写.net的代码。此外&#xff0c;也想要熟悉一下Phantomjs。环境配置.net core下载。可选的可以下载宇宙大IDEVisual Studio&#xff0c;当然更加推荐使用Visual Studio Code进行代码的书写。Phantomjs。这个不用说了&am…

数组:完成等差等比数列,及其他数列

有没有想过用c语言来编写一些数列呢&#xff0c;编写数列&#xff0c;数组是最好的选择。 等差&#xff1a; #include<stdio.h> main(){ int a[1000],b,i;a[0]1;scanf("%d",&b);for(i0;i<b;i){a[i1]a[i]2;}for(i0;i<b;i){printf("a%d%-8d\t&q…

Spring MVC竟然有5种参数绑定的方式?你知道几种?

转载自 Spring MVC竟然有5种参数绑定的方式&#xff1f;你知道几种&#xff1f; SpringMVC参数绑定&#xff0c;简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上&#xff0c;然后就可以在controller中使用该参数了下面通过5个常用的注解演示下如何进行参…

微服务中如何切换配置文件、部署

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 最近改了个微服务的项目&#xff0c;在本身的业务上加上一个演示的业务。 以前没有弄过微服务的项目&#xff0c;这次改完之后&#xff0c;部署花了不少时间&#xff0c;一方面是因为服务器…

P1063-能量项链【区间dp】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1063 题目大意 有n个珠子组成环&#xff0c;每颗珠子的头尾标记连接&#xff0c;将两颗珠子合并会产生headi∗headj∗tailjheadi∗headj∗tailj的能量&#xff0c;产生一颗头标记为头珠子的头标记&am…

asp.net core mvc View Component 应用

ViewComponent1、View 组件介绍在ASP.NET CORE MVC中,View组件有点类似于partial views,但是他们更强大&#xff0c;View组件不能使用model binding,当你调用它的时候仅仅依赖与你提供的数据一个View组件特点&#xff1a;.呈现一大块而不是一个整体的响应。 .包含在控制器和视…

分离三位数

#include<stdio.h> main(){ int k,l,m,n;printf("请输入一个三位数"); scanf("%d",&k);lk/100;mk/10%10;nk%10;printf("这个三位数的百位是:%d\n",l);printf("这个三位数的十位是:%d\n",m);printf("这个三位数的个位是…

@Autowired注入RedisCache报错空指针

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天在改一个几年前写的项目中的代码&#xff0c;其中有个地方用到了缓存&#xff0c;不过代码中用的是&#xff1a;CacheUtils,也不是报错&#xff0c;但是就是在并发的时候有问题&#xf…

P1351-联合权值【树形结构】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1351 题目大意 一棵树&#xff0c;每个点有权值&#xff0c;求两个距离为2的点使权值之积最大和所以这种点对的权值之积的和。 解题思路 分为两种情况&#xff1a; 1.一个点是另一个点的爷节点&…

MySQL - InnoDB特性 - Buffer Pool漫谈

转载自 MySQL - InnoDB特性 - Buffer Pool漫谈 缓存管理是DBMS的核心系统&#xff0c;用于管理数据页的访问、刷脏和驱逐&#xff1b;虽然操作系统本身有page cache&#xff0c;但那不是专门为数据库设计的&#xff0c;所以大多数数据库系统都是自己来管理缓存。由于几乎所有…

小程序中安装@vant依赖

大家好&#xff0c;我是雄雄。 今天给大家分享一篇&#xff0c;关于小程序中如何安装vant依赖 小程序中安装vant依赖 cd .\miniprogram\ npm i vant/weapp -S --production 将node_modules文件夹下面的vant复制到miniprogram_npm文件夹下面 构建npm 如果报错&#xff1a;”…