web-server – 扩展我的Web应用程序以便能够应对大量用户的最佳策略是什么?

前端之家收集整理的这篇文章主要介绍了web-server – 扩展我的Web应用程序以便能够应对大量用户的最佳策略是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想获得一些关于如何开发扩展我的Web应用程序策略的建议/最佳实践.我在这里稍微惹麻烦,展示我有限的知识,但想填补我的知识空白.尽可能多地了解这一点很有诱惑力,但我意识到我需要寻求一些外部帮助,所以作为一个普遍的问题,知道什么是最容易外包的东西会很好.

我的背景 – 我是一名开发人员,主要负责开发用户界面,并且一直在使用Flash和PHP来开发应用程序的功能,该应用程序可以看到用户上传图像和视频以在线共享.

系统架构如下 –

>单个Web服务器,也充当数据库服务器(MysqL).此服务器位于托管主机软件包中,托管包含可靠且可靠的托管公司. Web服务器提供PHP页面和Flash SWF,它们是主要的UI组件
> Amazon S3存储桶用于存储用户的图像,视频和音频文件.
>用户界面组件是PHP页面或Flash SWF,例如图像和视频通过Flash swfs查看,Flash swfs通过AMFPHP服务查询数据库获取要加载的图像和视频文件的URL.然后从Amazon S3存储桶接收这些.另一个FLash SWF处理上传和POSTS文件到在Amazon Cloud上的EC2实例上运行的PHP脚本.
>用于管理图像,视频和音频上传上传服务器.这是一个运行在Elastic Load Balancer后面的Amazon EC2实例,当它看到cpu容量达到80%时会添加更多实例.
>我们还使用第三方服务,该服务也在Amazon EC2上运行,用于转码视频文件.

因此,在很大程度上,我认为设置好的东西可以扩大规模.但我没有如何扩展或管理高流量Web应用程序的经验,因此将依靠我们的Web服务器托管公司来管理Web / app服务器和数据库服务器的可扩展配置的设置.

硬件/架构扩展 –

据我所知,这里的第一步是分离Web服务器和数据库,并让数据库服务器独立运行,将Web服务器置于负载均衡器后面,最终为数据库服务器配置主/从配置.我该怎么问我的网络托管公司呢?这样做的问题是什么?对我的AMFPHP服务,不同类型的查询 – 写入和读取等问题有什么影响?我有一个单独的脚本,其中包含了包含在globals.PHP脚本中的数据库连接详细信息,因此我可以在一个步骤中轻松更新连接详细信息.我是对的,在主/从配置中,所有写入通常都会发送到主服务器并且读取来自从服务器吗?这是否意味着我需要查看我的所有数据库查询,并确保如果它是“UPDATE”或“DELETE”查询它进入主数据库服务器?在我的PHP代码中,数据库查询遍布整个脚本,并根据需要从函数内部调用.我已经阅读了一些关于数据库抽象的内容,但没有完全理解这种方法的重要性.

扩展的代码优化 –

我需要考虑改变代码以使事情更具可伸缩性? PHP中受缩放影响的常见问题是什么?

安全 –

在考虑处理大量数据时,我需要注意哪些与安全相关的常见问题.

数据库优化,备份和恢复程序 –

为大型数据库实现MysqL数据库自动数据库备份和恢复策略的最佳方法是什么?我应该考虑拆分我的数据库 – 我将所有数据保存在单个服务器上,尽管有几个数据库,例如用户成员资格信息数据库,用于保存用户上传数据的数据库,包含有关网站运行数据的数据库与行政职能更相关的事情.我希望能够分析数据库,以便能够看到事情是如何工作的,并了解如何使用Web应用程序,开发所以假设最好定期拍摄数据库的快照并存储因此,我有一个时间表,说明事情随着时间的推移如何发展,并使用某种数据库分析工具来查询这些快照,以跟踪事情的变化.关于如何解决这个问题,是否有任何好的建议,这些工具允许我和其他非技术人员分析数据并生成报告.

这有关我对在制定扩大规模战略时需要解决的领域的理解.人们认为我需要做些什么来成功地管理上述问题?我的假设是对的吗?我错过了什么?我还应该考虑其他什么?有什么好的资源来处理这个吗?如果我是在招募某人来帮助解决这些问题,那么我应该期待哪些技能/经验是完美的候选人?

感谢所有建议/经验/建议

干杯!

解决方法

只是一些指示,在我投票结束后有所帮助.考虑阅读:

> “Building Scalable Web Sites” by Cal Henderson
> “Scalable Internet Architectures” by Theo Schlossnagle

这两本书都是关于如何构建可扩展的Web应用程序的好书,涵盖了所使用的技术和思维模式/设计过程.

猜你在找的HTML相关文章