Equip yourself with the knowledge to build, test, deploy, and scale Node.js web applications in production on Amazon Web Services.
(energetic music) - Oh yeah, very very stoked to be here.
As Mark said, my name's Kevin Whinnery. I work for an outfit called Twilio. We make an API that lets you send and receive text messages, make and receive phone calls and embed chat and video calling and any kind of communication experience that you might imagine into your applications. And I lead a team called developer education. And we build the web site which serves twilio.com/docs. And also manage a couple other internal services as well. And yeah, I'm very very stoked to be here, and one of my favorite parts about the job is when I can get in front of groups of folks and work through some content and facilitate some learning on your part on a subject that I like to talk about a lot, which is Node.js.
Just a quick refresher on the agenda, we are gonna be here for two days, so make sure that you take care of yourself, take breaks whenever you need to 'cause it's definitely gonna be a lot of content and a lot of code over the course of the next couple of days. And today we're gonna start off by getting to know some folks here in the room. And also hopefully online a little bit. Looks like we have a good set of folks, 52 users right now online, which is pretty awesome. And then I, over the course of the next couple of days, will be talking about a Node.js application code base.
And I'll get into some of the theory around that after we talk about the agenda here, but we'll kind of start with the basics of just running a Node.js web server, talk a little bit about some of the build tools and the automation that's built into the project that we'll be looking at. I will take a break after we, and we'll be writing code, a lot of code, in between each of these presentations. Then we'll talk about the data tier of the application and some of the choices we made there. And then we'll cap off the day by actually deploying this application to AWS.
If you haven't already, now would be an excellent time, or at some point in the near future, to sign up for an AWS account. Everything that we'll do today can be done with the free tier of services. So you can sign up for an account, and then we'll actually kind of together go through the steps that you need to accomplish to get this application configured and deployed. And we'll be doing it a little more manually than you might, after you've done this a few times, but configuring the stack manually has some advantages in learning what some of the moving parts are.
And if you haven't checked out Vue before, hopefully it'll kind of whet your appetite for what I think is kind of a nice middle ground between very large frameworks like React which assert themselves into your application in a big way, and something maybe lightweight like jQuery. I think it sits in an interesting middle ground between those two frameworks. We'll talk a little bit about how we create a real time component to this application. And some of the things that we have to work through in our production environment on AWS to make sure that that works correctly.
We'll take a little break and then we'll finish up the afternoon by looking at some of the lesser known, the lesser celebrated parts of web development, which are the things that you have to do after the application is deployed to make sure that it stays running in production, that it can handle a reasonable amount of load, that is it actually solving problems for your users and how to kind of instrument your application to understand how users are interacting with it. So we'll talk a little bit about those production monitoring and load testing tools, and also dig into some web analytics stuff as well.
And then afterwards, I will definitely stick around for as long as folks want to for Q&A on both days. And we should have enough time in between each of the presentations and the brief demos to answer any questions that folks might have as well, and I'm happy to dive as deep as I can into those different areas. The title of this course is Zero to Production with Node.js. And the reason I wanted to approach the workshop like this in a slightly different way, Mark said I actually did do a workshop many years ago which focused on just a sort of basic introduction to Node.js and some of the key modules that you are likely to use in your journey as a Node.js developer.
But that is really kind of the easy part, right. Like, writing code that does stuff is something that we're all reasonably good at. We can download a module, we can dig through the documentation, we can figure out how it works. What is not necessarily super well understood is how you fit all those pieces together in an actual code base that builds an application and solves a problem for a user. The goal of this workshop is to get everybody in here walking away with a starting point.
I imagine that all of us will wanna customize some of the components that we'll find here quite a bit, but I would like us to at least walk away with a starting point that has a productive development environment that you could iterate on quickly as you're building features. And also one that won't fall over under a reasonable amount of load. We're not gonna be creating a deployment infrastructure to run Netflix or Twitter, but we should be able to understand what the performance ceiling is of our application, and we'll hopefully leave today with the tools to understand what that is.
So we'll be walking through a sample project which uses a structure which is very similar to what you might find in a production Node application. Uses a lot of the same techniques and tools. And it is something that you can build on as a template to build your own production Node applications. Over the next two days, you'll notice we're not going too deep on any one module. We'll be talking a little bit about Express, we'll be talking a little bit about Sequelize and Postgres. We're talking a little bit about Grunt and npm-run-script and some of the command line tooling.
Number one, I really appreciate you spending that time here with me and learning about Node.js. And number two, I think the best investment of that time is just getting soak time writing code, there is no substitute for actually digging into code, debugging stuff, referencing documentation, figuring things out, so this workshop experience has been optimized to allow you to write lots of code with support from everybody here in this room, support from me, but really to get you that time in repetition, you will be your own best teacher here in the next two days.
Note: This course was created by Frontend Masters. It was originally released on 12/28/2016. We're pleased to host this training in our library.
- Serving HTTP requests with Express
- NPM scripts and Grunt
- NPM scripts and Elastic Beanstalk
- The database
- Sequelize and PostgreSQL
- Production environment
- Elastic Beanstalk and RDS
- Provisioning an environment
- Sass and Sass alternatives
- Building with Vue.js
- Real-time user interfaces
- Production monitoring
- Google Universal Analytics