作为一名前端工程师,我为什么对无服务器感到兴奋
开始之前,我正在开发https://cloudash.dev,这是一种监控无服务器应用的全新方式🚀。如果你在调试生产事件时厌倦了在 50 个 CloudWatch 选项卡之间切换,可以看看这个。
回归基础
基本上每个重要的 Web 应用程序(例如 Uber for Bunnies)都是由三个基本组件组成的,可以将其视为一个配方:
- 视觉效果(前端) ——用户交互的层,因此是 HTML/CSS/JavaScript 的三重奏(加上一些 jQuery 插件、跟踪脚本等等。有时甚至还会添加一些动画)
- 逻辑(后端) ——应用程序的核心。绝大多数逻辑都集中在这里,这里也存在着“巨龙”(和数据库)。在 Node.js 出现之前,后端开发几乎是一套与编写前端代码(例如 PHP 后端和 jQuery 驱动的前端)完全不同的技能。
- 基础设施——你现在看到的网站托管在某个地方。代码和逻辑并非凭空而来——必须有某种东西来运行它们。因此,为了处理 Uber for Bunnies 网站的生产级负载,你需要一台(或多台)服务器(或者你房间角落里的一台旧电脑来运行你的整个网站,我不作评判)。
问题
过去几年,我个人一直专注于这三者中的前端部分。从原生 JS,到 jQuery、Backbone、Angular、CoffeeScript(我不想谈论它)、React,再到 React。
说实话,我发现剩下的部分对于我职业生涯的大部分时间来说都是非常令人生畏的。
写一个 node.js 脚本来执行某个操作?我当然可以!
从零开始配置 MySQL 数据库,配置服务器来运行它,然后花了 4 天时间才把数据保存todo
到数据库中?请告诉我我们有一个 IE8 的 bug 需要修复,我不想这么做。
几年后,我相当有信心,只要有足够的时间和意志力,我就能自己解决很多事情,但事情是这样的:
我不想独自做所有事情
到目前为止,我已经记不清在我的职业生涯中说过多少次“这不应该这么难,现在是 20XX 年了!”
作为一名开发者,我通过开发产品、解决问题、发现并修复 bug 来获得报酬。我热爱这份工作!
开发能够帮助他人解决问题的产品是我的强项。
设置整个 node.js 服务器来托管每天会被调用几次的单个 index.js 函数是不行的。
专注于重要的事情
从前端工程师的角度来看,我对无服务器如此兴奋的原因是它允许我将我的问题委托给他人。
这不是我第一次看到这样的转变。
问:为什么我从 Backbone 转到 React?
答:因为 React 抽象出了我在构建 Backbone 应用程序时遇到的很多问题(例如性能问题和缺乏可重用组件)
问:为什么我对无服务器感到兴奋?
答:因为无服务器技术抽象出了我不想处理的问题(设置服务器、扩展服务器、托管我的逻辑等),并允许我在需要时运行我的代码。
为了简单起见 - 在这篇文章中当我提到时,serverless
我指的是 AWS Lambda(请随意查看WTF 是 AWS Lambda)。
为什么我们将 AWS Lambda 称为无服务器技术?因为是的,它有服务器,但你无需考虑它们。
管理、配置、扩展等等所有问题都交给别人来处理。最棒的是,这个“别人”就是 AWS——一家拥有世界级专家的公司,更不用说它拥有的服务器数量多到一个月都数得过来[需要引用]。
说实话,对我来说,这就像打开了一个充满可能性的全新世界🎉
全栈无服务器开发者或许会成为未来几年最炙手可热的工程职位。原因很简单:团队中拥有一位能够完美结合各种无服务器技术来解决你的问题(并大幅优化成本!)的人,将会非常宝贵。
这张来自 AWS Re:Invent 2017 的幻灯片让我们得以一窥随着无服务器技术的发展而出现的未来:
你知道,我真的很高兴我的工具包中有更多的工具,我可以使用它们来构建更好的功能、产品,并更快(更便宜!)解决问题。
我很兴奋,我该从哪里开始呢?
好问题!
如果你想免费向我学习一些 AWS 知识,请查看egghead.io上的免费视频集:
我很快还将推出 AWS 云开发工具包egghead.io,总结一下为什么你应该……可能会热衷于使用它:
AWS 云开发工具包允许您使用单一编程语言 TypeScript构建整个堆栈(前端、无服务器后端、AWS 基础设施) !
🔥🔥🔥
文章来源:https://dev.to/tlakomy/why-im-excited-about-serverless-as-a-frontend-engineer-3eh1