Getting started with node.js and Azure Web Apps
Our teams are involved in working with partners and customers in many advanced Azure Services projects. Sometimes one forgets that there’s many, many developers just getting started on their journey. Here are a few tips from real world projects and some resources we find helpful to get you started. All resources have either been created during a real project or built to educate internal and external audiences.
DevOps Fun
Rita is one of the core SMEs on this topic on our team. A while back she created a simple webpage (and GitHub repo) DevOpsFun. It contains a full blown hands-on lab, start to finish. It will guide you from setting up your environment all the way to scaling the ready app supporting product-like workloads. The lab is based on node.js, MongoDB, Jenkins, and is using Git.
The content on GitHub walks you through
- Setting up your environment
- Development
- Provisioning for Dev/Test
- Deployment
- Provisioning a Continuous Integration (CI) server
- CI and CD with Jenkins
- Scaling the app
Go check out its homepage to find the modules, all tools used, and links to GitHub.
Parts Unlimited
My team just released an updated version of two projects based on the story behind The Phoenix Project, the DevOps novel written by one of the leaders in the DevOps space, Gene Kim:
“Parts Unlimited is an example eCommerce website site based for training purposes on the website described in chapters 31-35 of The Phoenix Project, by Gene Kim, Kevin Behr and George Spafford, © 2013 IT Revolution Press LLC, Portland, OR. Resemblance to “Project Unicorn” in the novel is intentional; resemblance to any real company is purely coincidental.”
As the book, both projects are based on the same fictitious company Parts Unlimited. Both projects implement the same solution. The first one, PartsUnlimited, fully takes advantage of the Microsoft stack of tools. The second project, PartsUnlimitedMRP, is using only OSS tooling. The projects contain (of course) all source code and detailed manuals.
Needless to say, the projects are structured in a way to help you understand and implement not only the project but also implement the proper DevOps practices to support team development and maintenance.
When you check out the project on GitHub you will find that they contain way more than just code, some manuals, and a bit of scripts. Since they are intended for self-study of the novice, they contain information about adjacent topics like how to get started on the projects on Linux and macOS, Machine Learning, Authentication and much, much more.
As always, you are invited to try and contribute!
Many of the steps are also highlighted in a Channel 9 video you find here.
VorlonJS – A Journey to DevOps
While this might be a bit of an advanced topic, it is well worth mentioning it here. In this series of blog posts Julien Corioland combines the shared experience of a hackathon earlier this year in Munich. The goal of this event was to figure out and work on the Vorlon.JS project “…to improve the way the team develop, test and release …” applications. The series of blog posts are well worth your time as they share all the challenges the team met, how they overcame them and it teaches about DevOps practices and how Microsoft and non-Microsoft tools can be used to deploy applications to Microsoft Azure.
Wait, there’s more
Above list only highlights three out of a countless and ever-growing number of helpful resources.
Even if you peruse each of the projects in more detail, you will find tons and tons of references to additional opportunities to learn more and find answers to questions and solutions to problems you may face. Below a few additional resources
- DevOps Fundamentals – to get you started with DevOps practices
- Publishing node.js web apps to Azure – Using Visual Studio Team Services
- Node.js app, js test, Travis CI integration – Example web app with deployment scripts to Azure web app
Hope you found this useful and please share your best practices or links to more resources.
This post is based on an internal email exchange between team members Rita, Thiago, Julien, Damien, and others.
Have Fun!
@volkerw