DEV415: Microservices with ASP.NET Core and Docker

Become an EPIC Affiliate

To view the class schedule you need to become an Affiliate

  • Largest “Guaranteed To Run” public technical training schedules available
  • Easy to become an Affiliate – no charge or fee
Become an EPIC Affiliate

already an Affiliate?  Login

About this Course

Microservices provide an architectural pattern that allows applications to be written in a more flexible and re-usable manner.  They offer several benefits such as better re-use, simplified maintenance, ability to handle change requests and business rules changes more easily, independent versioning and deployment of services, increased productivity for new and existing team members, the option to scale out one or more application features, integration between multiple technologies, and much more. These benefits and several others will be discussed throughout the course so that students understand the overall goals of Microservices and where they work well in enterprise-scale applications. Challenges associated with Microservices are also discussed since we believe it’s critical to understand not only the pros, but also the cons and associated challenges.

The course starts out with an introduction to Microservices and focuses on key concepts that developers and architects need to know before applying Microservices in their applications. Docker concepts and commands are then covered including the role of images and containers, the need for volumes, and key commands that can be used to work with Docker. From there a discussion of ASP.NET Core MVC and Web API is covered and students will learn how to run ASP.NET Core applications in both Linux and Windows containers. Finally, all of the concepts covered in the course are brought together to show the process of converting a Monolithic application to a Microservices application using ASP.NET Core, RESTful service concepts, and Docker images and containers. This includes actively using Docker commands, writing custom Dockerfiles, creating Docker Compose .yml files to build images and orchestrate containers, running Linux and Windows containers, and more. By the end of the course students will understand the case for Microservices and how they can be implemented.

Audience Profile

This course is designed for .NET developers looking to use Microservices and Docker containers in their ASP.NET Core applications.

At Course Completion

  • Learn what Microservices are and how they can be used
  • Understand benefits and challenges that Microservices present
  • Learn how to move Monolithic applications to Microservices
  • Understand the role of containers and how they can be used with Microservices
  • Learn how to work with Docker Community Edition
  • Use Docker commands to work with images and containers
  • Understand how to create custom Dockerfiles
  • Convert Dockerfiles into custom images
  • Work with and use Docker volumes
  • Create docker-compose.yml files
  • Build multiple images using Docker Compose
  • Orchestrate multiple Docker containers using Docker Compose
  • Work with Docker container registries
  • Learn about ASP.NET Core MVC and Web API features
  • Understand the role of Entity Framework Core
  • Create ASP.NET Core Linux and Windows containers

Outline

The Case for Microservices

  • Overview of Microservices
  • Microservices vs. SOA
  • Pros and Cons of Microservices
  • Client-side vs. Server-side Routing
  • Planning for Microservices
  • Microservices Reference Application

 

Getting Started with Docker

  • Application Deployment
  • Shipping with Containers
  • Getting Started with Docker
  • Benefits to Developers and DevOps
  • Overview of Images and Containers
  • Layered File System
  • Containers vs. Virtual Machines
  • Docker and Microservices

 

Docker Images and Containers

  • Container Registries
  • Working with Images

 

Working with Containers

  • Getting Started with a Custom Dockerfile
  • Building an Image
  • Updating an Image
  • Pushing an Image to a Registry

 

Containers and Volumes

  • Components Overview
  • Source Code and Containers
  • Introduction to Volumes
  • Creating a Volume
  • Inspecting Volumes
  • Defining a Volume in a Dockerfile
  • Local Source Code and Containers

 

Orchestrating Containers with Docker Compose

  • Container Orchestration
  • Getting Started with Docker Compose
  • The docker-compose.yml File
  • Docker Compose Commands

 

Getting Started with ASP.NET Core

  • Getting Started with ASP.NET Core
  • Configuration and Middleware Pipeline
  • Controllers and Views
  • RESTful Services with Web API
  • Data Access with Entity Framework Core
  • OS X Cross Platform Development

 

ASP.NET Core and Docker

  • Docker and ASP.NET Core
  • Creating ASP.NET Core Linux Images
  • Creating ASP.NET Core Windows Images
  • Visual Studio Docker Features
  • “Containerizing” .NET Framework Applications
  • Running and Debugging Containers

 

Monolithic to Microservices

  • Monolithic Applications Review
  • Microservices Review
  • Communicating with Microservices
  • Converting a Monolithic Feature to a Microservice
  • Creating Dockerfiles and Images
  • Creating the Docker Compose File

 

Microservices Orchestration and Monitoring Tools Overview

  • Docker Swarm
  • Kubernetes
  • Marathon
  • cAdvisor
  • SysDig

Prerequisites

Attendees must have prior experience working with C# to take this class. A minimum of 6-months of hands-on C# experience is recommended to get the most out of the course. Prior experience with ASP.NET Web Forms, MVC or Web API is highly recommended.