问题描述
我正在规划一个更大的web项目的过程。它将是一个非常具体目的的社交网络(所以没有Facebook克隆)。
i am in the process of planning a larger web project. it will be a social network for a very specific purpose (so no facebook clone ;) ).
我准备了大量的轮廓,设计模式,数据库计划和我想使用的语言(和如何使用) - php,js(jquery),ajax,当然还有xml,html css。
i have prepared a huge amount of outlines, design patterns, database plans and the languages i want to use (and how) - php, js (jquery), ajax, and of course xml, html css.
项目(为许多成员设计),可以扩展它,扩展它并添加大量新功能我有几个问题。
since it will be a very big project (designed for a lot of members) with the possibility to scale it, expand it and add lots of new functionality i have a few questions.
我将工作它与朋友&可能会雇用专业人员的安全问题,但大部分的编程将在一个启动的气氛私人完成。
i will be working on it with friends & probably will hire professionals for security issues, but most of the programming will be done privately in a start-up atmosphere.
我已经从事了大规模的离线软件项目因此我熟悉svn并与多个开发人员在离线项目上合作。但由于我是一个相当新的web技术,我真的想要一些投入:
i have worked on offline-software projects of larger scales and am therefore familiar with svn and working with multiple developers on offline projects. but since i am fairly new to web technology i would really like a few inputs on:
-
如何在线项目更大的规模,含义:主要版本公开供大家使用,但是从公众隐藏的开发副本,我们将能够合并到主版本,为其提供安全性,功能性和安全性。其他更新?
how to work on online projects of bigger scale , meaning: main version public for everyone to use, but developement copies hidden from the public that we will be able to merge into the main version to provide it with security, functionality & other updates?
硬服务器,我有一个自己的服务器出租,但我100%确定它将不能够处理这种交通&数据量我们将需要。所以我的问题是:最好购买自己的设备(具有大量空间的快速服务器),还是应该考虑使用亚马逊EC2等云解决方案?
i am hanging between cloud & hard servers, i have an own server rented but i am 100% sure that it will not be able to handle the kind of traffic & data volume we will need. so my question: is it better to buy own equipement (fast servers with a lot of space) or should i look into cloud solutions such as amazon EC2?
你有没有其他有用的信息,如何从头开发大型网站?我现在的工作计划是:
1:数据库设置,
2:设计注册表,
3:设计登录,
4:一旦用户管理工作开始工作内容&功能
对于有大项目经验的任何人都有意义吗?
do you have any other useful information on how to develop a large-scale website from scratch? my current work plan would be:1: database setup,2: design registration forms,3: design login,4: once user management works start working on the actual content & functionalitydoes this make sense to any of you who have experience with large projects?
很多信息,发现有点,但不够有信心足以开始=)
i have searched a lot for information and have found a bit but not enough to be confident enough to start =)
感谢您的建议,
sebastian
thank you for your advice,sebastian
推荐答案
如何处理更大规模的在线项目
多个环境:
- 每个开发人员在其本地计算机上有一个开发环境
- 为开发团队开发环境
-a 测试环境适用于质量保证团队
-a 分段环境,它将尽可能封闭为生产环境(在生产副本上运行数据库,相同的服务器配置等)
-a 生产环境
工作流程概述可以是:
how to work on online projects of bigger scale
You will have to setup multiple environments:-each developer has a development environment on their local machine
-a development environmnent for your development team
-a test environment for the quality assurance team
-a staging environment that will be as closed as possible as the production environment (runs on a copy of the production database, same server configuration, etc)
-a production environmentAn overview of the workflow could be :
- 开发人员对其本地计算机上的代码进行多项更改,经过一些测试后,他将更改提交到版本控制服务器。
- 在每天开始时,开发环境将更新为最新版本。开发人员现在可以看到应用程序的当前状态
- 几天后,测试环境更新。质量检查小组开始对开发小组进行一些测试并向开发小组报告错误(使用错误跟踪器)
- (返回步骤1,直到质量检查小组满意)
- 更新暂存环境(生产中的代码和副本数据库)
- 如果一切正常,请更新生产环境
- A developer makes multiple changes on the code on its local machine, after some testing, he "commit" the changes to the versionning server.
- At the beginning of each day, the development environment is updated to the last version. The developers can now see the current state of the application
- After a few days, the testing environment is updated. The QA teams begin to perform some testings and reports bugs to the development team (using a bug tracker)
- (Go back to step 1 until the QA team is happy)
- Update the staging environment (code and copy database from production)
- If everything is fine, update the production environment
在云和硬服务器之间
有两个不同的辩论:
购买vs租赁和标准专用服务器vs云服务器
Between cloud and hard servers
You are missing something. There are two differents debates :"Buy" vs "Rent" and "Standarts dedicated servers" vs "Cloud servers"
-
购买与租借
这取决于您的现金流。
您将购买如果:您知道您的网站将是一个成功,你有足够的现金在服务器上花费,你不需要任何可扩展性功能(和你仍然可以支付你的员工),你需要花钱用于税务目的。
如果出现以下情况,您将租房:您没有现金,您想在失败时失去更少的钱,您不知道确切的负荷,您可能需要按比例放大/缩小。
"Buy" vs "Rent"
It depends on the cashflow you have.You will buy if : you know that you site will be a success,you have enough cash to spend on the servers, you don't need any scalability features (and you can still pay your employees), you need to spend money for taxation purposes.You will rent if : you do not have the cash, you want to lose less money in case of failure, you do not know the exact load, you might need to scale up/down.
专用服务器vs云服务器
专用服务器的价格更便宜,但是扩展/可能需要几天才能安装/删除新的服务器)。云服务器可以使用自动扩展功能,需要较少的维护,但是如果你总是有一个巨大的负载24/7,更昂贵。如果您只有几个负载峰值,云服务器会更便宜(只有在您使用自动缩放功能时)
"Standarts dedicated servers" vs "Cloud servers"Standarts dedicated servers are cheaper but it is more complicated to scale up/down (it might take days to install/remove a new server). Cloud servers can use automatic scaling features, require less maintenance but are more expensive if you always have a huge load 24/7. If you have only a few peaks of loads, cloud servers are cheaper (only if you use automatic scaling)
这是一个太多的问题。尝试选择一个适合您需要的框架,使用NoSQL数据库(但您可能会遇到他们的限制)或使用像Amazon RDS这样的服务。不要忘了做一些负载测试来识别瓶颈。
This is too much a question. Try to pick a framework that fits to your needs, use a NoSQL database (but you might struggle with their limitations) or use a service like Amazon RDS. Do not forget to do some load testing to identify the bottlenecks.
这篇关于更大规模的Web项目规划的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!