TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Architecting for Uptime

53 点作者 rudd大约 13 年前

4 条评论

dpdp_大约 13 年前
There are so a lot more patterns of high availability architectures other than load balancing.<p>Distributed Queues, Pub/Sub, Gossip just a few that come to mind.<p>In your example, you are using what is called a classical three-tier web architecture - a Load Balancer + Stateless Nodes + Scalable Storage. The most interesting part of HA setup in a three-tier web architecture is HA setup of the persistent storage component. It looks like you actually haven't figured that out that piece yet and are waiting for a vendor (Microsoft) to solve this for you.<p>You can improve availability of your persistent storage (MSSQL) in several simple (or not so simple ways):<p>1. Use a SQL proxy load balancer (or a cluster setup) - a similar load balancer HA pattern you are already using<p>2. Shard. You will scale writes and significantly reduce the probably of your system becoming completely unavailable.
评论 #3674570 未加载
评论 #3674569 未加载
评论 #3675001 未加载
评论 #3675042 未加载
评论 #3675747 未加载
edwinnathaniel大约 13 年前
Whether you're developing for high-trafficked web-apps or not, I believe the practice of Continuous Integration has become a common bare-minimum these days.<p>The tricky part when it comes to CI often occurs in the area of test automation, archiving the builds, building for different environment (UAT, STAGE, DEV, PROD), and to deploy it immediately after build (definitely hard if it involves database and migration).<p>Some CIs handle archiving the builds (Atlassian Bamboo comes to mind).<p>Some build system handles multiple builds for different configurations fairly straightforward and easy (Maven Profiles, Rails to some extend)<p>Automated-deployment is still a bit tricky to setup.<p>Certain category of test-automation is hard to do in CI (typically around JS, UI code, and functional testing). This particular area requires high-level of discipline from the development team. This is one of the reasons why some teams/companies prefer to use GWT instead of pure JS due to the known best practices and the work-around for "headless" front-end testing (or at least that was the case in the past, maybe the JS testing landscape has changed ever since).
j-kidd大约 13 年前
&#62; The main thing one needs to think about when coding an app in a load balanced environment is that there’s no guarantee that request ‘n+1′ is going to land on the same server as request ‘n’, so you need to handle sessions in a centralized/db manner so that the cookies in the browser link you up to the proper session regardless of what server you hit.<p>Instead of doing it in a centralized/db manner, Beaker allows sessions to be distributed client side:<p><a href="http://techspot.zzzeek.org/2011/10/01/thoughts-on-beaker/" rel="nofollow">http://techspot.zzzeek.org/2011/10/01/thoughts-on-beaker/</a><p>It was one of the best things I learned last year.
评论 #3674659 未加载
mrgreenfur大约 13 年前
I just got their "we are overloaded" page, I shit you not. Is this part of a joke I'm lucky enough to be in on? :)