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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

How we reduced deployment times by 95%

84 点作者 bjacokes超过 5 年前

15 条评论

nrmitchi超过 5 年前
If I&#x27;m reading this right, then this approach takes away any real safety in terms of deployment. There would be no easy rollback mechanism, and no real assurances that the new code version will actually run.<p>I understand that the main goal here seemed to be avoiding time spent in ECS rollouts, but this solution seems to be sacrificing many of the guarantees that the rollout process is designed to provide.<p>The root problem is explicitly called out (slow ECS deployments), and is tied to rate limiting of the ECS `start-task` API call. The post mentions the hard cap on the number of tasks per call, but I&#x27;m curious if the actual _rate limit_ could have been increased on the AWS side. Ie, 400 calls would still be needed, but they could be pushed through much faster.
评论 #20822536 未加载
benologist超过 5 年前
Whenever I see these posts I feel like Heroku narrowly missed out on shaping the rest of the cloud just by staying proprietary and expensive.
评论 #20824473 未加载
评论 #20822392 未加载
marcinzm超过 5 年前
My read seems to be: don&#x27;t use ECS at large scale or you&#x27;ll need some really convoluted hacks.
评论 #20822465 未加载
评论 #20821913 未加载
评论 #20822268 未加载
评论 #20822087 未加载
testuser5559191超过 5 年前
Slightly off topic:<p>Does Plaid still operate via screen scraping? I&#x27;m a little perplexed as to why banks don&#x27;t have easy to use APIs, especially given recent regulation. It seems against their best interests to allow a third party to screen scrape and provide a service which the banks themselves could easily reproduce.<p>What am I missing? Is a bank with an easy to use API not a sound business decision from the bank&#x27;s perspective?<p>I know Monzo (challenger bank in UK) has&#x2F;had an API, though I haven&#x27;t heard of anyone using it.
评论 #20824326 未加载
sailfast超过 5 年前
Thanks for sharing these lessons!<p>I don&#x27;t use ECS at the moment but this is a well laid out post on how to avoid some performance issues that could have a huge impact.<p>EDIT: Downvoted for expressing appreciation for someone taking the time to note lessons learned?.. OK.
fcolas超过 5 年前
- How did you guys scale that much w&#x2F;o a bootloader before?<p>That&#x27;s what I don&#x27;t get. All the design patterns are those of Unix. You boot the kernel with a ... bootloader. Then you&#x27;ve the kernel with all the system&#x27;s params (call it ECS). Then each process is a child of the root process. And when you get by whatever mean the news that your app&#x27;s source code has changed, you pull that code and start running it, while still having the old one live. Once the fork of the new code returns a proper response code, you kill the old one and set the new app live, otherwise you stay live with the old version.
swiftcoder超过 5 年前
&gt; Engineers would spend at least 30 minutes building, deploying, and monitoring their changes through multiple staging and production environments, which consumed a lot of valuable engineering time<p>Man, startups have no idea how good they have it. It took a solid week to deploy a change at AWS.
maerF0x0超过 5 年前
&gt; The rate at which we can start tasks restricts the parallelism of our deploy. Despite us setting the MaximumPercent parameter to 200%, the ECS start-task API call has a hard limit of 10 tasks per call, and it is rate-limited. We need to call it 400 times to place all our containers in production.<p>From reading other comments it makes me wonder if you (Plaid) tried batching the tasks into N containers? Like if a task 50 containers, then you&#x27;d reduce the task call rate limiting by 50x...
评论 #20823042 未加载
crb002超过 5 年前
Google &quot;checkpoint restart&quot;. HPC community has had these tools for years, many in userspace. Can&#x27;t wait to see a Java or C# shop doing the same hot boots.
评论 #20829186 未加载
bsaul超过 5 年前
Side question : what’s the current best practice for ensuring that a server ( node or anything) isn’t currently processing some important information before you shut it down ?<p>Is it a mix of waiting for request handlers to terminate upon receiving a sigterm then end the current process (and timeouting after a while) ? Does kubernetes handles those kind of things (waiting for a given process to stop before trashing the vm) or is there another layer or tool to do so ?
评论 #20823047 未加载
评论 #20822704 未加载
评论 #20822564 未加载
评论 #20822684 未加载
cagataygurturk超过 5 年前
Going to EKS would take less time than exploring hacks.
评论 #20822128 未加载
evantahler超过 5 年前
Pretty cool! Actionhero uses the ‘require cache’ trick in development mode to hot-reload your changes as you go. It’s risky in that even though you’ve change the required file, you may not have recreated all you objects again. For that reason Actinhero doesn’t allow this is NodeEnv is anything besides development.
evantahler超过 5 年前
Cool! I’m curious if this is something that nodemon&#x2F;pm2 could do as task runners. You could call “npm update” and then hup your process...<p>This is sort of how Capistrano handled deployments, changing a symlink to all project deps and then signaling the process to reload
shay_ker超过 5 年前
After all these years, how is deploying solely on AWS still worse than Heroku &amp; Render?
mylampisawesome超过 5 年前
Just FYI, you&#x27;re &quot;We&#x27;re Hiring!&quot; link is broken.