You are viewing content from a past/completed QCon

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:

This presentation is now available to view on InfoQ.com

Watch video with transcript

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

Tracks

  • Architectures You've Always Wondered About

    Hard-earned lessons from the names you know on scalability, reliability, security, and performance.

  • Machine Learning: The Latest Innovations

    AI and machine learning is more approachable than ever. Discover how ML, deep learning, and other modern approaches are being used in practice.

  • Kubernetes and Cloud Architectures

    Learn about cloud native architectural approaches from the leading industry experts who have operated Kubernetes and FaaS at scale, and explore the associated modern DevOps practices.

  • Evolving Java

    JVM futures, JIT directions and improvements to the runtimes stack is the theme of this year’s JVM track.

  • Next Generation Microservices: Building Distributed Systems the Right Way

    Microservice-based applications are everywhere, but well-built distributed systems are not so common. Early adopters of microservices share their insights on how to design systems the right way.

  • Chaos and Resilience: Architecting for Success

    Making systems resilient involves people and tech. Learn about strategies being used, from cognitive systems engineering to chaos engineering.

  • The Future of the API: REST, gRPC, GraphQL and More

    The humble web-based API is evolving. This track provides the what, how, and why of future APIs.

  • Streaming Data Architectures

    Today's systems move huge volumes of data. Hear how the innovators in this space are designing systems and leveraging modern data stream processing platforms.

  • Modern Compilation Targets

    Learn about the innovation happening in the compilation target space. WebAssembly is only the tip of the iceberg.

  • Leaving the Ivory Tower: Modern CS Research in the Real World

    Thoughts pushing software forward, including consensus, CRDT's, formal methods & probabilistic programming.

  • Bare Knuckle Performance

    Crushing latency and getting the most out of your hardware.

  • Leading Distributed Teams

    Remote and distributed working are increasing in popularity, but many organisations underestimate the leadership challenges. Learn from those who are doing this effectively.

  • Full Cycle Developers: Lead the People, Manage the Process & Systems

    "Full cycle developers" is not just another catch phrase; it's about engineers taking ownership and delivering value, and doing so with the support of their entire organisation. Learn more from the pioneers.

  • JavaScript: Pushing the Client Beyond the Browser

    JavaScript is not just the language of the web. Join this track to learn how the innovators are pushing the boundaries of this classic language and ecosystem.

  • When Things Go Wrong: GDPR, Ethics, & Politics

    Privacy, confidentiality, safety and security: learning from the frontlines, from both good and bad experiences

  • Growing Unicorns in the EU: Building, Leading and Scaling Financial Tech Start Ups

    Learn how EU FinTech innovators have designed, built, and led both their technologies and organisations.

  • Building High Performing Teams

    To have a high-performing team, everybody on it has to feel and act like an owner. Learn about cultivating culture, creating psychological safety, sharing the vision effectively, and more

  • Scaling Security, from Device to Cloud

    Implementing effective security is vitally important, regardless of where you are deploying software applications.