2019年4月第四周
黑客中午产品更新:我们在2020年4月部署的概述
他们说:“四月的淋浴带来五月的花朵。” 以我们为例,4月的基础架构变更将为我们的读者和未来的撰稿人带来很多好处。
万英尺概述
让我们看一些数据。
首先,我们现在有几个活动存储库。 首先,让我们看一下运行app.hackernoon.com , hackernoon/green
的存储库:
似乎我在20号进行了一次鼓舞yarn.lock
集会,但实际上,我只是删除了yarn.lock
(我们现在使用npm
)。 那么所有活动都发生在哪里? 我们整天都在闲逛吗? 理查德·法拉是谁?
回答最后一个问题: Richard Kubina是我们的最新雇员! 他是一名兼职开发人员,是我的一个朋友,目前正在进行统计数据大修-稍后再进行介绍。
至于我们是否都懈怠:当然不是! 看一下,hackernoon.com引擎的图表, hackernoon/nextgreen
:
此图讲述了一个故事。 Storm显然添加了许多代码,在这种情况下,添加了许多样板代码,基础结构和设置代码,以便我们可以使用Next.js有效地进行编码。 我尽我所能进行了贡献,但这主要是错误修复,对系统在Next之前的功能的更正。
当然,原始数字并不能说明全部情况。 提交次数和代码行无关紧要。 用例呢。 修复。 话说。 因此,完整的故事:
当鸣则已一鸣惊人...
从传统的CDN到使用Next.js以及SSG(静态站点生成),对我们来说,4月在很大程度上是一个转变。 这给我们带来了一系列重大但并非不可克服的挑战。 首先,我们在这个新系统中暴露出的数据存在很多不一致之处-我们能够在生成页面时将它们大幅度地淘汰掉,从而使所有故事都可以用相同的逻辑进行渲染。
在其他情况下,我们只是存在错误。 任何新系统,尤其是这种规模的系统,都将涉及大量的错误修复。 值得庆幸的是,这些错误中的绝大多数都相当容易修复,无论它们是显示错误,行为的意外更改还是仅仅是我们在过渡中错过的斑点。
与CDN相比,该系统具有多个优点。 例如,如果我们要显示动态数据,那么将其与静态HTML和JS的旧系统进行比较时,这非常容易,几乎是犯罪的。 不仅如此,如果我们要更改页面,那么更改一个组件而不是更改7个或8个静态模板,使缓存无效并根据需要在部署时重新生成页面要容易得多,而不是手动重新生成所有页面。东西。 认真地讲,每当我们更改标题或导航等内容时,我们都必须运行脚本来重新生成旧页面,这很麻烦。
对于这种新体系结构,我们仍然试图解决一些不太理想的行为。 我们并不总是能够控制所需的缓存,因此按需失效是开发团队的主要愿望。 值得庆幸的是,称为“增量构建”的功能将为至少一个问题提供解决方案,在该问题中,故事更新不会立即显示(不要担心-我们有您的更改,它们会在约15分钟内显示出来)现在)。
...有时,它会...
更重要的是,我们有一个稍有不同的缓存问题。
我们从Firebase托管开始。 它可以自动缩放,可以很好地处理Next.js,但它不是为Next.js构建的。 此外,由于我们的捆绑包达到了100MB的限制(主要是预生成页面),因此我们开始出现部署问题。 这就像试图将一个方形钉插入一个圆Kong中一样。
因此,我们将阅读器体验的相当一部分转移到Zeit,或者现在称为Vercel 。 简而言之,蜜蜂的膝盖弯曲。 您将其连接到Github(或Gitlab或Bitbucket)和Bingo bango,部署是自动的。 只需将您的分支合并到master。 哦,当您创建PR时,它会创建一个预览分支,并将您的代码部署给所有人尝试。
还有一个或两个重要的问题,我们仍在与NextJS一起工作-这是一个我不愿出于对Vercel的尊重和对他们SwiftReact的赞赏而不愿透露细节的问题。 只是需要解决的问题,仅此而已。 总的来说,10/10会推荐。
啊,但是我漫步。
...但最终,花开了。
总体而言,此举对Vercel一直比较顺利-极少数的问题,而不是对整个CDN到Next.js移动(甚至是不坏 )。 除此之外,我们一直在努力:
- 使用新的缓存层彻底减少负载,对统计基础结构进行了全面的检查。
- 比Firestore和Google Cloud Platform默认提供的备份系统更可靠(是的,我们仍然托管数据,存储以及GCP上的几乎所有其他内容)。
- 改进内部API上的身份验证。
- 使在本地测试API成为可能(没有这个,我们花费了令人惊讶的长时间)。
- ...我在这里对其他PR进行了描述,但我们只能说,它们都以“修复”一词开头
tl; dr
那么,这对您有什么帮助?
- 得益于新的hackernoon.com基础架构,您的阅读体验将比过去更频繁,更快速地得到改善。 在初步数据中,故事页面上的页面时间增加了14%。
- 我们已修复了数量众多的错误。 该站点每天都在变得更加稳定-我们正处于这样一个地步,我们可以花更少的时间来稳定时间,而可以花更多的时间来添加基本功能。
- 我保证,您的统计信息将很快恢复! 理查德的努力工作,使他们的方式更快,更可靠的比他们去过。 敬请关注!
- 哦,我提到您现在可以更改自己的句柄了吗? 😁
- 通常,开发将更快地进行,新功能和修复将更频繁地部署。
在接下来的一三个月中,您会为几种即将推出的功能而peel之以鼻,尤其是为我们亲爱的读者服务的功能。 then'直到继续,继续前进!
翻译自: https://hackernoon.com/april-platform-shift-brings-may-time-on-story-page-lift-bo1kv3zyx
2019年4月第四周