大规模 Web 应用程序实际上是什么意思?

What do we actually mean by large scale web application?

我们所说的大规模 Web 应用程序究竟是什么意思? 称其为大型 Web 应用程序的标准是什么
是应用程序的代码行数还是 Web 应用程序每天的用户数。说每天 10K?

我们所说的大型 Web 应用程序究竟是什么意思?那要看你问谁了。

如果人们过去构建过较小的应用程序,现在需要构建一个处理更多数据和更多流量的更大的应用程序,他们可能会将其称为大型 Web 应用程序。但是,如果您将该网站与 LinkedIn、Facebook 或 Google 等网站进行比较,那么它仍然是一个小型应用程序。

人们对什么是大有不同的概念,对某些人来说大可能对其他人来说是中等,对另一些人来说可能是小。但是大型 Web 应用程序具有以下特征:

  • 性能,能够处理大量(百万)的users/request 或大量()每秒事务。两者都有挑战,具体取决于应用程序的类型(CPU 绑定、IO 绑定或两者)。
  • scalability,横向的,不仅在web server层面,还有数据库层面。根据您正在做的事情,RDBMS 可能不再有效,因此您必须走 NoSQL 路径,有时会使用多个产品,因为 NoSQL 解决方案往往是处理特定用途的专门系统案例而不是像 RDBMS 那样成为通用数据库。许多 集成挑战 来自将异构解决方案连接在一起并使它们作为单个应用程序运行。
  • 大型应用程序 分布式 ,利用 CDN 或 运行将应用程序安装在地理位置更接近用户的服务器上。您可以轻松拥有 数百或数千个服务器节点 ,而大型系统管理员团队必须管理设置。如果您没有自己的数据中心,您可以 运行 在 云端
  • 除了大型系统管理团队,您通常还有一个 大型开发团队 需要优化性能和可扩展性,设计师和前端开发人员致力于提供流畅的用户界面,具有移动支持等;
  • 必须处理大量数据和大量数据类型。不再只处理产品、客户、订单等,还处理点击、页面views/hits、事件、日志、客户行为跟踪等。这与之前的 NoSQL 点有关,但也与此数据量有关这些应用往往有一个很大的 back-office,提供各种报告、图表、管理工具等来管理应用本身。
  • 可用性 24/7;
  • 其他一些混杂的关键字,如 SOA 架构、微服务data-warehouses、安全、分布式缓存、持续部署等
  • 等等

这些是(我认为)大型网络规模网络应用程序的一些共同特征,在构建应用程序时,预先考虑这些方面并从一开始就应对它们带来的所有挑战很重要.