我们通过大规模Web应用程序实际意味着什么?将其称为大规模Web应用程序的标准是什么?应用程序
的代码行数或Web应用程序每天的用户数.说每天10K?
大型Web应用程序实际上意味着什么?这取决于你问的是谁.
如果人们过去构建较小的应用程序并且需要构建一个更大的应用程序,现在可以处理更多的数据和更多的流量,他们可能会称之为大型Web应用程序.但是,如果您将该网站与LinkedIn,Facebook或Google等网站进行比较,那么它仍然是一个小应用程序.
人们对于什么是大的概念有不同的概念,对于某些人而言,对于某些人而言,对于其他人来说,大的可能是中等大小,对于其 但是大规模Web应用程序具有以下特征:
性能,能够处理大量(数百万)用户/请求或每秒大量(数千)的事务.两者都有挑战取决于应用程序的类型(CPU绑定,IO绑定或两者).
可伸缩性,横向类型,不仅在Web服务器级别,而且在数据库级别.根据你在做什么RDBMS可能不会削减它了,所以你必须走NoSQL的路径,有时使用一个以上的producs作为NoSQL的解决方案往往是专门解决特定用例的系统,而不是作为一个通用的数据库RDBMS是.将异构解决方案连接在一起并使它们作为单个应用程序运行会产生许多集成挑战.
大规模应用程序是分布式的,利用CDN或在地理位置更靠近用户的服务器上运行应用程序.您可以轻松拥有数百或数千个服务器节点,大型系统管理员团队必须管理设置.如果您没有自己的数据中心,则可以在云中运行.
除了一个庞大的系统管理团队,你经常有一个大型开发团队需要优化性能和可扩展性,设计师和前端开发人员致力于提供流畅的用户界面,移动支持等;
必须处理大量数据和大量数据类型.不再仅仅处理产品,客户,订单等,还包括点击,页面浏览/点击,事件,日志,客户行为跟踪等.这与之前的NoSQL点有关,但也与这些数据量相关往往有一个大的后台,提供各种报告,图表,管理工具等来管理应用程序本身.
可用性 24/7;
其他一些杂项关键词,如SOA架构,微服务,数据仓库,安全性,分布式缓存,持续部署等.
等等
这些是(我认为)大型网络规模Web应用程序的一些共同特征,重要的是要预先考虑这些方面,并在构建应用程序时应对从一开始就产生的所有挑战.