Presentation: Bringing JAMStack to the Enterprise

Track: JavaScript: Powering the Modern Web

Location: Whittle, 3rd flr.

Duration: 1:40pm - 2:30pm

Day of week: Wednesday

Share this on:

What You’ll Learn

  1. Find out what is JAMStack, what are the benefits of using it.
  2. Learn about static web apps, the benefits in performance, security, deployment, etc.
  3. Hear about some of the challenges PayPal has faced deploying static apps on their own infrastructure

Abstract

As application development trends toward smarter devices our server strategy is beginning to see a shift as well. Application servers written in node.js are beginning to thin out as more and more logic lives directly on content delivery networks and individual devices.
 
This past year my team at PayPal began looking at how we could radically improve our developer experience and deliver high quality applications faster. We landed on the JAMStack model, which stands for "JavaScript, APIs and Markup". This approach emphasizes web apps powered by static assets living on content delivery networks.
 
This talk will walk you through some of the challenges we faced with our node.js application servers and why we think the JAMStack approach will improve performance for both our apps and our developers. We’ll include discussions around performance, security, development experience and deploy speed. This talk will be relevant for those curious about graphql, gatsbyJS and JAMStack generally as well as those interested in speeding up the development and deploy process for their teams.

Question: 

Tell me a bit about what you worked on last year.

Answer: 

After QCon last year I started this consumer web platform team at PayPal, I had convinced my boss and a couple of the higher ups that we needed a full on front-end infrastructure team. And we started playing around with how we can get apps to be more performant, more stable, better developer experience, easier to deploy, all that stuff. For at least the last six months I've been working on this web platform team trying to improve in those areas. We've played around with a lot of different ideas and in the talk this year I'm going to share where we landed as what we think will be a great new architecture.

Question: 

What is JAMStack?

Answer: 

It's not a term I created, it's a term in the front-end development world where it stands for "JavaScript API and markup." The basic idea is you've got your JavaScript and your pre-rendered HTML markup living on a CDN somewhere, and when a request comes in instead of hitting an application server like a Node server or a Go server it just serves the HTML directly. Because of the CDN approach, ideally this experience is super fast and then you use APIs, the A in JAMStack, to get the rest of it. Internally at PayPal, we don't use the term JAMStack because it's a pretty confusing term. We call these “static apps”, because they are fully featured web applications, but they're powered primarily by static assets.

And as the pages become more dynamic, you can still pre-render the paes. Let's say 75-80% of the page is static for everyone. You get that all primed up. User pulls that in, that will load in maybe 300 milliseconds, super fast, and then if there's additional dynamic content, or customized content you pull that in via an API. So it's a very different architecture than what we've been doing for a while. It's returning back to the early days of the web where you just shove some stuff up on an FTP server and users hit those files directly. We go through cycles in web development. Everything has to be server rendered! Everything as to be static! And we go back again.

Question: 

Are you going to talk about this new architecture?

Answer: 

What I'm hoping to do is showcase what is this JAMStack thing, what are these static apps. And I think they are gaining a lot of momentum. There are some interesting tools out there. The Gatsby framework. A lot of people are using it in the front end world to build these apps. What I want to showcase is, one, how these tools really improve developer experience, and, two, how they can approach this architecture which can solve a lot of the problems that people might be facing with Node apps. We're facing a ton of application server crashes, tons of crashes. Every app seems to be crashing here and there too many times. And we're dealing with this slow deployments. We have a ton of traffic obviously at PayPal. The app I worked on most most recently was the Send Money application to send money with PayPal. We had something like 400 Node servers, so deploying across that, across many different data centers and making sure we have stability, our deploy process is like 3-4 hours to update the code. What the JAMStack approach allows us to do is just deploy your app to the CDN or to a cloud store. Instead of a three hour deploy, I can deploy my app in a minute. Some of the problems that we're dealing with that have been big challenges for us to solve, with this new architecture are totally resolved. That being said, it's actually really hard to make this work especially since we're not using one of these public CDN providers we're building this stuff internally. There's a lot of interesting challenges when we do. So I'll be talking about why this is a cool approach but also getting into some specifics of why this is a total pain to actually build.

Question: 

What do you think people will leave the talk with?

Answer: 

I want people to leave the talk pretty excited about the approach of static apps and to clear up some confusion about it as well. A lot of people are worried that JAMStack or static apps can only work for a documentation page or a blog. I want to demonstrate clearly that you can build fully dynamic sites with this technique. Anything that you could build with a typical server-rendered solution can also be performant and that there really are some huge benefits for developers.

Speaker: Jamund Ferguson

Web Platform Team Lead @PayPal

Jamund Ferguson is a JavaScript architect at PayPal. He loves to look at how following patterns consistently can prevent bugs in applications. He’s previously contributed to the ESLint and StandardJS open-source projects and has as of late become a fan of FlowType and TypeScript. He is married with two kids and lives near Portland, OR.

Find Jamund Ferguson at

Similar Talks

Why Should We Care About Technology Ethics?

Member of ACM Committee on Professional Ethics and One of the Primary Contributors to the ACM Code of Ethics

Catherine Flick

Otherworldly Java: Gateway to the Moon and Beyond

Astrodynamicist and Principal Systems Engineer @NASA and USAF aerospace industry leader a.i. solutions

Diane Davis

Complex Event Flows in Distributed Systems

Co-founder and developer advocate @Camunda

Bernd Ruecker

LinuxKit

Managing Consultant @Atomic Inc.

Avi Deitcher

Tracks

The all-new QCon app!

Available on iOS and Android

The new QCon app helps you make the most of your conference experience. Easily browse and follow the conference schedule, star the talks you want to attend, and keep tabs on your personal itinerary. Download the app now for free on iOS and Android.