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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: How to get practical experience in developing scalable apps

47 点作者 anujmehta大约 6 年前
My current job involve working in decade old product, how can I get a practical experience in developing a highly scalable and distributed applications.

7 条评论

rahimnathwani大约 6 年前
1. Get the book &#x27;Designing Data-Intensive Applications&#x27;, read the causes of scaling problems, and some techniques to deal with them.<p>2. Take something you&#x27;ve built, and imagine that it faces a specific scaling problem. For example, let&#x27;s say the most complex thing you&#x27;ve built is a to-do list app. Maybe you can imagine some things that could make it grind to a halt when running as a monolith on a single server. e.g. what if a single user has 10,000 or 100,000 TODOs? Fake that situation (just insert many many fake TODOs into the database). Now see if you&#x27;ve created a scaling problem. If not, try a larger number, or a different dimension (e.g. what if there are many many simultaneous requests?) until you create a problem.<p>3. Look in that book again and pick a couple of ways you could solve the problem (database sharding across multiple servers? caching? pagination in your API calls?) and implement one of them.<p>(If you have difficult at step 2, you could try running your app on a virtual machine with very little RAM and disk, but imagine that&#x27;s the largest machine type available.)
评论 #19365935 未加载
vp8989大约 6 年前
It&#x27;s pretty much &quot;paint by number&quot; on AWS.<p>The problem with focusing on &quot;scalable&quot; is that wallets and budgets don&#x27;t scale infinitely and hosting isn&#x27;t free.<p>Being able to build stuff that is &quot;scalable&quot; is not enough. You need to be efficient which generally involves &quot;scaling down&quot;, ie how much of this data can we be drop because it&#x27;s useless and no one cares about it?
atmosx大约 6 年前
Here: <a href="https:&#x2F;&#x2F;12factor.net&#x2F;" rel="nofollow">https:&#x2F;&#x2F;12factor.net&#x2F;</a> - Some considerations which will not be found in the 12FA:<p>- If you wanna change configuration on the fly, in parallel, your app should support something like Prometheus reload: SIGHUP or <a href="http:&#x2F;&#x2F;&lt;ip&gt;&#x2F;-&#x2F;reload" rel="nofollow">http:&#x2F;&#x2F;&lt;ip&gt;&#x2F;-&#x2F;reload</a> - rolling updates might be time consuming (you need to separate between boot config and dynamic config)<p>- Add feature flags to your app.<p>- Use proper secrets management from day one. Something like Vault or Credstash could go a long way.<p>- Perform migrations to the CD system, don&#x27;t use init containers<p>... these are the ones I can think off the top of my head now, but there are more.
diehunde大约 6 年前
This is a very good resource: <a href="https:&#x2F;&#x2F;github.com&#x2F;donnemartin&#x2F;system-design-primer" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;donnemartin&#x2F;system-design-primer</a>
评论 #19365990 未加载
usgroup大约 6 年前
Make a small cluster and test stuff on it ... like anything else.<p>Most of the scalability stuff is about failure modes and how your system responds to it; so you don’t need stress tests for that.<p>Know the properties of your system. Eg what carries load? How does it scale? How much can it bare? Then mess with it on your cluster. Etc.<p>I suggest you start with Kubernetes and try and put together something like a self scaling PostgreSQL Citus cluster . Put data in it and then smash at it with big queries when ready.
Djvacto大约 6 年前
I haven&#x27;t done this yet, but you could always try building an app, and using something like stressgrid to test it.
评论 #19359825 未加载
expopinions大约 6 年前
One way to get some experience could be to find an open source project dealing with this kind of system and contribute there.<p>Examples of such open source applications in use for distributed, large scale systems all over the world are tensorflow, elasticsearch, and hystrix; this is just the tip of the iceberg.<p>Contributions to OSS will also be beneficial if you need to find a job in the business.