[Windows Azure][Book] Windows Azure Platform 应用程序开发教战手札 2/e (Windows Azure 教战手札 2/e 开发人员篇)

历经几次的大型改版以及被编辑追杀的过程后,Windows Azure 教战手札的第二版 Part 1: Windows Azure Platform 应用程序开发教战手札 2/e 终于要在 2013/3/8 正式上市了。


历经几次的大型改版以及被编辑追杀的过程后,Windows Azure 教战手札的第二版 Part 1: Windows Azure Platform 应用程序开发教战手札 2/e 终于要在 2013/3/8 正式上市了。

碁峰官方介绍:http://books.gotop.com.tw/a_ACL036700

天珑书店预购网址:http://www.tenlong.com.tw/items/9789862767658

博客来线上预购网址:http://www.books.com.tw/exep/prod/booksfile.php?item=0010578936

这本书结合了 2011-2012 年度 Spring Release 以及 Windows Azure Platform 演化的功能,是中文市场中首本涉及 2012 Spring Release 的中文书,包含了 Compute, Storage, Database, Caching, Service Bus 等主要服务,乃至于最新的 Mobile Service 以及 Website 等重要又实用的服务都会在本书完整揭露,精采程度比上一版有过之而无不及,同时本书的厚度比 1/e 增加了18%,但却只多一杯珍奶的价钱 :)

在撰写本书时,除了要考虑 Windows Azure Platform 服务的演化,还要考虑到校园的用书时程,虽然己经尽力的校对与编修,但仍旧有一些遗珠之憾,例如这两天才发行的繁体中文界面,Service Bus Notification Hub,Web Endpoint Monitoring,Mobile Service Support for Android, SQL Reporting Service in New Portal 等部分都没办法及时反映在书中,不过笔者承诺,未来在下一个版本出来之前,这些新的内容会做适当的增补,未来这本书也会发行电子版,届时最新的增补会很快的反应在电子书内。

同时,针对 Infrastructure 那一块的部分并未涵盖在本书中,将在本书的姐妹作 Windows Azure 教战手札的第二版 Part 2: Windows Azure Platform 基础建设教战手札 中作完整的介绍和说明,预计五月下旬问世,届时还请大家多多支持。

第二版 序

距前一版书籍付梓已两年有余,云计算产业正如大家所预期的迅速发展,从初始云的阶段渐次转变为成长阶段,各大云端供应商也借由多样化的服务来争参考户使用,像Google也要加入基础建设云的服务,正式和Amazon的EWS宣战,虚拟化技术在VMware和Hyper-V的竞争下也有了突破性的进展,虚拟化的能力比两年前更强了,并在主要网络设备供应商的奥援下,产生了新的软件定义网络 (Software Defined Network; SDN) 规格,以支持数据中心的网络虚拟化等,一切的一切都在说明云计算已逐渐成为IT产业的重要份子之一。

微软身为云端的主要供应商之一,当然也不会坐视这样的发展,所以在2010年Windows Azure服务正式开放全球服务后,不断的在Windows Azure内加入或改良功能,并且在微软最擅长的开发工具与平台部分做了很大幅度的改变,开发人员更容易的运用Windows Azure平台上的服务开发应用程序,而Windows Azure也积极的向开放源代码阵营推广,并取得了长足的进步,像PHP/Java以及Python等技术现在都可运用在Windows Azure上,更令人惊艳的是在开放源代码阵营中常被大量运用的node.js/memcached乃至于Hadoop等平台也都逐渐的导入到Windows Azure的服务当中,显见Windows Azure开发团队的努力己获得了相当丰硕的成果。

就在2012年的六月初,微软发表了Windows Azure两年来最大规模的Spring Release改版,加入了基础建设的Virtual Machine服务与Virtual Network服务,将Windows Azure的应用领域推向更广的境界,企业能运用自己已有的IT能量在Windows Azure环境中建构自己的私有云或是连接企业本地端的私有云形成混合云基础建设;Media Service在2012伦敦奥运的应用让它成为被认可的影音串流服务;随后推出的Mobile Service大量简化了app开发人员的负担,让app和云端整合的真正‘云加端’应用成为事实。

Windows Azure改变如此之大,促成笔者起草本书的第二版,内容相较于第一版大幅改写了将近九成,将新的Windows Azure服务纳入书中,以呈现Windows Azure的多元技术与开发方式,并改用地表最强的开发工具Visual Studio 2012来介绍Windows Azure的开发,以符合技术的潮流。未来,本书的内容仍会跟随着Windows Azure平台的演进做不定时的更新,也期待本书能够帮助读者进入云端开发的世界。

最后,本书由于仓促付梓,难免会有疏漏或错误之处,如果内容谬误或是您有任何宝贵的意见,或是想要与笔者讨论的话,欢迎到笔者的博客、Facebook或是噗浪来和笔者取得联系。

第二版 志谢

本书的完成,首先要感谢的是中国台湾微软的Windows Azure Platform团队,包含:

  • 中国台湾微软服务器平台事业部资深协理 周旺墩先生
  • 中国台湾微软应用架构技术协理 李匡正先生
  • 微软大中华区资深开发技术管理 张书源先生
  • 中国台湾微软开发工具暨平台推广处应用开发技术管理 上官林杰先生

本书的重要技术资讯的支持以及Windows Azure Platform的发展动态等资讯都是由中国台湾微软Windows Azure Platform团队所提供的,若没有他们,笔者可能要再花数倍以上的时间才能完成本书,特此致谢。

接着笔者要感谢的是不断积极与敦促笔者写作的几位老师:

  • 侨光科技大学资讯科技系 蔡文龙老师
  • 资策会中国台北教育训练中心 苏国钧老师
  • Windows Phone开发技术的推广者 董大伟 (David) 老师
  • Windows Store App首席偶像 锺俊次 (Bill Chung) 老师
  • 本书第一版的催生者,Kinect for Windows开发教主 王森 (Moli) 老师

如果没有他们三不五时的在Facebook上提醒,可能这本书无法在短时间内问世。

再来要感谢本书的编辑江佳慧 (Novia) 小姐,感谢她在本书难产之际愿意体恤笔者的忙碌程度,给予笔者最大的时程调整空间,没有给笔者太大的时间压力,让笔者能在最大的时间调整弹性下完成本书,于此再次致上诚挚的谢意。

最后,笔者将本书献给我的家人、好友以及工作伙伴们,如果没有他们,笔者无法专心全力的撰写本书,也无法让本书顺利的付梓,感谢家人与好友们的支持,以及工作伙伴的体谅与协助。

第二版 目录

Chapter 1 云计算简介 (整并章节)


1.1 云计算的定义......................................................................................... 1-1
1.2 云端的服务模式......................................................................................... 1-6
1.2.1 基础建设服务............................................................................... 1-6
1.2.2 平台服务.................................................................................... 1-10
1.2.3 软件服务.................................................................................... 1-12
1.3 云计算使用的技术............................................................................... 1-12
1.3.1 虚拟化技术................................................................................. 1-12
1.3.2 海量级分散式运算技术.............................................................. 1-17
1.3.3 海量级分散式保存技术.............................................................. 1-20
1.3.4 多租户技术................................................................................. 1-25
1.3.5 自治系统.................................................................................... 1-28
1.4 云计算所带来的影响........................................................................... 1-30
1.4.1 对企业的影响............................................................................. 1-30
1.4.2 对IT 职务的影响....................................................................... 1-31
1.5 评估云计算.......................................................................................... 1-32
1.5.1 云计算的考量因素................................................................. 1-32
1.5.2 企业适用云计算的情境.......................................................... 1-35
1.6 结语.......................................................................................................... 1-38

Chapter 2 Windows Azure Platform 概观 (新章节)


2.1 云计算与微软......................................................................................... 2-1
2.2 微软的云计算实现-Windows Azure Platform ........................................ 2-7
2.3 基础建设服务.......................................................................................... 2-12
2.4 平台服务.................................................................................................. 2-14
2.4.1 运算服务.................................................................................... 2-15
2.4.2 保存服务.....................................................................................2-18
2.4.3 诊断功能.....................................................................................2-20
2.4.4 服务管理.....................................................................................2-22
2.4.5 应用程序服务器服务..................................................................2-22
2.4.6 数据库服务..................................................................................2-25
2.4.7 网络服务.....................................................................................2-26
2.4.8 支持型服务..................................................................................2-28
2.5 工具与资源...............................................................................................2-30
2.5.1 Windows Azure SDK ...................................................................2-30
2.5.2 Visual Studio 工具.......................................................................2-31
2.5.3 对开放源代码阵营的承诺...........................................................2-37
2.5.4 支持工具.....................................................................................2-39
2.6 结语...........................................................................................................2-43

Chapter 3 深入Windows Azure Platform 架构 (改写增补)


3.1 微软数据中心............................................................................................ 3-1
3.2 Windows Azure 核心.................................................................................. 3-4
3.3 服务供应流程...........................................................................................3-10
3.4 高可用服务架构与配置............................................................................3-17
3.5 服务更新模型...........................................................................................3-21
3.6 2012 年闰年服务中断事件.......................................................................3-23
3.6.1 自动化机制的核心-时间...........................................................3-24
3.6.2 臭虫发生与服务中断..................................................................3-24
3.6.3 微软的应变处理..........................................................................3-26
3.7 结语...........................................................................................................3-27

Chapter 4 Windows Azure Platform 应用程序开发基础 (40%改写)


4.1 开发环境的准备......................................................................................... 4-1
4.2 模拟环境.................................................................................................... 4-3
4.2.1 云端保存模拟器Storage Emulator ............................................... 4-5
4.2.2 云计算模拟器Compute Emulator............................................4-10
4.2.3 深入模拟器架构......................................................................... 4-13
4.3 将本地与云端建立关联-设定管理凭证................................................. 4-17
4.3.1 使用Windows Azure 发行精灵设定管理凭证........................... 4-18
4.3.2 由Visual Studio 产生管理凭证.................................................. 4-22
4.3.3 手动产生管理凭证..................................................................... 4-26
4.4 开发第一支云端服务应用程序................................................................ 4-27
4.5 撰写第一支云端背景工作角色应用程序................................................. 4-30
4.6 发行应用程序到云端............................................................................... 4-35
4.6.1 手动发行应用程序..................................................................... 4-36
4.6.2 由Visual Studio 发行应用程序.................................................. 4-42
4.7 管理云端环境.......................................................................................... 4-47
4.7.1 由Visual Studio 监控云端环境.................................................. 4-47
4.7.2 使用远端桌面............................................................................. 4-50
4.8 使用诊断资讯.......................................................................................... 4-58
4.8.1 Diagnostics API(诊断API) .................................................... 4-58
4.8.2 Windows Azure Diagnostics API 运行原理................................ 4-67
4.8.3 利用Windows Azure Diagnostics 来产生自订记录档................ 4-69
4.9 存取角色环境组态功能........................................................................... 4-72
4.10 结语.......................................................................................................... 4-75

Chapter 5 云端服务:Web Role 与Worker Role (新章节)

5.1 角色的基本概念......................................................................................... 5-1
5.1.1 客座操作系统(Guest OS) ........................................................ 5-2
5.1.2 运算能量与扩张性....................................................................... 5-3
5.1.3 本机保存体................................................................................... 5-5
5.1.4 Startup Task .................................................................................. 5-6
5.1.5 终端点通讯端口............................................................................. 5-10
5.1.6 自订域名............................................................................. 5-12
5.2 Web Role .................................................................................................. 5-13
5.2.1 使用服务定义档控制Web Role 的网站设定............................. 5-13
5.2.2 在相同的Web Role 挂载多个网站............................................ 5-15
5.2.3 使用Startup Task 组态IIS 组件..................................................5-19
5.2.4 设定Web Role 支持SSL 通讯....................................................5-23
5.3 Worker Role ..............................................................................................5-28
5.4 结语...........................................................................................................5-31

Chapter 6 Windows Azure 网站服务 (新章节)


6.1 Windows Azure 网站服务简介.................................................................. 6-1
6.2 使用范本建置网站服务............................................................................. 6-3
6.3 建立空白的网站......................................................................................... 6-7
6.4 使用Visual Studio 发行网站..................................................................... 6-9
6.5 使用FTP/GIT 发行网站...........................................................................6-16
6.6 使用TFS 发行网站...................................................................................6-24
6.7 组态与扩展网站........................................................................................6-38
6.7.1 组态网站设定..............................................................................6-38
6.7.2 连结资源.....................................................................................6-42
6.7.3 扩展网站.....................................................................................6-44
6.8 了解Windows Azure Website 服务的运行方式........................................6-47
6.9 结语...........................................................................................................6-49

Chapter 7 Windows Azure 保存服务 (30%改写)

7.1 保存服务概念............................................................................................ 7-1
7.2 Table 保存服务.......................................................................................... 7-8
7.2.1 认识Table 服务............................................................................ 7-8
7.2.2 使用Table 服务 (1) — 声明数据结构.......................................7-11
7.2.3 使用Table 服务 (2) — 直接存取Table.....................................7-13
7.2.3 使用Table 服务 (3) — 使用Model 的方式存取Table .............7-18
7.2.4 群组化数据 — PartitionKey .......................................................7-22
7.2.5 Table 服务设计建议....................................................................7-23
7.3 Blob 保存服务...........................................................................................7-26
7.3.1 认识Blob 保存服务....................................................................7-26
7.3.2 Blob 保存服务结构.....................................................................7-28
7.3.3 Blob 保存服务程序设计............................................................. 7-35
7.3.4 管理Blob 的存取控制................................................................ 7-45
7.3.5 Windows Azure CDN 服务......................................................... 7-48
7.4 Queue 保存服务....................................................................................... 7-52
7.4.2 队列应用程序开发..................................................................... 7-56
7.4.3 苹果有毒 — 队列处理的重要议题.......................................... 7-57
7.5 Windows Azure Drive............................................................................... 7-58
7.6 保存服务的核心层次............................................................................... 7-65
7.7 Storage Client Library 2.0......................................................................... 7-73
7.8 结语.......................................................................................................... 7-77

Chapter 8 Windows Azure SQL Database (40%改写)


8.1 SQL Database ............................................................................................. 8-1
8.2 SQL Database 架构..................................................................................... 8-5
8.2.1 SQL Database 基础建设............................................................... 8-5
8.2.2 SQL Database 服务供应模型........................................................ 8-9
8.2.3 SQL Database 无法使用的SQL Server 功能.............................. 8-11
8.3 建立与管理SQL Database Server ............................................................ 8-12
8.4 SQL Database Server 的连接与安全性..................................................... 8-23
8.4.1 连接数据库................................................................................. 8-23
8.4.2 SQL Database 防火墙................................................................. 8-28
8.4.3 SQL Database 的使用者与群组管理.......................................... 8-30
8.5 移转数据库.............................................................................................. 8-35
8.5.1 使用命令码产生精灵移转数据库.............................................. 8-36
8.5.2 使用数据导入导出精灵移转数据库........................................... 8-39
8.5.3 使用SQL Database Migration Wizard 移转数据库.................... 8-43
8.6 SQL Database 应用程序开发................................................................... 8-48
8.6.1 使用Console/Windows Form/WPF/本地的ASP.NET应用程序连接SQL Database......... 8-50
8.6.2 使用Windows Azure 应用程序连接 SQL Database .................. 8-52
8.6.3 使用Entity Framework 连接SQL Database ............................... 8-54
8.6.4 SQL Database 连线的设计考量...................................................8-57
8.7 SQL Data Sync ..........................................................................................8-65
8.8 SQL Reporting...........................................................................................8-68
8.9 结语...........................................................................................................8-82

Chapter 9 Windows Azure 身份认证服务 (100%改写)


9.1 分散式身份认证服务................................................................................. 9-1
9.2 Windows Azure Active Directory ............................................................... 9-3
9.2.1 Access Control Service ................................................................. 9-3
9.2.2 Windows Azure Authentication..................................................... 9-7
9.3 Access Control Service 服务应用程序实践...............................................9-10
9.4 客制化登入的页面....................................................................................9-26
9.5 结语...........................................................................................................9-33

Chapter 10 Windows Azure Service Bus (80%改写)


10.1 服务总线概念........................................................................................10-1
10.2 WCF 概观.................................................................................................10-5
10.3 准备环境...................................................................................................10-7
10.4 消息转传架构...........................................................................................10-9
10.5 消息中介服务.........................................................................................10-18
10.5.1 Service Bus Queue .....................................................................10-20
10.5.2 Service Bus Topics.....................................................................10-26
10.5.2 REST APIs.................................................................................10-31
10.6 将Service Bus 服务应用程序部署到云端的注意事项...........................10-32
10.7 结语.........................................................................................................10-34

Chapter 11 Windows Azure Caching Service(新章节)

11.1 分散式缓存服务........................................................................................11-1
11.2 缓存服务类型...........................................................................................11-5
11.3 缓存应用程序设计....................................................................................11-7
11.3.1 准备缓存环境..............................................................................11-7
11.3.2 准备缓存用户端......................................................................... 11-9
11.3.3 使用Caching API ......................................................................11-11
11.3.4 使用Shared Caching Service .....................................................11-19
11.4 ASP.NET Cache Providers .......................................................................11-22
11.5 结语.........................................................................................................11-24

Chapter 12 使用开放源代码技术开发Windows Azure 平台应用程序 (100%改写)

12.1 Windows Azure 平台与开放源代码技术................................................. 12-1
12.2 使用Java 开发Windows Azure 应用程序............................................... 12-3
12.3 使用node.js 开发Windows Azure 应用程序..........................................12-12
12.4 使用PHP 开发Windows Azure 应用程序..............................................12-22
12.5 Windows Azure 的开放源代码资源........................................................12-24
12.6 结语.........................................................................................................12-26

Chapter 13 移动设备应用的云端服务开发 (新章节)

13.1 Mobile Service 概观................................................................................. 13-1
13.2 建立Mobile Service 服务端..................................................................... 13-4
13.3 使用Mobile Service 开发应用程序......................................................... 13-7
13.3.1 整合Windows Store App 应用程序............................................ 13-7
13.3.2 整合Windows Phone 8 应用程序..............................................13-10
13.4 验证服务.................................................................................................13-15
13.5 数据库与服务器端处理..........................................................................13-22
13.5.1 Dynamic Schema 机制...............................................................13-22
13.5.2 服务器端命令码........................................................................13-25
13.5.3 排程服务...................................................................................13-30
13.6 通知功能.................................................................................................13-32
13.7 诊断、记录与扩展..................................................................................13-35
13.8 结语.........................................................................................................13-37

Chapter 14 云端环境的安全性 (15%改写)


14.1 乌云还是白云?谈云计算的安全性.....................................................14-1
14.1.1 最顶层-云端安全协定..............................................................14-3
14.1.2 基础建设层次(IaaS Security) .................................................14-7
14.1.3 平台服务(PaaS Security) ........................................................14-9
14.1.4 软件服务(SaaS Security) ......................................................14-12
14.2 Windows Azure 平台安全性...................................................................14-15
14.3 结语.........................................................................................................14-18

Chapter 15 云端应用程序架构 (新章节)


15.1 云端环境与架构........................................................................................15-1
15.2 云端应用程序架构方法............................................................................15-4
15.2.1 选择正确的运算资源..................................................................15-4
15.2.2 命令与数据流分离:CQRS Pattern ............................................15-5
15.2.3 多租户架构..................................................................................15-6
15.2.4 高可用度架构..............................................................................15-7
15.2.5 服务间通讯..................................................................................15-9
15.3 架构设计参考范例....................................................................................15-9
15.4 结语.........................................................................................................15-13