带有 Java、MySql、文件系统的 Azure Web 应用程序

带有 Java、MySql、文件系统的 Azure Web 应用程序

背景是我目前在 Azure 上部署了一个 VM。在 VM 上,我有 3 个 Java Web 应用程序在 Tomcat 服务器上运行。每个应用程序都以某种方式集成。它们都在 VM 上运行的同一个 MySql 服务器上运行,并且所有 3 个应用程序还需要读取和写入文件系统中的图像和其他文件类型。MySql 服务器正在使用 MySql 备份到 ftp 应用程序进行备份,我已将其设置为备份到我的 Dropbox 帐户。(Dropbox 不是必需的,但我确实需要某种类型的备份服务)

最近,我看到 Azure Web Apps 受到大力推崇,因为它们易于管理、易于扩展,而且总体上更可靠、更简单。然而,我发现它们更适合简单的应用程序,不具备我上面列出的要求。

我的问题是,我应该迁移到 Azure Web Apps 吗?如果是这样,最好的行动计划是什么?例如,我如何写入文件系统,cleardb 是否足够可靠?

答案1

你的问题是应该转向 Web 应用主要是基于个人观点,但从客观角度来看:Web 应用和虚拟机不可互换,也不打算互换。Web 应用(Azure 应用服务的一部分)专门针对 Web/应用层,并提供您所需的一切(包括扩展、证书管理等)。应用服务不会 100% 支持您正在使用的内容,因此您要么需要保留现有内容,要么创建一个同时使用虚拟机和应用服务的环境。

Web 应用程序完全支持 VNet,因此即使您将应用程序环境拆分为两者,也可以保持各层之间的安全通信。

Web 应用本身并不适用于简单的应用程序。但是您可以安装的内容会受到一定限制。例如,您无法安装 MySQL。您也不想这样做,因为您无法控制系统资源和附加磁盘来管理类似的东西。

您还可以访问 Web 应用的特定端口。即,仅限端口 80 和 443。同时还支持 Web 套接字。

Web 应用环境是多租户的(这也是您无法安装 MySQL 等大型软件的另一个原因)。您的应用层将在任意数量的实例上运行(或根据需要移动到集群中的其他 VM)。

Web App 环境仅适用于 Windows(在处理运行代码(如 node、.net、php、Java 和 python(当前支持的语言列表)时通常无关紧要)。

确实,Web App 服务是完全托管的,您只需担心您的代码。通过版本控制集成,更新您的应用程序几乎是微不足道的(例如,将新版本推送到 github,并自动推出新版本的应用程序)。但考虑到通常需要数据库和其他复杂服务,您可以利用 VM(如果 Azure 提供的服务不是您想要的)。您仍然必须管理您创建的 VM,但您可以将应用程序的子集卸载到 Web Apps。

我知道你没有使用 Web / Worker Roles(介于 Web 应用和虚拟机之间),但我在 StackOverflow 上对这两者进行了比较这里。这让您更深入地了解如何使用 Web 应用程序。

相关内容