如何为Web项目选择最佳平台

近年来,Web和移动开发取得了长足的进步。现代web应用程序通常是基于Angular、React和Vue.js等强大的JavaScript特性构建的。虽然您可以在任何地方托管这些web应用程序,但是您可能需要的不仅仅是托管。不同的大型云公司,如谷歌、Amazon和Microsoft,几乎提供了您可以要求的任何内容,而像Netlify这样的即将到来的竞争对手希望为构建现代网站提供令人印象深刻的用户体验。

在本文中,我将重点介绍基于Web的项目。我们将研究以下平台:

  • Amazon Web Services (AWS)
  • Microsoft Azure
  • Firebase / Google Cloud Platform
  • Heroku
  • Netlify

请记住,这只是对这个主题的一个简短介绍。根据您的项目规模和需求,有许多因素需要考虑,例如:

  1. 成本:有些平台一开始相当便宜,但当你使用得更频繁时,它们就会变得昂贵得多。
  2. 性能:一些平台比其他平台运行得更好。
  3. 特性:虽然一些平台有一个更专注的关注点(例如web项目),但是一些更大的平台希望为您提供一个完整的服务解决方案,以使您保持在它们的生态系统中。
  4. 您所在地区的可用性:(例如,由于GDPR之类的法规)
  5. 合规和IT安全:(如ISO/IEC 27001认证)。

让我们开始看看这些平台能为我们做些什么。

Amazon WebServices (AWS)

AmazonWeb Services进入云计算市场已经有一段时间了.AWS提供许多产品,其名称如下:

  1. AmazonS3(云存储)
  2. AmazonEC2(虚拟服务器)
  3. AmazonDynamoDB(托管NoSQL数据库)
  4. AWS设备场(在AWS云中的实际设备上测试Android、iOS和web应用程序)

Netflix、联合利华和三星使用AWS。你可以有一年的免费使用时间,这个时间完全足够你去了解掌握aws。然而,aws的更新增长是很快的,所以使用起来并不是很直观。

微软Azure

MicrosoftAzure是顶级云计算平台之一。微软为初创公司提供了特殊的程序,这些程序提供对Azure服务的有限免费访问。Azure提供以下服务:

  1. AzureKubernetes服务(简化Kubernetes的部署、管理和操作)
  2. AzureDevOps(用于团队共享代码、跟踪工作和发布软件的服务)
  3. Web应用程序(快速创建和大规模部署Web应用程序)
  4. AzureCosmos DB(全球分布式、多模型数据库)

Adobe、宝马和惠普等领先公司都依赖Azure。微软在B2B领域有很好的地位,这就是为什么许多大公司更喜欢微软Azure。与Amazon类似,Azure UI相当复杂,这对新用户来说是一个挑战。

Firebase/谷歌云平台

Firebase是谷歌拥有的一个开发平台。从技术上讲,Firebase使用的是谷歌云平台。PayPal、Twitter和Target都是谷歌云的客户。由于谷歌的经验,Firebase提供了许多有用的服务,如:

  1. 云函数(在不管理服务器的情况下运行代码)
  2. 测试实验室(在谷歌托管的设备上测试您的应用程序)
  3. 谷歌分析(免费无限应用分析)
  4. MLKit(面向移动开发者的机器学习)

许多开发人员喜欢Firebase,因为它有强大的工具和强大的谷歌基础设施。然而,特别是由于GDPR和越来越严格的数据保护政策,一些公司希望避免使用谷歌基础设施。

Heroku

Heroku是一家美国云计算软件公司Salesforce旗下的服务平台,该公司因其CRM解决方案而广为人知。Heroku的免费版本很适合进行实验,但是服务器在一段时间不活动之后会休眠。有很多免费和付费的插件,提供额外的功能,如:

  1. ApacheKafka
  2. MongoDB
  3. NewRelic
  4. SendGrid

Heroku支持最流行的语言,如Java、Python和JavaScript。此外,Heroku提供了一个CLI,您可以使用一个命令来部署它。Citrix、丰田和Unsplash都使用Heroku。

Netlify

Netlify是一个相当新的竞争者。与Heroku的免费版本不同,免费版本已经相当慷慨,而且没有睡眠功能。用户体验和Netlify提供的特性使得使用它变得无缝和直观。Netlify提供的一些功能强大的附加组件包括:

  1. 分析(GDPR兼容)
  2. 函数(容易部署AWS Lambda函数)
  3. 表单(无需服务器端代码或JavaScript管理表单和提交)
  4. 标识(在没有自定义身份验证服务的情况下管理注册、登录、密码恢复等)

缺点是,像微软和亚马逊这样的云提供商提供的功能远远超过web项目。此外,您也不能使用其他语言,如Java或c#,因为Netlify促进了JAMstack的使用。但是,您可以使用函数作为服务器端语言(如Java或c#)的替代。

WeWork、Verizon和耐克等公司都是Netlify的用户。此外,一些流行的开源项目,如Vue.js和Kubernetes正在使用Netlify。

结论

如您所见,有许多选项可供选择。

对于托管web应用程序,Netlify已经成为我最喜欢的平台。它速度快,支持度高,使用简单。此外,产品正在快速增长。

当我需要宿主节点时,Heroku是我的首选平台。js-based后端。

Firebase是一个有趣的平台,我还没有在更大的项目中使用它。这是一个很好的入门选择,尤其是如果你正在为Android和iOS开发移动应用程序。

如果您在一个大型项目中工作,或者需要Azure和AWS都提供的大量特性和产品,那么Azure和AWS都是合理的选择。Azure和AWS在IT安全对您(例如对银行)高度相关时也表现得更好,因为它们比Netlify等年轻的竞争对手有更高的安全标准。

正如我所说,在为web项目选择平台时,您需要问自己许多重要的问题。

您使用的是哪个平台?请在评论中告诉我你的经历。

原文:https://medium.com/better-programming/aws-vs-azure-vs-firebase-vs-heroku-vs-netlify-how-to-choose-the-best-platform-for-web-projects-482d017de254