云原生应用架构模式解析
水平扩展计算模式
在云原生应用的资源分配中,水平扩展计算模式是一种极为有效的架构方式。它能让应用具备高可扩展性、高可用性,并实现成本优化,同时确保用户体验不受影响。
无状态节点与负载均衡
为了实现最大的灵活性,水平可扩展的Web层由无状态、自主的节点组成。由于应用的所有Web角色实例可以互换,负载均衡器也可以是无状态的,就像Windows Azure中的情况一样。
用户状态管理
浏览器cookie可用于存储与会话数据关联的会话标识符。在Windows Azure中,存储会话数据的选项包括SQL Azure(关系数据库)、Windows Azure表存储(宽列NoSQL数据存储)、Windows Azure Blob存储(文件/对象存储)和Windows Azure分布式缓存服务。对于PoP这个ASP.NET应用,我们选择使用Windows Azure缓存的会话状态提供程序,借助熟悉的会话对象抽象进行编程,同时保持节点的无状态和自主性,从而受益于Windows Azure提供的可扩展且可靠的缓存解决方案。
服务层的作用
PoP拥有独立的服务层,使Web层能够专注于页面渲染和用户交互。服务层负责在后台处理用户输入。服务层采用工作角色进行托管,与Web角色类似,但侧重点不同。工作角色实例不会启动IIS服务,并且默认不会添加到负载均衡器中,适合没有外部接口的应用层。水平扩展在服务层运行顺畅。
松散耦合带来的灵活性
Web层和服务层可以使用不同的技术实现。Web层可以采用PHP、ASP.NET MVC等前端解决方案,而服务层可以使用