一些背景是我目前有一个虚拟机部署在Azure上。 在VM上,我有3个Java Web应用程序在Tomcat服务器上运行。 每个都以某种方式进行整合。 他们都运行在同一个运行在虚拟机上的MySql服务器上,所有3个服务器也需要读写文件系统中的图像和其他文件types。 MySql服务器正在使用MySql备份备份到我已设置备份到我的保pipe箱帐户的ftp应用程序。 (Dropbox不是一个需求,但是我确实需要某种types的备份服务)
最近我看到了对Azure Web Apps的巨大推动,因为它们pipe理,易于扩展,整体更可靠,更简单。 但是,我发现他们更多地构build了一个简单的应用程序,它没有上面列出的要求。
我的问题是,我应该转移到Azure Web应用程序? 如果是这样,最好的行动计划是什么? 至于如何写入文件系统,而且cleardb足够可靠?
您的问题是否应该转移到Web应用程序主要是基于意见的,但从客观的angular度来看:Web应用程序和虚拟机是不可互换的,也不是它们的意图。 Web应用程序(Azure应用程序服务的一部分)专门针对Web /应用程序层,并提供所需的一切(包括扩展,证书pipe理等)。 应用服务不会支持你正在使用的100%,所以你需要保持你拥有的东西,或者创build一个同时使用虚拟机和应用服务的环境。
Web Apps完全支持VNets,所以即使您在两者之间切换应用程序环境,也可以保持层之间的安全通信。
Web应用程序本身不适用于简单的应用程序。 但是你可以安装的东西有限。 例如,你不能安装MySQL。 你也不想,因为你不能控制系统资源和连接磁盘来pipe理可靠的东西。
您还具有Web应用程序的特定端口访问权限。 也就是说,只有端口80和443.随着networking套接字的支持。
Web应用程序环境是多租户的(另一个原因是你不能安装像MySQL这样重的东西)。 您的应用程序层将在任意数量的实例上运行(或根据需要移动到群集中的其他虚拟机)。
Web应用程序环境仅适用于Windows(在处理运行代码(如node,.net,php,Java和python(当前支持的语言的列表)时通常无关紧要)。
确实,Web应用程序服务是完全托pipe的,您只需要担心自己的代码。 除了版本控制集成之外,更新应用程序几乎是微不足道的(例如,将新构build推送到github,并自动推出新版本的应用程序)。 但是,由于通常需要数据库和其他复杂的服务,因此您可以利用虚拟机(如果Azure提供的服务不是您想要的)。 您仍然需要pipe理您创build的虚拟机,但是您可以将部分应用程序卸载到Web应用程序。
我知道你没有使用Web / Worker Roles(适用于Web Apps和VM),但是我在这里写了一个在StackOverflow上的比较。 这使您更深入了解如何使用Web应用程序。