Conference:March 6-8, 2017
Workshops:March 9-10, 2017
Presentation: The Hitchhiker's Guide to Serverless Javascript
Location:
- Whittle, 3rd flr.
Duration
Day of week:
- Monday
Level:
- Intermediate
Persona:
- Front-end Developer
Key Takeaways
- Learn about the serverless architecture and the benefits it brings
- Understand that these patterns are being used by many large companies already
- Explore how to structure and build systems based on this technology
Abstract
Tools like AWS’s Lambda, Google's Cloud Functions, and many others are allowing us to create “serverless” applications. At Bustle (a top 30 website in the US) we are taking full advantage of this new infrastructure. APIs, databases, searching, indexing, server side rendered javascript, are all being handled without deploying any of our own servers. And the best part? It costs orders of magnitude less than our old VM based deployments. I’ll walk attendees through our entire serverless stack. I'll talk about the good, the bad, and the ugly. I'll share real numbers from production systems.
The goal is that attendees will leave with concrete knowledge of what going serverless really means and be able to decide if it makes sense for their own infrastructure.
Interview
I wanted to give a talk that was down-to-earth, and to give a talk about the kind of things you won’t learn from Amazon or Google, and instead cover the things we’ve learned.
It means we’re using JavaScript with React and Ember on the client side, as well as JavaScript on the server. Everything is done through AWS Lambda with server-side rendering, doing scheduled mutations through AWS Lambda - so there are literally no servers standing up to handle this, it’s all event-driven request processing.
The biggest advantage to us is that we can deliver more software faster. We had an older system on EC2 using opsworks and chef. It’s not that it didn’t work -- it did, most of the time -- but when autoscaling fails you then have to handle it. The autoscaling is important - we get a lot of bursty traffic - and if we get high loads then Amazon just handles it for us.
On a daily basis, we handle between 10-20 million requests per day on AWS Lambda.
Everything is new. Serverless is a hyped buzzword at the moment; it means that you should be cautiously optimistic but skeptical. You lose the ability to debug through SSH or use DTrace to identify issues. However, the trade-off is that you’re outsourcing the management of that to others. Logging can identify the issues but sometimes feels like a needle in a haystack.
There’s a certain amount out of the box with AWS, but some of the tools aren’t as good as the others, like CloudWatch. There are a few startups which are targeting AWS Lambda and providing additional utilities that can help deal with logs, which helps.
Although AWS has a lot of stuff, it’s possible to migrate if you have serverless functions and the will do to it. I cover some of these issues in my talk and look at mitigations to reduce the concerns regarding vendor lock-in. Some of the services, like DynamoDB, are more difficult to extract yourself from -- but Lambda is an idiomatic JavaScript service that can be hosted in a standalone service in about 20 lines of JavaScript.
I’ve yet to find a lot of compelling business cases why lock-in is a bad idea. Developers might not like the idea in principle, but the business cases aren’t there.
It’s aimed at technical architects and CTO types, who are looking at the big picture architecture.
Similar Talks
Tracks
-
Architecting for Failure
Building fault tolerate systems that are truly resilient
-
Architectures You've Always Wondered about
QCon classic track. You know the names. Hear their lessons and challenges.
-
Modern Distributed Architectures
Migrating, deploying, and realizing modern cloud architecture.
-
Fast & Furious: Ad Serving, Finance, & Performance
Learn some of the tips and technicals of high speed, low latency systems in Ad Serving and Finance
-
Java - Performance, Patterns and Predictions
Skills embracing the evolution of Java (multi-core, cloud, modularity) and reenforcing core platform fundamentals (performance, concurrency, ubiquity).
-
Performance Mythbusting
Performance myths that need busting and the tools & techniques to get there
-
Dark Code: The Legacy/Tech Debt Dilemma
How do you evolve your code and modernize your architecture when you're stuck with part legacy code and technical debt? Lessons from the trenches.
-
Modern Learning Systems
Real world use of the latest machine learning technologies in production environments
-
Practical Cryptography & Blockchains: Beyond the Hype
Looking past the hype of blockchain technologies, alternate title: Weaselfree Cryptography & Blockchain
-
Applied JavaScript - Atomic Applications and APIs
Angular, React, Electron, Node: The hottest trends and techniques in the JavaScript space
-
Containers - State Of The Art
What is the state of the art, what's next, & other interesting questions on containers.
-
Observability Done Right: Automating Insight & Software Telemetry
Tools, practices, and methods to know what your system is doing
-
Data Engineering : Where the Rubber meets the Road in Data Science
Science does not imply engineering. Engineering tools and techniques for Data Scientists
-
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
-
Workhorse Languages, Not Called Java
Workhorse languages not called Java.
-
Security: Lessons Learned From Being Pwned
How Attackers Think. Penetration testing techniques, exploits, toolsets, and skills of software hackers
-
Engineering Culture @{{cool_company}}
Culture, Organization Structure, Modern Agile War Stories
-
Softskills: Essential Skills for Developers
Skills for the developer in the workplace