我试图在网上找一些练习来练习缩放技术(memchached,SQL Optimization,分片dbs),但我只能找到这些技术的描述,而不是任何可以尝试它们的项目。
这个与slides on scaling techniques的链接是一个有趣的链接,因为它总结了一些工具来很好地实现可伸缩性。
这类活动是否有投影网站?或者至少有一些练习(比如一个可下载的ASP.NET / PHP网站有明显的减速,并发问题,微妙的错误)供人们尝试学习如何解决这个问题?
答案 0 :(得分:2)
我发现网站High Scalability有一些很好的见解。
答案 1 :(得分:1)
破解Wordpress可能会很有趣。他们的缓存插件会解决很多扩展问题,但编写自己的插件或破解源代码以减少SQL查询或缓存静态页面会很酷。如果你想出了什么,一定要让社区其他人知道!
答案 2 :(得分:1)
乔治的幻灯片绝对是一个很好的工作基础。请注意,他不是在谈论特定的技术或技术;相反,他正在讨论更多一般的架构和设计决策,这将有助于您的应用程序整体扩展。
我个人认为这种高级思维比个人优化技术更有价值。也许你可以采用一个众所周知的Web应用程序并破解它直到它在多台机器上很好地扩展?一堆廉价的low-power EC2 machines在这里真的很有用。让现有的或新的应用程序在许多机器上正常运行将是一个很棒的练习。
反直觉地说,不是尽可能多地在一台机器上运行,我会说在同一台机器上运行相同的应用程序会更有教育意义。
一旦掌握了这一点,就可以进行更具体的改进,例如单独的静态内容层,memcached
,数据库分片,批处理操作等。
就要处理的具体项目而言,如何克隆Twitter,Flickr或The Pirate Bay。他们过去都遇到了性能和扩展挑战。