
This video will give you an overview about the course.
Before diving into the process of refactoring, the viewer must understand why we are doing this.
Present the downsides of using traditional web apps
Present the downsides of traditional hosting
Explain horizontal and vertical scale
We are using a demo application that will be refactored, modernized, and deployed over to Azure. The viewer needs to get acquainted with this app as much as possible.
Explain what the app does and present it on the browser
Present the tech stack
Explain the code
After presenting the downsides of traditional apps along with the benefits of moving to Azure App Service, it’s time for the viewer to get to know Azure App Service.
Present App Service’s promotional website
Explain the primary benefits
By now, the viewer would want to see some action. It’s time we begin the transition. Before doing anything, we must move the application to a repository and GitHub is the perfect candidate for this.
Create a private GitHub repository
Explain that private repos are only available to premium members
Initialize the local repo and push it to GitHub
Some viewers may not have an Azure account.
Create an account on Azure
Explain subscription and the free credits you gain by singing up for a free trial
Viewers must become familiar with Azure’s dashboard.
Explain the sidebar and all its choices
Pin resources to the dashboard
Many Azure newcomers make the mistake of not creating resource groups for their projects.
Explain the benefits of resource groups
Create a resource group
Pin it to the resource group dashboard
Our project needs a database. In our traditional app, we’ve used MySQL. Azure offers MySQL databases.
Create a MySQL database on Azure
Make sure you add it to the resource group
Go back to the dashboard and watch it on the resource group
Azure databases are open to the outside world by default. We need to secure the database so that it can only be accessed from within Azure.
Install a firewall on the database
Allow access to Azure and a specific IP range only
Now that the database server is secure, we should connect to it and initialize our database.
Connect using MySQL Workbench
Install a new database
Use utf8mb4 encoding
The database server is ready. Time to create an Azure App Service app!
Create a new service
Use the NodeJS default app template
After creating the app service, there will be multiple actions present.
Explain the most important parts of the dashboard
We need to make the the development and deployment process more abstract.
Take constants and move them to Application Settings in Azure
Remove Contants.js
Make sure that the migrations keep working
If we attempt to deploy to production right now, the frontend cannot be served.
Fix the client root
Serve the frontend
Configure port bindings
The frontend must be compiled with AOT in order to be served without having to use the ng compiler.
Move dev dependencies
Compile for production
Update npm scripts in package.json accordingly
In the next video we are going to be using a remote branch to deploy to production. However, some viewers may be unfamiliar with remote branches.
Introduce remote branches in theory
The time has come for our first deployment.
Add an npm start script.
Configure deployment credentials on the App Service dashboard.
Deploy using the terminal. Inspect the result.
The previous deployment had some hidden errors that we need to address and refactor.
Install nodemon
Refactor migrations
Redeploy using a git remote branch
Deployments with git remote branches are fine. But we can’t have CDI with them. We need automatic deployments.
Go to Azure App Service
Remove Local Repository from Deployment Configurations
Add GitHub to Deployment Configurations
Visual Studio Team Services provide an alternative to GitHub for CD.
Create an Azure DevOps account
Remove GitHub from Deployment Configuration
Add VSTS for deployment
Right now, our changes are deployed directly to the master branch and therefore to production. We need to be able to have some tests on our web app before we make it publicly available.
Create a staging slot
Remove deployment configuration from the production slot
Add GitHub as the deployment configuration in the staging slot
We need to show the reason we did all these things. We will fix a bug, deploy it, test it, and then move it over to production.
Create a local branch. Fix the delete issue and merge it with the master.
Make the necessary refactorings for migrations and sequelize to work on staging.
Check staging and swap slots.
We have a cron job that we need to convert into a WebJob supported by Azure.
Make the archiver a module
Create a manual operations controller and a method for archiving old to-dos
Create a WebJob project, call the endpoint, and push to Azure
We need a quick way to learn about failed requests and internal server errors.
Go to the Azure App Service dashboard
Pin the Error 5xx section to the dashboard
More metrics are available in Azure than just failed requests and 500s.
Briefly explain the rest of the metrics
Azure’s metrics can be enhanced by Application Insights.
Explain what the instrumentation key is
Install the applicationinsights library and initialize it
Track errors and specific events
In the previous video, we set up Application Insights. In this one, we need to use the Application Insights dashboard to retrieve as much info as possible.
Demo of the AI dashboard
Inspect events
We need to know when our app is not performing to its optimal level.
Go to Application Insights
Create a new alert
Create an "Email" action group
This video gives an overview of the entire course.
In this video, you will look at the application you will use throughout the course.
Get a high-level description of system requirements to run the labs
Get a high-level description of what the application is all about
See the application in action
This video describes the application code, making students familiar with Node.js development language.
Take a look inside the application files folder structure
Describe the code being used
Bring all the bits and bytes together and run the application
This video details the characteristics and usage for MongoDB database solutions.
Understand what MongoDB is
Get an overview of MEAN Stack
Run MongoDB in the cloud
This video describes a high-level overview of app modernization, digital transformation and “cloud-native” applications.
Understand what a cloud-native application is
Understand why we run Node.js in a public cloud environment
Learn the principles of architecting a cloud-native application
In this video, you will learn how to monitor and troubleshoot the good working of your Node.js application from the dev station.
Test and validate the Node.js application on your local machine
Debug Node.js using Visual Studio Code
Monitor Node.js using Visual Studio Code
In this video, you will learn the concepts of cloud-native applications, and digital transformation in-depth. You will also learn about microservices and the possible transitioning model for Node.js applications.
Understand what digital transformation is
Learn the journey to the cloud, app migration and modernization
Rebuild/rearchitect/rehome your applications
In this video, you will learn the key characteristics of cloud-native applications.
Understand what cloud-native applications are
Understand what microservices are
Learn the transitioning model for Node.js applications
This video is all about convincing you to start migrating or deploying Node.js applications on Azure.
Learn the key reasons for running Node.js on Azure
Learn what Azure services are available to Node.js developers
Look at the Microsoft reference material for Node.js solutions on Azure
This video details the concepts of the development practice CI/CD and more specifically for Node.js applications.
Get an introduction to the DevOps concepts
Run a Node.js CI/CD pipeline
Learn about Azure Devops for Node.js developers
In this video, we deep-dive on deploying and running Azure Cosmos DB.
Understand what Cosmos DB is
Learn how to deploy Cosmos DB on Azure
Monitor Cosmos DB on Azure
In this video, we deep-dive on deploying and running Azure Web Applications.
Learn about Azure App Services and Web Applications
Deploy Azure Web Applications
Monitor Azure Web Applications
This video is all about using Docker as a container of applications, and how it integrates with Azure.
Containerize your Node.js application
Use Azure Container Registry
Run Node.js applications inside Azure Container Instance
In this video, you will learn about Kubernetes as a container orchestrator.
Get an overview of Kubernetes on Azure
Deploy Azure Kubernetes Services (AKS)
Run Node.js applications inside Azure Kubernetes Services
This video details the concepts and Azure capabilities to run an Azure Cosmos DB in a high-available setup
Get an overview of the SLAs for Azure Cosmos DB
Configure high availability for your Azure Cosmos DB
Migrate from MongoDB on-prem to Azure Cosmos DB with almost no downtime
This video highlights and discusses how to run Azure web applications in a high-availability setup.
Learn about the SLA for Azure web applications
Understand the services and capabilities of Azure web applications to allow for high-availability
Learn about Azure Traffic Manager
This video contains a description of the “Azure Reference Architectures”, a guidance from the AzureCAT product team.
Expand the Azure landscape outside of the core Node.js building blocks
Architect high available Azure workloads
Get an introduction to Azure Reference Architectures: reference material online
In this video, students learn about using Azure App Insights as the go-to monitoring tool for applications on Azure.
Learn what Azure App Insights are
Deploy Azure App Insights
Integrate Azure App Insights into your Node.js application
In this video you will understand and experience the capabilities of Azure Kubernetes Dashboard.
Learn about Azure Monitor for AKS
Get an overview of the AKS Dashboard
Deploy and use AKS Dashboard
This video is a summary of the entire course.
Have you been worrying that your existing web applications aren't good enough to take advantage of the elasticity of the cloud? Or that refactoring them is going to be very difficult? Azure App Service comes to your rescue! Azure App Service is one of the easiest ways to deploy apps to the Cloud. It provides powerful capabilities such as built-in development operations, continuous integration with Visual Studio Online and GitHub, staging and production support, and automatic patching for Azure developers to quickly create web applications. It also enables integration with on-premises or other cloud systems.
This comprehensive 2-in-1 course is concise and appropriate to use Azure building blocks to deploy your Node .js microservice-based apps to the cloud. Initially, you’ll build a sample Node .js application for Azure Cloud. You’ll also understand Azure services such as Azure Web Apps, Azure Container Services, and Cosmos DB and highlight specifics used by Node .js applications. Moving further, you’ll explore the flexibility of Azure App Service to configure and scale up your Node .js Web App. You’ll also perform necessary tests on your refactored Node .js app and deploy it to Azure. Finally, you'll set up and secure a cloud MySQL database for your web app to manage and schedule your server tasks in the background with Azure!
By the end of the course, you’ll build and launch a Node .js application using Web Apps, CosmosDB, and Container Services. Refactor Node .js Web apps and deploy, scale, and monitor them on Azure App Service.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Modernize Node .js Web Apps with Azure App Service, covers refactoring Node .js Web apps and deploy, scale, and monitor them on Azure App Service. You will benefit from effortless CI/CD configurations and automatic deployments to staging and production environments and will have more streamlined testing and Quality Assurance processes. Also, you will easily scale your app to meet business needs (while monitoring it for errors and usage statistics with ease) through Azure's services. By the end of this course, you will be confident enough to modernize an existing Node .js web app and deploy it to Azure via App Service.
The second course, Microservice Development on Azure: Node .js, covers how to build and deploy apps with Node .js and Microsoft Azure. This course shows you step-by-step how to use Azure Building Blocks to deploy your Node.js microservice-based apps to the cloud. You will start with what cloud-native applications are and their benefits. You will also learn about the crucial reasons for developing a Node .js app and deploying it on Azure. Then you will understand different Azure services, highlight Azure building blocks used by Node .js apps, and deploy your Node .js applications on the Azure Cloud platform. Finally, you will monitor and troubleshoot your Node .js applications with Azure App Insights.
By the end of the course, you will have mastered building an application in Node .js that's based on microservices, deploying it on the Azure Cloud platform, and monitoring and troubleshooting it with Azure App Insights..
By the end of the course, you’ll build an application in Node .js based on microservices, deploy on the Azure Cloud platform: Monitor & troubleshoot with Azure App Insights.
About the Authors
Dimitris Loukas is a software engineer currently part of a growing start-up building a revolutionary referral marketing platform with Node .js, Angular, MySQL, Redis, and Docker. He also develops trading software applications using C#, Aurelia, and TypeScript. He is an author at Packt and has developed many video tutorials in C#, .NET Core, and TypeScript. He has worked for two startups in the past, is active in the open-source community, and loves taking up small side-projects. He has developed microservices using C# and Node .js and has also mastered Angular, Aurelia, and Vue .JS. He is an early adopter of .NET Core and is fascinated by modern JavaScript and where the web is going.
Peter De Tender is the CEO and Lead Technical Trainer at PDTIT and 007FFF Learning, a Microsoft Cloud Platform Architect, an extremely passionate trainer and speaker, Azure MVP (2013-2018), Microsoft Certified Trainer (MCT), and a technical writer. After starting his career in 1996, Peter has never looked back from Microsoft infrastructure technologies. At present, he’s an expert on Azure and Azure Stack, coaching global Microsoft Partners, larger Microsoft customers, and Microsoft FTE teams all over the World so they can achieve more with Azure. While this got him a position as FTE for Microsoft Corp in the global Microsoft AzureCAT GSI (Azure Engineering) team early in 2016, his passion for speaking and presenting made him decide to return to his own company after about a year, coming back with an even stronger focus on providing readiness workshops and architect consulting on the Azure platform. He recently published Learning Operations Management Suite with Apress , co-authored the Microsoft Official Curriculum for the 70-535 Architecting Azure Solutions, and is currently writing Azure Governance and Security for Apress, as well as authoring a series of advanced Azure training videos for Packt Publishing. Get in contact with Peter through social media, preferably Twitter @pdtit or @007FFFLearning.