首页 20061121am--SaaS软件即服务系列课程(2):多租用数据体系结构

20061121am--SaaS软件即服务系列课程(2):多租用数据体系结构

举报
开通vip

20061121am--SaaS软件即服务系列课程(2):多租用数据体系结构 软件即服务 (Software as a Service) 系列课程第二讲 Multi-tenant 数据体系架构 吴淏 微软开发合作部 Email: v-hwu@microsoft.com Blog: http://haowu0318.cnblogs.com/ SaaS黄页: http://www.cnsaas.com Hotmail: cnsaas@hotmail.com 议题 z微软在中国发展SaaS的思路 zSIMT 原则和考虑 zMulti-tenant 数据存储选择 z在Multi-tenan...

20061121am--SaaS软件即服务系列课程(2):多租用数据体系结构
软件即服务 (Software as a Service) 系列课程第二讲 Multi-tenant 数据体系架构 吴淏 微软开发合作部 Email: v-hwu@microsoft.com Blog: http://haowu0318.cnblogs.com/ SaaS黄页: http://www.cnsaas.com Hotmail: cnsaas@hotmail.com 议题 z微软在中国发展SaaS的思路 zSIMT 原则和考虑 zMulti-tenant 数据存储选择 z在Multi-tenant环境下虚拟数据隔离 z自定义multi-tenant数据模型 z可扩展multi-tenant数据 微软在中国发展 SaaS的思路 • 推动市场对SaaS的认识,扩大学习相关技 术的途径。 • 支持SaaS社区的发展,推动信誉体系的形 成。 • 引导技术的发展和推出产品化的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,以降低技术门槛,从而扩大市场。 SaaS在线社区 • http://www.cnsaas.com – 苏州和微软共同建设并发展。 – 微软作为创始人之一,社区所涉及的技术和产品并 不限于微软。 • 第一期目标:SaaS黄页和相关技术的社区 – 帮助用户找到需要租用的软件/服务 – 软件类型将包括:CRM、HR、医疗等。 • 第二期目标:SaaS的流通平台 – 用户可以通过平台向SaaS软件的提供商支付使用 费用 – 向公众提供SaaS软件的统计数据和用户的评价 微软SaaS创新联盟 • 微软将在中国建立支持SaaS开发的服务机构 • 2006年在苏州建立中国第一个SaaS孵化中心 – 帮助开发商将传统应用向SaaS迁移 – SaaS孵化中心向开发商提供技术支持,包括: • 软件架构辅助设计 • 免费的软件环境和基础件(非生产模式) • 实验主机和网络环境 • SaaS软件参数测定和报告 • 2007年在其它区建设SaaS服务机构,形成 SaaS创新联盟 SIMT 原则和考虑 MultiMulti--tenant tenant efficientefficient ConfigurableConfigurable ScaleableScaleable 共享和独立架构 节约经济 简化管理 SLA per tenant 数据隔离 IsolateIsolate ShareShare 考虑: 商业角度(Time to market) 技术(Skills, expected tenant size and load) 操作(“can I guarantee my SLA without isolating?”) 调整约束(“data must be physically separate”) 如何进行数据存储 z3种方式管理多租户数据存储: z 独立数据库 z 共享数据库,隔离数据架构 z 共享数据库,共享数据架构 z存储方式所带来的影响: z 数据安全和独立 z 可扩展的数据模型 z 可缩放的分区数据 独立数据库 •• 方式方式:: –– 每个租赁服务对应一个单独的数据库每个租赁服务对应一个单独的数据库 •• 优势优势:: –– 实现简单实现简单 –– 易数据恢复易数据恢复 –– 更加安全隔离更加安全隔离 •• 缺点缺点:: –– 数据库服务器会因租赁过多明显变慢数据库服务器会因租赁过多明显变慢 –– 硬件基础设施成本增长快硬件基础设施成本增长快 •• 适用于适用于:: –– 租赁服务要求数据实现独立存储租赁服务要求数据实现独立存储 –– 足够资金支付数据扩展和独立存储的足够资金支付数据扩展和独立存储的成本成本 –– 银行,医疗等系统银行,医疗等系统 Tenant Tenant AA Tenant Tenant CC Tenant Tenant BB 共享数据库,独立架构 •• 方式方式:: –– 不同的租赁服务使用相同的数据不同的租赁服务使用相同的数据 库库 –– 每个租赁服务都拥有自己的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 集每个租赁服务都拥有自己的表集 ,形成租赁服务各自专门的架构,形成租赁服务各自专门的架构 •• 优势优势:: –– 容易进行数据模型扩展容易进行数据模型扩展 –– 中等程度数据安全中等程度数据安全 –– 能够最大化利用每台数据库服务能够最大化利用每台数据库服务 器的租赁性能器的租赁性能 •• 缺点缺点:: –– 数据恢复困难数据恢复困难 •• 适用于适用于:: –– 应用数据表相对较少应用数据表相对较少 –– 最大化服务器性能重要最大化服务器性能重要 –– 可以把数据共同存储在同一数据可以把数据共同存储在同一数据 库库 Tenant ATenant A Tenant BTenant B Tenant CTenant C SQL2005中的一些实现 • 可用 SQL CREATE 命令来创建方案 –– CREATE SCHEMA ContosoSchema AUTHORIZATION ContosoCREATE SCHEMA ContosoSchema AUTHORIZATION Contoso • 使用 SchemaName.TableName 约定来创建并存取用户 架构中的表格 –– CREATE TABLE ContosoSchema.Resumes (EmployeeID int CREATE TABLE ContosoSchema.Resumes (EmployeeID int identity primary key, Resume nvarchar(MAX))identity primary key, Resume nvarchar(MAX)) • 创建架构后,将其设为用户账户的默认架构 –– ALTER USER Contoso WITH DEFAULT_SCHEMA = ALTER USER Contoso WITH DEFAULT_SCHEMA = ContosoSchemaContosoSchema • 用户账户通过指定表格名称即能存取默认架构中的表格, 而不是采用 SchemaName.TableName 约定。 –– SELECT * FROM ResumesSELECT * FROM Resumes 共享数据库,共享架构 •• 方式方式 –– 所有的租赁服务使用相同的数据所有的租赁服务使用相同的数据 表并在同一个数据库中表并在同一个数据库中 •• 优势优势 –– 管理和备份的成本低管理和备份的成本低 –– 能够最大化利用每台数据库服务能够最大化利用每台数据库服务 器的性能器的性能 •• 缺点缺点 –– 数据还原困难数据还原困难 –– 索引索引//查询查询//更新实现复杂更新实现复杂 –– 很难进行数据模型扩展很难进行数据模型扩展 •• 适用于适用于 –– 可以把数据共同存储在同一数据可以把数据共同存储在同一数据 库库 –– 最大化服务器性能要求高最大化服务器性能要求高 Tenant ATenant A Tenant BTenant B Tenant CTenant C ““Peopleware”: 一个多用户的HR应用程序 DEMO 安全和隔离 Tenant数据 虚拟数据隔离模型 权限权限 DatabaseDatabase TableTable Stored Stored ProcedureProcedure VieVie ww VieVie ww SQL SQL CommandCommand 过滤过滤 加密加密 Crypto Crypto KeyKey 通用Database Access 模型 •• 模拟模拟+ Kerberos + Kerberos 代理代理 •• 使用终端用户密文使用终端用户密文 •• 没有数据连接池,安全与性能平衡没有数据连接池,安全与性能平衡 •• 受信子系统受信子系统 •• 使用使用application identityapplication identity建立数据连接建立数据连接 •• 更好的扩展性和性能更好的扩展性和性能 AliceAlice Impersonate/DelegateImpersonate/Delegate Security Service Security Service (e.g. Windows KDC)(e.g. Windows KDC) Access as Access as AliceAlice Web Web ServerServer Business Logic ServerBusiness Logic Server SQL SQL ServerServer App ID = App ID = BobBob App ID = App ID = CharlieCharlie Access asAccess as CharlieCharlie Trusted Trusted SubsysteSubsyste mm Multi-tenant 数据 access 需要 一个混合模型 •• 数据连接数据连接 使用使用 tenant tenant 安全密文安全密文 •• 方便在方便在Tenant Tenant 级别进行数据库对象锁操作级别进行数据库对象锁操作 •• 数据库数据库, , 表表, , 过程过程, , 视图视图 •• 可以使可以使Tenant Tenant 指定加密键指定加密键 •• 成本成本:: •• 增加了创建和关闭增加了创建和关闭Tenant Tenant 帐户附加的工作帐户附加的工作 •• 增加了维护数据连接池的复杂性增加了维护数据连接池的复杂性 Multi-Tenant 受信子系统模型 •• 为每一为每一TenantTenant创建受信子系统帐户创建受信子系统帐户 •• ApplicationApplication服务进程服务进程 从一个从一个 generic generic 应用应用identityidentity开始开始 •• ““SwitchSwitch”” to a tenant account when connecting and accessing to a tenant account when connecting and accessing database:database: –– Kerberos SFU, orKerberos SFU, or –– 安全令牌服务安全令牌服务 Request Request from Acme from Acme CorporationCorporation Microsoft Microsoft KDCKDC Kerberos protocol transition Kerberos protocol transition into Acme accountinto Acme account Application Application ServiceService Database Database ServiceService Request and Request and send Kerberos send Kerberos ticketticket Connect as Acme Connect as Acme security contextsecurity context Security Credential ServiceSecurity Credential Service Request and Request and send Acme send Acme credentialcredential 安全连接到数据库 •• 独立数据库为独立数据库为 每个每个TenantTenant准准 备连接池备连接池 •• 每个应用服务每个应用服务 器可以维护一器可以维护一 个或多个连接个或多个连接 池池 D edicated D B D edicated D B Shared D B Shared D B DatabasDatabas e e Access Access GroupGroup Tenant 安全 •• DB DB 连接组包含连接组包含DBDB连接的应用唯一标示连接的应用唯一标示 •• 为每个新为每个新TenantTenant创建不同的表组创建不同的表组 •• 为每个为每个TenantTenant创建一不同的数据连接标示创建一不同的数据连接标示 •• 为为tenanttenant的的DBDB连接帐户付与访问权限连接帐户付与访问权限 Database Database Access Access GroupGroup Create database access Create database access account for each tenantaccount for each tenant Assign Assign account to account to groupgroup Grant account Grant account permissions permissions to tablesto tables Tenant 视图过滤模型 Shared Shared TablesTables TenanTenan tt--Safe Safe ViewsViews Queries Queries and Stored and Stored ProceduresProcedures CREATE VIEW CREATE VIEW TenantCustomers AS TenantCustomers AS SELECT * from SELECT * from Customers WHERE Customers WHERE Tenant_ID = Tenant_ID = SUSER_SID()SUSER_SID() SELECT * from SELECT * from TenantCustomers TenantCustomers WHERE Zipcode = WHERE Zipcode = ‘‘9805298052’’ Customers Customers TableTable TenantCustomers TenantCustomers ViewView 自定义数据模型 Data模型扩展 •• 问题问题:: •• 如何为每一个如何为每一个TenantTenant实现自定义字段和存储自实现自定义字段和存储自 定义数据定义数据 •• 如何实现如何实现Biz Logic Biz Logic 可以可以Handle Handle 自定义字段自定义字段 •• 界面界面LogicLogic可以可以HandleHandle自定义字段自定义字段 •• 实现查询自定义字段实现查询自定义字段 Tenant ATenant A Product IDProduct ID DescriptionDescription Category IDCategory ID Catalog Catalog ItemItem Tenant BTenant B Product IDProduct ID DescriptionDescription Classification CodeClassification Code Catalog Catalog ItemItem 定义和存储自定义数据字段 •• 需要元数据需要元数据//数据字典数据字典 •• 直接的数据存储直接的数据存储:: •• 每个每个tenanttenant存储数据在不同的数据库中存储数据在不同的数据库中 •• 同一个数据库分离的同一个数据库分离的SchemaSchema •• 22种 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 存储数据在相同数据库相同种方法存储数据在相同数据库相同 SchemaSchema:: •• 预定义扩展字段预定义扩展字段 •• 扩展值对扩展值对 固定可扩展字段 •• 方法方法:: •• 所有所有TenantTenant数据存储在一个数数据存储在一个数 据库内据库内 •• 预定义一些自定义字段预定义一些自定义字段 •• 优势优势:: •• 实现简单实现简单 •• 可以最大化每台可以最大化每台DB ServerDB Server的的 tenanttenant数量数量 •• 平衡平衡:: •• 应用数据表相对较少应用数据表相对较少 •• 什么条件使用什么条件使用:: •• 数据可以进行混合存储数据可以进行混合存储 •• 容易进行预定于字段容易进行预定于字段 Tenant Tenant IDID F1F1 F2F2 C1C1 C2C2 C3C3 345345 TedTed 5353 NullNull paidpaid NullNull 777777 KayKay 3434 2323 NullNull NullNull 784784 MarMar yy 4545 NullNull NullNull NullNull 345345 NedNed 2121 NullNull oweowe NullNull 438438 PatPat 2626 NullNull NullNull yesyes 固定扩展字段使用元数据 Tenant IDTenant ID C1C1--LabelLabel C1C1-- DatatypeDatatype C2C2--LabelLabel C2C2--DatatypeDatatype C3C3-- LabelLabel C3C3-- DatatypeDatatype 345345 NullNull NullNull Payment Payment StatusStatus ntextntext NullNull NullNull 777777 AgeAge tinyinttinyint NullNull NullNull NullNull NullNull 438438 NullNull NullNull NullNull NullNull PaidPaid ntextntext Tenant IDTenant ID C1C1-- LabelLabel C1C1-- DatatypeDatatype777777 AgeAge tinyinttinyint Tenant IDTenant ID C2C2-- LabelLabel C2C2--DatatypeDatatype 345345 PaymenPaymen t Statust Status ntextntext Tenant IDTenant ID C3C3--LabelLabel C3C3--DatatypeDatatype 438438 PaidPaid ntextntext OROR (Space and Time Tradeoff)(Space and Time Tradeoff) 扩展值对 Tenant Tenant IDID ExtensioExtensio n IDn ID ExtensioExtensio n Labeln Label DatatypDatatyp ee 764764 67296729 StatusStatus ntextntext 764764 76347634 ExpireExpire datetimdatetim ee 783783 89038903 AffiliatioAffiliatio nn ntextntext F1F1 F2F2 Record Record IDID 764764 TedTed $56$56 893893 673673 JohnJohn $32$32 NullNull 783783 SalSal $99$99 564564 Record IDRecord ID Extension Extension IDID ValueValue 893893 67296729 GoldGold 893893 76347634 77--2929--20082008 564564 89038903 AcmeAcme 方法方法 可以提供无限数量的自定义字段可以提供无限数量的自定义字段 扩展值对在不同的表中扩展值对在不同的表中 元数据可以保证数据标签和数据元数据可以保证数据标签和数据类型的扩展跟踪类型的扩展跟踪 Metadata TableMetadata Table Data TablesData Tables 扩展值对 •• 优势优势 •• ““可以提供无限数量的自定义字段可以提供无限数量的自定义字段 •• 平衡平衡 •• 进行索引,查询,更新较复杂并有延迟进行索引,查询,更新较复杂并有延迟 •• 什么情况使用什么情况使用 •• 数据可以进行混合存储数据可以进行混合存储 •• 自定义字段是具是有很高价值的特性自定义字段是具是有很高价值的特性 •• 很难预知自定义字段很难预知自定义字段 Scaling Multi-tenant Data 2层数据 Scaling策略 … … … … … … … Single Tenant Database Multi-Tenant Database Multi-Tenant Database Databases for one tenant Multi-Tenant Data Scaling Strategy Single Tenant Data Scaling Strategy 水平Tenant 分区 太多并发用户 太多行or / and … … … Redistribute tenant user load against baseline Redistribute tenant data load against baseline 单Tenant Scaling 架构指导: “Scaling Out SQL Server 2005” paper by Roger Wolter Requires deep application introspection: Revisit data model Study reference, resource and activity data dependency, frequency of change. Identify candidates for horizontal and vertical partitioning, replication, scaleup Some best practices: Replicate reference data Keep related data near Use scaleup for data that cannot be partitioned (resource data) Use single master replication rather than synchronize write 结论 •• 单实例单实例, multi, multi--tenancytenancy是一件很困难的工作是一件很困难的工作 •• 没有架构模式,我们将被独立的架构所局限没有架构模式,我们将被独立的架构所局限 微软SaaS体系结构指南 • SaaS应用程序体 系结构文件 • Webcasts • 博客 • 案例研究 资源 博客 http://blogs.msdn.com/fred_chong http://blogs.msdn.com/gianpaolo http://blogs.technet.com/michael%5Fplatt http://haowu0318.cnblogs.com/ 文件 Architecture Strategies for Catching the Long Tail Multi-tenant Data Architecture Web站点 http://www.cnSaaS.com http://msdn.microsoft.com/architecture/saas http://msdn.microsoft.com/isv http://www.microsoft.com/serviceproviders/solutions/applicationho sting.mspx 微软SaaS 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 微软微软SaaSSaaS技术架构推广技术架构推广 WebCast WebCast 在线培训在线培训 20062006年年1010月月 WorkshopWorkshop深度培训深度培训 20072007年年33月月 微软苏州软件园微软苏州软件园SaaSSaaS孵化器孵化器 非营利机构,支持中国非营利机构,支持中国SaaSSaaS企业成长企业成长 SaaSSaaS商务平台,商务平台,www.CNSaaS.comwww.CNSaaS.com 中国中国SaaSSaaS黄页功能黄页功能 20072007年年11月月 优惠优惠SaaS IDC HostingSaaS IDC Hosting环境,降低企业成本环境,降低企业成本 市场活动支持市场活动支持 优秀的优秀的SaaSSaaS产品有机会推荐给风险投产品有机会推荐给风险投 大型市场活动推广大型市场活动推广 获取更多MSDN资源 • MSDN中文网站 http://www.microsoft.com/china/msdn • MSDN中文网络广播 http://www.msdnwebcast.com.cn • MSDN Flash http://www.microsoft.com/china/newsletter/case/ msdn.aspx • MSDN开发中心 http://www.microsoft.com/china/msdn/Developer Center/default.mspx Question & Answer 如需提出问题,请单击“提问”按钮并在 随后显示的浮动面板中输入问题 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。一 旦完成问题输入后,请单击“提问”按钮。
本文档为【20061121am--SaaS软件即服务系列课程(2):多租用数据体系结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_969088
暂无简介~
格式:pdf
大小:2MB
软件:PDF阅读器
页数:39
分类:互联网
上传时间:2012-04-11
浏览量:44