是否有任何解决方案可以提高 Web 应用程序的性能和可扩展性
Is there any solution to improve the performance and scalability of a web app
我有几个问题,如果有人能向我解释以下情况。
当我们开始构建我们的产品时,我们是一个非常小的团队,我们需要快速证明价值。因此,将整个产品构建到一个单一的 Web 应用程序中非常有意义,因为这使得它非常易于管理。然而,随着公司和产品多年来的发展,我们开始面临这种架构的一些问题:
- 网站上的一些动作计算量很大,所以需要很长时间才能完成(因为需要处理的数据量越来越大,所以问题越来越大)
- 我们在应用程序中引入了越来越多的概念,例如发票、债务人、债权人、付款、账单、收据等
- 团队壮大了,“踩到别人脚趾头”的几率更高了
老实说,我们已经解决或正在解决这些痛点,但它们仍然为一些有趣的问题奠定了基础:
- 您会采取哪些措施来提高此类 Web 应用程序的性能和可扩展性?
您描述的问题正是微服务架构试图解决的问题。
首先,您应该开始确定您的应用程序的哪些部分是独立于其他部分的(例如,计费可能是独立于其余部分的),以便您确定不同的“限界上下文”或不同的业务领域。
然后您需要了解应用程序不同部分之间的通信流程如何,并定义尽可能少地保持这种通信的最佳策略以及如何在不同服务之间执行此操作。
然后,当您设计好如何拆分应用程序、通信、数据模型等时,您应该开始使用原始服务中的这些功能块创建一个一个的较小服务,并继续通过一个,直到您在不同的服务中解耦了不同的域。
互联网上有很多关于如何将整体拆分为微服务的文档。
当您实现这一点时,您将解决可扩展性、交付速度和多个开发人员并行工作的问题
可能您已经这样做了,但第一步是
1. run your web app through performance tab in Chrome Developer tools. This will give you complete suggestions report on improving
the performance.
2.Go to Memory tab in Chrome Developer tools and profile heap snapshot to see memory distribution.
3.In Network tab see for every navigation how many network calls you are making and how much data is getting downloaded.
4.Encode and download common images at once.
5.Remove unused assets, font families, unused and older version of libraries.
6.Minify all your js scripts
7.Check what is making your Content visualization speed lag
我有几个问题,如果有人能向我解释以下情况。
当我们开始构建我们的产品时,我们是一个非常小的团队,我们需要快速证明价值。因此,将整个产品构建到一个单一的 Web 应用程序中非常有意义,因为这使得它非常易于管理。然而,随着公司和产品多年来的发展,我们开始面临这种架构的一些问题:
- 网站上的一些动作计算量很大,所以需要很长时间才能完成(因为需要处理的数据量越来越大,所以问题越来越大)
- 我们在应用程序中引入了越来越多的概念,例如发票、债务人、债权人、付款、账单、收据等
- 团队壮大了,“踩到别人脚趾头”的几率更高了
老实说,我们已经解决或正在解决这些痛点,但它们仍然为一些有趣的问题奠定了基础:
- 您会采取哪些措施来提高此类 Web 应用程序的性能和可扩展性?
您描述的问题正是微服务架构试图解决的问题。
首先,您应该开始确定您的应用程序的哪些部分是独立于其他部分的(例如,计费可能是独立于其余部分的),以便您确定不同的“限界上下文”或不同的业务领域。
然后您需要了解应用程序不同部分之间的通信流程如何,并定义尽可能少地保持这种通信的最佳策略以及如何在不同服务之间执行此操作。
然后,当您设计好如何拆分应用程序、通信、数据模型等时,您应该开始使用原始服务中的这些功能块创建一个一个的较小服务,并继续通过一个,直到您在不同的服务中解耦了不同的域。
互联网上有很多关于如何将整体拆分为微服务的文档。
当您实现这一点时,您将解决可扩展性、交付速度和多个开发人员并行工作的问题
可能您已经这样做了,但第一步是
1. run your web app through performance tab in Chrome Developer tools. This will give you complete suggestions report on improving
the performance.
2.Go to Memory tab in Chrome Developer tools and profile heap snapshot to see memory distribution.
3.In Network tab see for every navigation how many network calls you are making and how much data is getting downloaded.
4.Encode and download common images at once.
5.Remove unused assets, font families, unused and older version of libraries.
6.Minify all your js scripts
7.Check what is making your Content visualization speed lag