今天微软发布了最新的WindowsAzure Mobile Services的Preview版本, Cool!
大家都在谈“云+端”,如何让这两个东西在一起更好的结合在一起,才能真正做出好的应用,讲出好的story来。
如今,端上有了Windows 8 RTM,再加上Windows Phone,还有更多的基于Windows RT的设备等,真正是空间无限。
而Azure云如何能够更好地支持这些端呢?Windows Azure Mobile Services来得正是时候。
http://www.windowsazure.com/en-us/develop/mobile/
而对于广大消费者和信息工作者(IW),可能会有更多的端设备,比如基于iOS, Android等的移动设备。当然,这也是对于Windows Azure Mobile Services后续版本的期待喽。
先试先尝,不妨动手,看看如何创建一个Windows Azure Mobile Services?
头一步,先得有Windows Azure的账号。
有的话,登陆自己的Azure账号。
https://manage.windowsazure.com/
没有的话,可以访问Windows Azure free trial申请一个。
http://www.windowsazure.com/en-us/pricing/free-trial/
第二步,
需要先去激活这个Preview Feature,具体位置在Account栏目下的“Preview Features”
https://account.windowsazure.com/PreviewFeatures
激活后,再转到Windows Azure的管理门户网站:
第三步,
新建一个Windows Azure Mobile Services。
在管理门户左下角,点击“Add”,会看到Mobile Services已经可以用了。点击进入。
首先设定URL,将会是 sampleWin8.azure-mobile.net的样子。
选定数据库和Azure DC的区域。
然后,设定数据库访问账号和密码。
完成!就这么简单。
OK,接下来,准备开发一个Windows 8使用Windows Azure Mobile Services的应用吧。
具体体会,下回再讲。
总的说来,Windows Azure Mobile Services的价值是:
· 快速创建和配置云端/后端(Backend)的Mobile Service
· 快速创建Mobile应用,特别是Windows Azure 加 Windows 8 应用:
Azure实例数量及可用性保证
偶然碰到这样一个情形,部署在Azure上的一个应用的webRole的instance找不到了。
虽然这种情形很少见,但需要了解一下这个现象,及对设计、开发和部署是否有其他要求,以确保app的可用性。
在目前的Windows Azure Platform的Portal里,创建一个新的部署的时候,系统会给出一个提示框,如下面的截图:
5734.20120822-small.tif
主要提示是:
Warning: This deployment has at least one role with only one instance. We recommend that you deploy at least twoinstances per role to ensure high availability in case one of the instances becomes unavailable. Doing so also enables coverage of the Windows AzureCompute SLA (http://go.microsoft.com/fwlink/?LinkID=159704&clcid=0x409), which guarantees 99.95% uptime. For more information please visit here(http://go.microsoft.com/fwlink/?LinkID=202707). Find more solutions in the Windows Azure support forum (http://go.microsoft.com/fwlink/?LinkID=206235).
就是说为了保证instance的高可用性,部署时建议至少部署2个实例,这样才能达到WindowsAzure Compute SLA里承诺的99.95%的uptime。
关于这个问题的深入讨论,可以参考Buck Woody的文章:
http://blogs.msdn.com/b/buckwoody/archive/2012/03/20/why-do-i-need-two-roles-in-windows-azure.aspx
初步总结一下,一些要点包括:
1、部署时至少部署2个实例
2、多个实例的部署对于升级期间的可访问性亦有帮助
3、设计开发时需要考虑到多实例的场景,在对一些原来的代码迁移到Azure环境的时候,需要评估原先的程序是否实现了无状态stateless,可以考虑将一些必须保留的state保存在Windows Azure Storage或者SQL Azure
4、定期监控instance部署的健康度
重走青春路(之一):“Do more with less"
“我每天的生活过的一样,今天和昨天一样,昨天和今天一样,日复一日的,按部就班无所事事。我只要一闭上眼睛就能想到我未来十年的样子。这不是我想要的生活。” --《北京青年》
最近一部电视剧在热播,《北京青年》,几个青年人聚在一起,要告别熟悉的城市、熟悉的生活,重走青春路。
一些场景,虽不是“浴乎沂,风乎舞雩,咏而归”,却也是畅饮海聊,东西南北,真是快意青春啊。想想大家,不管是Developer还是IT Pro,当每天一个人设计和编码的时候,不也是“日复一日”,做自己的积木游戏吗?
不过有时候也会有快乐时光,一伙人聚在一起,聊聊技术,脑袋激荡一下。
最近工作更多转向技术喽,这些也是我入道IT和软件圈子整天面对的,现在也算“重走青春路”了 。
七月,和伙伴在Redmond Campus针对他们的新一代技术平台做了一周多的ADR,同时邀请了产品组一些技术专家一起参加讨论和交流。
每天忙忙碌碌,一天下来只针对几个专题进行深入讨论,大家在一起分析scenario,讨论architecture,做demo,分享case,真个是不亦乐乎。
几天下来,大家看法和想法激烈碰撞,满地金星。事后收集起来,挺有收获。
有趣的是,其实很多争论都是围绕着“做什么”、“做不做”、“做多少”。毕竟,架构设计和代码开发没有完全“正确”的方案,更多只是“平衡”的结果。
说到“做多少Do more or do less”,其实大家更多想的是“Do more”。这次比较深的体会,可以归纳出有趣的三句话:
先谈谈Do more with less吧。
这次碰到了Nikhil Kothari,大家好好聊了聊他的Script Sharp (S#)。这里就不普及S#了,看看下面的URL就知道了。
http://projects.nikhilk.net/ScriptSharp
几年前做产品时,大家碰到一个很大的挑战,开发完全浏览器版产品,技术选型上采用HTML + JavaScript,而JavaScript编码量大,调试困难,技术好手难找,不同人的代码风格和质量差别很大。相比之下,写C#的编码高手相对多点儿。
而至关重要的是,浏览器端关乎用户体验,有时候即使backend server端的服务设计的再好、再灵活,最后极有可能折在UI上了。
当时试了很多路,例如代码规范、代码审查、基于UI Model生成JavaScript代码,等等。总的说来,就是how to write/generate more JavaScript codes with less efforts.
Nikhil的做法就是发挥C# developer的优势,将C#的UI代码转化成了JavaScript代码,而且将这一工具开源了,也被很多产品组应用了。跟Nikhil聊起性能对比,虽然无法有一个系统的方式,证明S#产生JavaScript代码的性能,但实践表明这些代码很多性能甚至超过原来手工编写的代码效率。
权且把这个story归纳为:Do more {codes} with less {effort}, with {Script Sharp (S#)}
而目前还在继续升级S#的Nikhil,正式工作在Azure产品组(之前在Bing产品组),S#算个副业吧。
Code to live? Live to code!很贴切!