Azure Stack PaaS-网站(WebApp)背后是什么原理?

欢迎加入QQ群(423730487)!4月9日在上海有一场线下活动,盆盆还有微软Azure Stack产品组专家会和大家一起分享技术,届时会在QQ群里直播哈。

添加盆盆的微信(markpah),我会把您拉到微信群。

为什么要学习Azure Stack?因为这是学习Azure的最佳工具。

例如Azure里的经典PaaS服务WebApp,是一款广大人民群众喜闻乐见的服务,很多客户用来搭建自己的数字化营销方案。PaaS服务让我们不再困扰于日常的运维,极大地降低了成本。

但是Azure的WebApp背后是什么原理?它是怎么运作的?我们不得而知。而Azure Stack则能帮助我们“管窥”其背后的原理,至少基本架构和原理是差不多的。

不过本文不会涉及到Azure WebApp的部署,您可以参考以下的文档:

https://azurestack.eu/2016/02/enable-paas-web-apps-in-azure-stack-tp1-part-i/

以下是Azure WebApp虚拟机角色的作用:

  • Web Worker– 特殊版本的IIS Web服务器,用来处理来自客户端的Web请求
  • Front End– IIS Web服务器,接受来自客户端的请求,并把请求转交给Web Worker,以及把Web Worker的响应回送给客户端
  • Publisher– 给FTP客户端提供内容发布,还有类似GIT等机制(目前并不支持)
  • Database– Azure Stack WebApp的配置数据
  • File Server - 存放租户的网站内容
  • Controller–  创建和管理其它WebApp的角色
  • Management- REST API 服务器

我们可以在WebApp的Resource Provider管理页面里看到这些虚拟机角色。

租户网站进程

如果未作特别说明,本文特指免费(共享)模式的租户网站,名称为MarkWebFreeDemo

可以通过Process Monitor来监控租户网站的进程行为。

我们可以看到DWASSVC这个进程启动了租户网站进程w3wp。DWASSVC进程里运行着Dynamic WAS Service,这是Azure Stack WebApp用来替代Windows自带的WAS服务,专门为高并发的网站托管服务。

查看其堆栈信息,可以发现其调用RsFilterApi.dll里的CreateSandboxProcessW函数创建沙盒进程,这样租户网站虽然可以运行在同一个Web Worker虚拟机上,但是彼此之间是隔离的。同样RsFilterApi.dll是WebApp里特有的,也不是Windows里自带的,不知道和Windows Docker之间存在什么关系?

然后可以看到租户网站进程w3wp尝试访问\\10.0.2.101\WebSites上的共享。这里的\\10.0.2.101就是File Server这个虚拟机角色,用来存放租户网站的内容。

在Web Worker虚拟机上有个D:\DWASFiles\Sites文件夹,DWASSVC进程用来管理租户网站的配置信息,我们的租户网站MarkWebFreeDemo则在其下有一个子文件夹,里面保存着该租户网站的相关信息,其下有一个名为“VirtualDirectory0”的符号链接,指向File Server的共享文件夹路径,其中保存着该租户网站的内容。

FTP上传租户网站内容

比较奇怪的是,和前任Windows Azure Pack(确切来说并不算"前任")相比,Azure Stack的WebApp多出一个FTP的虚拟机角色,用来提供FTP服务。

由于前面所述的Blog以及官方文档里没有提供FTP的配置方法,所以可以按照以下步骤进行。首先打开WebApp资源组(本例是WebSitesSQL),找到FTP0-1P所绑定的公网IP地址,本例是192.168.133.23。

然后在DNS服务器里新增一个A记录,ftp.web.azurestack.local为192.168.133.23。

接下来即可在租户网站页面上设置FTP服务器的访问凭据。

然后就可以借助FTP客户端,例如FlashFXP等,即可访问到该FTP服务器,而有趣的是,所看到的FTP文件夹,并不在该FTP服务器上,而是在File Server的租户网站内容文件夹里!

可以做一个简单的实验,通过FlashFXP上传一个index.html到文件服务器上,然后重启租户网站,即可看到内容。

免费(共享)租户网站资源配额


在共享模式租户网站里,由于所有租户的网站都运行在相同的Web Worker虚拟机上,所以会默认加以CPU和内存限制,可以用Process Explorer查看其Job Object信息。例如我们可以看到其中该网站默认使用最多1024MB的虚拟内存。

我们可以在Azure Stack的Portal上,打开WebApp的Resource Provider配置页面,依次进入SKUs、所需的租户网站模式、Features,可以看到Site Memory Limit默认是1024MB,这和前面的Job Objects一致。现在将其改为1500MB,并保存。

仔细查看SQL Server虚拟机角色,发现该配置数据写在runtime.SitePolicy的MemoryLimitinMB。

重启租户网站,现在可以看到网站的内存限制变成了1500MB。

顺便说一下,利用Windows的Job Object来限制一组进程的资源配额,Windows Docker也是采用类似方法,而开源的Linux Docker,则采用类似的CGroup技术。

时间: 2024-08-23 23:40:42

Azure Stack PaaS-网站(WebApp)背后是什么原理?的相关文章

Azure Stack技术深入浅出系列5:在Azure Stack上使用Web App PaaS服务及其背后原理窥探(开发案例)

App Service 是微软Azure的PaaS产品. 为任何平台或设备创建Web App PaaS服务和mobile App PaaS服务. 将应用与SaaS解决方案集成.与本地应用程序进行连接,以实现业务流程的自动化.在我们日常开发中,经常会使用Web App PaaS服务来承载企业的业务. 本文试图通过一个案例来分别详细说明Azure Web App业务的下列几大特点: 应用服务计划 多种语言和框架 持续集成和部署 连接数据库服务 可用性全局缩放 就在本文撰写过程中,Azure Stac

微软发布Azure Stack第一个技术预览版

为了提升商业灵敏度和加快创新步伐,各个企业都在迅速地转向云服务.在微软,我们已经见到微软智能云Azure的飞速发展和使用,每月我们都有近十万的新增订阅量.然而,我们也了解到还有很多企业在完全移到公有云这点上仍然存有业务上的顾虑,像在数据主权或符合监管要求方面的考虑.而这就让他们处于一个比较复杂的境遇,即一脚驻足于公有云.一脚仍留在本地的数据中心. 为了管理这种复杂性,微软认为企业需要把云作为一种模式,而不仅仅是一个位置.这个模式连接基础设施,应用和人,以混合云的方式,实现私有云,托管云(host

《快速创建网站》2.1 在Azure上创建网站及网站运行机制

现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和云计算平台Azure简介2.1 在Azure上创建网站及网站运行机制2.2 域名绑定操作和Azure负载均衡机制2.3 WordPress 初始化和网站管理功能3.1 WordPress 数据导入3.2 WordPress 多站点支持和Azure在线代码编辑器3.3 WordPress 多语言支持 Multi

Microsoft Azure WebSite创建网站

Microsoft Azure WebSite是Microsoft Azure中PaaS平台既服务到一个重要组件,WebSite具有以下特点,方便我们WEB部署和上线发布 l 入门简单,开始简单,可以按照你的想法扩展,无任何的困难. l 编码容易,可以使用我们常用的asp.asp.NET.PHP还有Node.js进行编码,还可以在Windows.OSX.和Linux上进行开发. l 发布容易,迅速部署,易于监控,快速诊断和解决问题. Website支持使用FTP.TFS.webdeploy.GI

解决Azure Stack App Service部署报错一例

解决Azure Stack App Service部署报错一例 Azure Stack是微软新一代的云基础架构,是Windows Server 2016.Azure Pack和Azure Service Fabric的组合,能够将Azure的IaaS和PaaS功能带到客户自己的数据中心里,微软希望所有用户都能体验到该项服务,近期Azure Stack发布了GA版本,小弟有幸对其进行部署测,和之前版本相比GA版本提供了GUI的部署界面,同时在稳定性上也大大有所提升!但小弟在部署App Servic

Azure Stack实验和测试资源

Azure Stack能够让企业在他们自己的数据中心内运行类似Azure的服务.Azure公有云平台与Azure Stack都使用了标准化的基础设施.相同的用户门户.基于Azure资源管理器的应用模型.并且支持相同的工具,例如Visual Studio和PowerShell.微软将在2016年第四季度发布首个完整版产品,预计将包括IaaS及PaaS中的核心服务,包括虚拟机.Storage Blob和Tables.虚拟网络.负载均衡器.VPN网关以及Web Apps.微软已确定在Azure Sta

Windows Nano Server测试和Azure Stack揭秘-盆盆跑微软两会

[导读] 微软的两会(Build和Ignite大会)介绍了最新的Windows Nano Server,这是超精简的Windows服务器,本文介绍其特性和管理模式,同时还将介绍如何用Azure Stack. 提示:如果您发现图片无法正常显示,不妨用Chrome浏览器试试看. Windows Nano Server概述 五月初的微软两会-Build和Ignite上,Windows Nano Server是热点.这里盆盆就把自己的测试结果分享给大家. Windows Nano Server,号称无头

Azure Stack技术深入浅出系列3: Azure Stack运维工具Azure Stack Tools的使用及实战

源自 Azure 的 Azure stack 作为一款业界唯一的和领先的公有云平台一致的混合云平台,能够帮助企业客户从自有数据中心交付 Azure 云服务.作为<Azure Stack 技术深入浅出系列>的第三篇文章,本文将介绍 Azure Stack 部署完成以后,如何快速的管理和维护这套系统环境,包括虚拟机的管理.远程 VPN 连接.传输部署镜像.远程监控等.本文将通过一套 Azure Stack 运维工具集--Azure Stack Tools 来尝试使用和管理 Azure Stack

Azure Stack技术深入浅出系列2:谈Azure Stack在私有云/混合云生态中的定位

一. 国内私有云业务前景 就在今年4月,工信部发布<云计算发展三年行动计划(2017-2019)>,提出2019年云计算产业规模将达到4300亿.云计算已成为国家新一代信息产业发展的重要战略.从中国整个IT投入来看,政府.央企.国企以及大型民企占据主要份额,这些企业都意图拥抱云计算以提升生产力,但出于安全的考虑,又暂时对公有云有所顾忌.因此未来几年,私有云业务仍然会占据中国大部分市场份额. 根据Right Scale发布的<2017 State of the CloudSurvey>