You are viewing content from a past/completed QCon -

SESSION + Live Q&A

Bringing JAMStack to the Enterprise

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.


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

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.

What is JAMStack?

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.

Are you going to talk about this new architecture?

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.

What do you think people will leave the talk with?

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...

Read more
Find Jamund Ferguson at:

Location

Whittle, 3rd flr.

Track

JavaScript: Powering the Modern Web

Topics

JavaScriptInterview Available

Share

From the same track

SESSION + Live Q&A Node.js

A New Way to Profile Node.js

It’s been weeks and the organization you work for seems to be slowly turning against you. At least that’s what it feels like. User experience is poor because of slow API’s, sales are being missed, performance-linked SEO heuristics are causing a drop in page ranking. Mobile users have all...

Matteo Collina

Principal Architect @NearForm

SESSION + Live Q&A React

State Management for React Using Context and Hooks

Redux is one of the most popular approchaes to state management in React applications. However, it comes with a decent amount of boilerplate plus it often ends up being used everywhere, no matter the context or app size. This talk explores a barebones alternative approach to state management that...

Vlad Zelinschi

CTO @strongbytesro & Google Developer Expert on Web Technologies

SESSION + Live Q&A JavaScript

Programming the Cloud with TypeScript

JavaScript has been applied to a wide variety of domains over the last few decades - from web to server and IoT to serverless.  One domain that has resisted this trend is Cloud Infrastructure, which is still largely managed by copy/pasting YAML files or pointing and clicking in web...

Luke Hoban

CTO @PulumiCorp & TypeScript Co-Creator

SESSION + Live Q&A Serverless

Build Node.js APIs using Serverless

Serverless lets you focus on coding and testing instead of provisioning infrastructure, configuring web servers, debugging your configuration, managing security settings, and all the drudgery normally associated with getting an app up and running. In this session with, you’ll discover how to...

Simona Cotin

Cloud Developer Advocate @Microsoft

View full Schedule