Skip to content

Commit

Permalink
Spelling
Browse files Browse the repository at this point in the history
  • Loading branch information
mac-chaffee committed Dec 3, 2024
1 parent 2a3b352 commit 864bd3f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions blog/2024/the-next-platform/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ <h2 id="possible-contenders">Possible contenders</h2>
<p>With these lists in my mind, I've been exploring the landscape of possible contenders for "the next platform". Like all kinds of future-prediction, this is very subjective and very likely to age poorly, so let's forge ahead regardless.</p>
<h3 id="paleoops">PaleoOps</h3>
<p>This is the idea of running everything on one or two big bare-metal servers, usually from budget providers like Hetzner. Not sure if there's a name for this, so I'm calling it PaleoOps. Similar to how the <a href="https://en.wikipedia.org/wiki/Paleolithic_diet">paleo diet</a> developed in response to the rapid expansion of processed foods and their health risks, there's some good and bad reasoning used to justify PaleoOps. Applications got super complex super quick and a whole generation of developers got burned, leading to embracing the simpler infrastructure of the past, which <a href="http://rachelbythebay.com/w/2022/01/27/scale/">has been successful</a> in some cases.</p>
<p>But sometimes uncritically embracing older things results in <a href="https://www.macchaffee.com/blog/2024/you-have-built-a-kubernetes/">suffering from the same problems</a> that lead to the rise of the modern replacement in the first place. Notable issues include the increased exposure to hardware failure, the lack of edge support, the security risks of non-segmented applications, and huge amount of features you'd have to develop yourself. So I don't think this will become "the next platform" but it will always serve a niche where the benefits of a fully automated platform are not needed.</p>
<p>But sometimes uncritically embracing older things results in <a href="https://www.macchaffee.com/blog/2024/you-have-built-a-kubernetes/">suffering from the same problems</a> that lead to the rise of the modern replacement in the first place. Notable issues include the increased exposure to hardware failure, the lack of edge support, the security risks of non-segmented applications, and the huge amount of features you'd have to develop yourself. So I don't think this will become "the next platform" but it will always serve a niche where the benefits of a fully automated platform are not needed.</p>
<h3 id="honorable-mention-erlang-darklang">Honorable mention: Erlang, Darklang</h3>
<p>Language-based distributed programming models have always been fascinating to me. <a href="https://vereis.com/posts/disterl_inbox">Erlang/Elixir and other BEAM languages</a> were early movers, apparently powering vast distributed systems at <a href="https://en.wikipedia.org/wiki/Erlang_(programming_language)#History">Ericsson</a>. There was also a time when I thought <a href="https://en.wikipedia.org/wiki/Akka_(toolkit)">Akka</a> and actor-based programming would take over the world. Notably those both gloss over the deployment/DevOps work, sometimes just relying on Docker or Kubernetes (a la <a href="https://github.com/bitwalker/libcluster">libcluster</a>). <a href="https://darklang.com/">Darklang</a> is another group building something like "the next platform", all from a single programming language.</p>
<p>But all of these are a bit of a moonshot in my opinion since way too much existing code is written in JavaScript, Python, etc. You could compile apps to run on the BEAM, but you can't simply add OTP semantics to existing apps.</p>
Expand All @@ -114,7 +114,7 @@ <h3 id="serverless-aws-lambda">Serverless - AWS Lambda</h3>
<p>But I believe Lambda was a bit ahead of its time. Web frameworks like Django were quite popular, but you couldn't just run Django on Lambda without a tool like <a href="https://github.com/zappa/Zappa">Zappa</a> to magically make it "serverless", which wouldn't come out for another 2-3 years. You'd also want a serverless database like Aurora Serverless which wouldn't come out <a href="https://aws.amazon.com/blogs/aws/aurora-serverless-ga/">until 2018</a> (or <a href="https://aws.amazon.com/blogs/aws/amazon-aurora-postgresql-limitless-database-is-now-generally-available/">2024 if you use postgres</a>).</p>
<p>Given this is an AWS service, setting up a simple Lambda requires IAM roles, API gateway, and maybe some KMS config which can get quite complicated. There were also problems with cold-start times of <a href="https://aws.amazon.com/blogs/compute/operating-lambda-performance-optimization-part-1/">100-1000ms</a> that didn't have great workarounds until later. And perhaps the loudest problem of all was unexpectedly huge bills when Lambdas got DoS'd or <a href="https://news.ycombinator.com/item?id=31907374">invoked by infinite loops</a>.</p>
<p>One notable achievement was that <a href="https://adhoc.team/2022/01/18/covidtests-usps-aws-managed-services/">Lambda was likely used for the successful launch of covidtests.gov in 2022</a>. This is in stark contrast to the <a href="https://en.wikipedia.org/wiki/HealthCare.gov">disastrous launch of healthcare.gov in 2013</a> which used traditional deployment methods and couldn't withstand more than 1,100 of the 250,000 concurrent users trying to access it.</p>
<p>Overall, I think of Lambda as the beta release of "the next platform". It has proven some core ideas like serverless computing are possible, but it has all the rough edges of a first-mover.</p>
<p>Overall, I think of Lambda as the beta release of "the next platform". It has proven some core ideas like serverless computing are possible, but it has all the rough edges of an early mover.</p>
<h3 id="v8-isolates">V8 Isolates</h3>
<p>I've never been a big fan of Cloudflare's market dominance, but I must say that the more I read about <a href="https://developers.cloudflare.com/workers/platform/storage-options/">Cloudflare's serverless products</a>, the more I start shaking in my platform engineering boots. I also haven't used any of these products, so perhaps they sound better than they really are. <a href="https://deno.com/deploy">Deno Deploy</a> is also built on V8 isolates and serves as a compelling competitor to Cloudflare, but I know even less about their offerings.</p>
<p>The core product is Cloudflare Workers, which is their version of AWS Lambda. The key difference is they use <a href="https://developers.cloudflare.com/workers/reference/how-workers-works/#isolates">V8 isolates</a> instead of Firecracker VMs, which are essentially using the same tech that isolates Chrome tabs from each other (apparently Chrome uses separate processes <em>and</em> isolates, but Cloudflare runs all the isolates in the same process, which <a href="https://blog.cloudflare.com/mitigating-spectre-and-other-security-threats-the-cloudflare-workers-security-model/">they claim is still safe</a>). This eliminates the cold-start problem and drastically reduces the overhead for running each isolate. V8 isolates primarily support JavaScript (including some JS web frameworks), but they also support Rust and Python <a href="https://developers.cloudflare.com/workers/languages/python/how-python-workers-work/">by compiling to WebAssembly</a>.</p>
Expand Down
4 changes: 2 additions & 2 deletions blog/atom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
&lt;p&gt;With these lists in my mind, I&#x27;ve been exploring the landscape of possible contenders for &quot;the next platform&quot;. Like all kinds of future-prediction, this is very subjective and very likely to age poorly, so let&#x27;s forge ahead regardless.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;paleoops&quot;&gt;PaleoOps&lt;&#x2F;h3&gt;
&lt;p&gt;This is the idea of running everything on one or two big bare-metal servers, usually from budget providers like Hetzner. Not sure if there&#x27;s a name for this, so I&#x27;m calling it PaleoOps. Similar to how the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Paleolithic_diet&quot;&gt;paleo diet&lt;&#x2F;a&gt; developed in response to the rapid expansion of processed foods and their health risks, there&#x27;s some good and bad reasoning used to justify PaleoOps. Applications got super complex super quick and a whole generation of developers got burned, leading to embracing the simpler infrastructure of the past, which &lt;a href=&quot;http:&#x2F;&#x2F;rachelbythebay.com&#x2F;w&#x2F;2022&#x2F;01&#x2F;27&#x2F;scale&#x2F;&quot;&gt;has been successful&lt;&#x2F;a&gt; in some cases.&lt;&#x2F;p&gt;
&lt;p&gt;But sometimes uncritically embracing older things results in &lt;a href=&quot;https:&#x2F;&#x2F;www.macchaffee.com&#x2F;blog&#x2F;2024&#x2F;you-have-built-a-kubernetes&#x2F;&quot;&gt;suffering from the same problems&lt;&#x2F;a&gt; that lead to the rise of the modern replacement in the first place. Notable issues include the increased exposure to hardware failure, the lack of edge support, the security risks of non-segmented applications, and huge amount of features you&#x27;d have to develop yourself. So I don&#x27;t think this will become &quot;the next platform&quot; but it will always serve a niche where the benefits of a fully automated platform are not needed.&lt;&#x2F;p&gt;
&lt;p&gt;But sometimes uncritically embracing older things results in &lt;a href=&quot;https:&#x2F;&#x2F;www.macchaffee.com&#x2F;blog&#x2F;2024&#x2F;you-have-built-a-kubernetes&#x2F;&quot;&gt;suffering from the same problems&lt;&#x2F;a&gt; that lead to the rise of the modern replacement in the first place. Notable issues include the increased exposure to hardware failure, the lack of edge support, the security risks of non-segmented applications, and the huge amount of features you&#x27;d have to develop yourself. So I don&#x27;t think this will become &quot;the next platform&quot; but it will always serve a niche where the benefits of a fully automated platform are not needed.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;honorable-mention-erlang-darklang&quot;&gt;Honorable mention: Erlang, Darklang&lt;&#x2F;h3&gt;
&lt;p&gt;Language-based distributed programming models have always been fascinating to me. &lt;a href=&quot;https:&#x2F;&#x2F;vereis.com&#x2F;posts&#x2F;disterl_inbox&quot;&gt;Erlang&#x2F;Elixir and other BEAM languages&lt;&#x2F;a&gt; were early movers, apparently powering vast distributed systems at &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Erlang_(programming_language)#History&quot;&gt;Ericsson&lt;&#x2F;a&gt;. There was also a time when I thought &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Akka_(toolkit)&quot;&gt;Akka&lt;&#x2F;a&gt; and actor-based programming would take over the world. Notably those both gloss over the deployment&#x2F;DevOps work, sometimes just relying on Docker or Kubernetes (a la &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bitwalker&#x2F;libcluster&quot;&gt;libcluster&lt;&#x2F;a&gt;). &lt;a href=&quot;https:&#x2F;&#x2F;darklang.com&#x2F;&quot;&gt;Darklang&lt;&#x2F;a&gt; is another group building something like &quot;the next platform&quot;, all from a single programming language.&lt;&#x2F;p&gt;
&lt;p&gt;But all of these are a bit of a moonshot in my opinion since way too much existing code is written in JavaScript, Python, etc. You could compile apps to run on the BEAM, but you can&#x27;t simply add OTP semantics to existing apps.&lt;&#x2F;p&gt;
Expand All @@ -80,7 +80,7 @@
&lt;p&gt;But I believe Lambda was a bit ahead of its time. Web frameworks like Django were quite popular, but you couldn&#x27;t just run Django on Lambda without a tool like &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;zappa&#x2F;Zappa&quot;&gt;Zappa&lt;&#x2F;a&gt; to magically make it &quot;serverless&quot;, which wouldn&#x27;t come out for another 2-3 years. You&#x27;d also want a serverless database like Aurora Serverless which wouldn&#x27;t come out &lt;a href=&quot;https:&#x2F;&#x2F;aws.amazon.com&#x2F;blogs&#x2F;aws&#x2F;aurora-serverless-ga&#x2F;&quot;&gt;until 2018&lt;&#x2F;a&gt; (or &lt;a href=&quot;https:&#x2F;&#x2F;aws.amazon.com&#x2F;blogs&#x2F;aws&#x2F;amazon-aurora-postgresql-limitless-database-is-now-generally-available&#x2F;&quot;&gt;2024 if you use postgres&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;Given this is an AWS service, setting up a simple Lambda requires IAM roles, API gateway, and maybe some KMS config which can get quite complicated. There were also problems with cold-start times of &lt;a href=&quot;https:&#x2F;&#x2F;aws.amazon.com&#x2F;blogs&#x2F;compute&#x2F;operating-lambda-performance-optimization-part-1&#x2F;&quot;&gt;100-1000ms&lt;&#x2F;a&gt; that didn&#x27;t have great workarounds until later. And perhaps the loudest problem of all was unexpectedly huge bills when Lambdas got DoS&#x27;d or &lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=31907374&quot;&gt;invoked by infinite loops&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;One notable achievement was that &lt;a href=&quot;https:&#x2F;&#x2F;adhoc.team&#x2F;2022&#x2F;01&#x2F;18&#x2F;covidtests-usps-aws-managed-services&#x2F;&quot;&gt;Lambda was likely used for the successful launch of covidtests.gov in 2022&lt;&#x2F;a&gt;. This is in stark contrast to the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;HealthCare.gov&quot;&gt;disastrous launch of healthcare.gov in 2013&lt;&#x2F;a&gt; which used traditional deployment methods and couldn&#x27;t withstand more than 1,100 of the 250,000 concurrent users trying to access it.&lt;&#x2F;p&gt;
&lt;p&gt;Overall, I think of Lambda as the beta release of &quot;the next platform&quot;. It has proven some core ideas like serverless computing are possible, but it has all the rough edges of a first-mover.&lt;&#x2F;p&gt;
&lt;p&gt;Overall, I think of Lambda as the beta release of &quot;the next platform&quot;. It has proven some core ideas like serverless computing are possible, but it has all the rough edges of an early mover.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;v8-isolates&quot;&gt;V8 Isolates&lt;&#x2F;h3&gt;
&lt;p&gt;I&#x27;ve never been a big fan of Cloudflare&#x27;s market dominance, but I must say that the more I read about &lt;a href=&quot;https:&#x2F;&#x2F;developers.cloudflare.com&#x2F;workers&#x2F;platform&#x2F;storage-options&#x2F;&quot;&gt;Cloudflare&#x27;s serverless products&lt;&#x2F;a&gt;, the more I start shaking in my platform engineering boots. I also haven&#x27;t used any of these products, so perhaps they sound better than they really are. &lt;a href=&quot;https:&#x2F;&#x2F;deno.com&#x2F;deploy&quot;&gt;Deno Deploy&lt;&#x2F;a&gt; is also built on V8 isolates and serves as a compelling competitor to Cloudflare, but I know even less about their offerings.&lt;&#x2F;p&gt;
&lt;p&gt;The core product is Cloudflare Workers, which is their version of AWS Lambda. The key difference is they use &lt;a href=&quot;https:&#x2F;&#x2F;developers.cloudflare.com&#x2F;workers&#x2F;reference&#x2F;how-workers-works&#x2F;#isolates&quot;&gt;V8 isolates&lt;&#x2F;a&gt; instead of Firecracker VMs, which are essentially using the same tech that isolates Chrome tabs from each other (apparently Chrome uses separate processes &lt;em&gt;and&lt;&#x2F;em&gt; isolates, but Cloudflare runs all the isolates in the same process, which &lt;a href=&quot;https:&#x2F;&#x2F;blog.cloudflare.com&#x2F;mitigating-spectre-and-other-security-threats-the-cloudflare-workers-security-model&#x2F;&quot;&gt;they claim is still safe&lt;&#x2F;a&gt;). This eliminates the cold-start problem and drastically reduces the overhead for running each isolate. V8 isolates primarily support JavaScript (including some JS web frameworks), but they also support Rust and Python &lt;a href=&quot;https:&#x2F;&#x2F;developers.cloudflare.com&#x2F;workers&#x2F;languages&#x2F;python&#x2F;how-python-workers-work&#x2F;&quot;&gt;by compiling to WebAssembly&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
Expand Down
4 changes: 2 additions & 2 deletions blog_zola/content/2024/2024-12-02-the-next-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ With these lists in my mind, I've been exploring the landscape of possible conte

This is the idea of running everything on one or two big bare-metal servers, usually from budget providers like Hetzner. Not sure if there's a name for this, so I'm calling it PaleoOps. Similar to how the [paleo diet](https://en.wikipedia.org/wiki/Paleolithic_diet) developed in response to the rapid expansion of processed foods and their health risks, there's some good and bad reasoning used to justify PaleoOps. Applications got super complex super quick and a whole generation of developers got burned, leading to embracing the simpler infrastructure of the past, which [has been successful](http://rachelbythebay.com/w/2022/01/27/scale/) in some cases.

But sometimes uncritically embracing older things results in [suffering from the same problems](@/2024/2024-11-23-you-have-built-a-kubernetes.md) that lead to the rise of the modern replacement in the first place. Notable issues include the increased exposure to hardware failure, the lack of edge support, the security risks of non-segmented applications, and huge amount of features you'd have to develop yourself. So I don't think this will become "the next platform" but it will always serve a niche where the benefits of a fully automated platform are not needed.
But sometimes uncritically embracing older things results in [suffering from the same problems](@/2024/2024-11-23-you-have-built-a-kubernetes.md) that lead to the rise of the modern replacement in the first place. Notable issues include the increased exposure to hardware failure, the lack of edge support, the security risks of non-segmented applications, and the huge amount of features you'd have to develop yourself. So I don't think this will become "the next platform" but it will always serve a niche where the benefits of a fully automated platform are not needed.

### Honorable mention: Erlang, Darklang

Expand Down Expand Up @@ -84,7 +84,7 @@ Given this is an AWS service, setting up a simple Lambda requires IAM roles, API

One notable achievement was that [Lambda was likely used for the successful launch of covidtests.gov in 2022](https://adhoc.team/2022/01/18/covidtests-usps-aws-managed-services/). This is in stark contrast to the [disastrous launch of healthcare.gov in 2013](https://en.wikipedia.org/wiki/HealthCare.gov) which used traditional deployment methods and couldn't withstand more than 1,100 of the 250,000 concurrent users trying to access it.

Overall, I think of Lambda as the beta release of "the next platform". It has proven some core ideas like serverless computing are possible, but it has all the rough edges of a first-mover.
Overall, I think of Lambda as the beta release of "the next platform". It has proven some core ideas like serverless computing are possible, but it has all the rough edges of an early mover.

### V8 Isolates

Expand Down

0 comments on commit 864bd3f

Please sign in to comment.