This course has been updated! We now recommend you take the AWS for Front-End Engineers (ft. S3, Cloudfront & Route 53) course.
Transcript from the "Introduction" Lesson
>> Kevin Whinnery: Well yeah, very, very stoked to be here. As Mark said, my name is 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.
[00:00:56] And I lead a team called Developer Education, and we build the the website 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. One of my favorite parts about the about the job is when I can get in front of groups of folks.
[00:01:17] 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.
[00:01:38] Cuz it's definitely gonna be a lot of content and a lot of code for 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.
[00:01:57] And then, over the course of the next couple of days, we'll 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.
[00:02:15] 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. We'll 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.
[00:02:35] And then we'll cap off the day by actually deploying this application to AWS. So if you haven't already, now would be an excellent time, or at some in the near future, to sign up for an AWS account. Everything that we'll today can be done with the free tier of services.
[00:02:53] 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 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 kind of what some of the moving parts are.
[00:03:37] And then we'll talk about how we actually build the front end with Vue.js. Our sample application uses Vue, it's not quite the behemoth of, say React, or Angular, or one of those. But the toolchain and the general techniques of building an application like this will be similar across all of those.
[00:03:59] And if you haven't checked out Vue before, hopefully that kind of whet your appetite for what I think is a kind of nice middle ground between very large frameworks like React. Which kind of assert themselves into your application in a big way. And something maybe lightweight like jQuery.
[00:04:16] I think it kind of 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.
[00:04:34] We'll take a little break, and then we'll finish up the [COUGH] 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.
[00:04:51] That it can handle a reasonable amount of load, that it is 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.
[00:05:12] And then, afterwards, I will definitely stick around for as long as folks want to for Q and 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.
[00:05:32] So 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.
[00:06:00] But that is really kind of the easy part, right? 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.
[00:06:26] So 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 can iterate on quickly as you're building features.
[00:06:50] And also one that won't fall over under 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.
[00:07:11] 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 is something that you can build on as a template to build your own production Node applications.
[00:07:30] 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. Be talking a little bit about Grunt and npm run scripts and some of the command line tooling.
[00:08:35] But mostly, the most important bit is that bit down on the bottom there, is taking the time to write code. The collective opportunity cost of everybody here in the room, and the 50 people online, is tremendous. There's nothing more valuable in the world than an hour of a developer's time.
[00:08:54] So number one, I really appreciate you spending that time here with me and learning about Node.js. And number two, I think that the best investment of that time is just getting soak time writing code. There's no substitute for actually digging into code, debugging stuff, referencing documentation, figuring things out.
[00:09:16] So this workshop experience has been optimized to allow you to write lots of code with support from everybody here in this room, and support from me. But really to get you that time and repetition. You will be your own best teacher, here in the in the next two days.