Microservices Development on Azure with Java
4.1 (10 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
47 students enrolled

Microservices Development on Azure with Java

Get started with building and deploying containerized Java microservices on Microsoft Azure with Docker and Kubernetes
4.1 (10 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
47 students enrolled
Created by Packt Publishing
Last updated 3/2019
English [Auto-generated]
Current price: $11.99 Original price: $124.99 Discount: 90% off
3 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 2.5 hours on-demand video
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Create an Azure Kubernetes Service cluster along with a continuous delivery pipeline in Visual Studio Team Services, and deploy a Spring Boot application into the cloud as a container
  • Work with Azure CosmosDB to implement a flavor of the Event Sourcing design pattern in Java

  • Leverage the Azure CosmosDB's Change Feed feature to avoid the issue of dual writes in a distributed system

  • Use Azure Blob Storage to securely store files and keep them highly available into the cloud
  • Work with Azure Redis to optimize an application via caching data, from Java
  • Build a basic Spring Boot API application and use Swagger to describe the API contracts and implement asynchronous communication between microservices with Azure Service Bus
  • Perform text sentiment analysis using Azure Cognitive Services and send email messages programmatically using Azure SendGrid
  • Protect and retrieve application secrets with Azure Vault and learn to use Azure SQL Server with Hibernate
  • Get introduced to a number of additional Azure components, such as Azure Active Directory, Azure App Service, Azure API Gateway, Azure Application Gateway, Azure VMs
  • Develop an example microservices-based application for restaurant reservations, and deploy it successfully into the cloud
  • Leverage Azure’s built-in monitoring, troubleshooting and scaling features,to keep services healthy, highly available, and detect problems fast.
Course content
Expand all 28 lectures 02:31:24
+ Course Introduction and Fundamental Concepts
5 lectures 27:17

This video provides an overview of the entire course.

Preview 03:09

In this video, we will look at what Azure is and where it stands in the physical world.

   •  Look at the services offered by Azure

   •  Deploy Java applications in Azure

   •  Analyze Azure for Java developers

Introduction to Azure for Java Software Developers

In this video, we will see how to create Azure subscription with free credits and use that subscription to manage and create cloud resources.

   •  Create Azure subscription

   •  Overview of Azure resources

Creating an Azure Subscription and Managing Cloud Resources

In this video, we will look at the basic characteristics of Docker containers and also understand container orchestration and how Kubernetes is a good option.

   •  Learn about Docker and containers

   •  Understand the advantages of Kubernetes

Docker Containers and Orchestration with Kubernetes

In this video, we will learn about the architecture based on microservices.

   •  Learn in detail about microservices

Microservices 101
+ Cloud Environment Setup
5 lectures 28:51

In this video, we will look in detail about setting up the cloud environment and also understand key components and interactions.

   •  Explore cloud environment setup in depth

Preview 03:20

In this video, we will provision two important resources of cloud environment setup.

   •  Create an Azure Kubernetes Service cluster and deploy on Azure

   •  Learn about Container Registry and deploy on Azure

Provision an Azure Kubernetes Service (AKS) Cluster and an Azure Container Regis

In this video, we will create a new Spring Boot application with Docker file that will allow us to containerize the application. We will use this application to create a Git repository and upload codes to the Git repository.

   •  Create a Spring Boot demo application

   •  Create a Docker file

   •  Use the Spring Boot application for creation of a Git repository and uploading codes

Create an Azure DevOps Git Repo and Push a Containerized Spring Boot App

We are going to build a continuous integration pipeline and also configure gate merges of pull requests.

   •  Create a Build Pipeline

   •  Add task Command Line to the Build Pipeline

   •  Add task Docker to the Build Pipeline

Set Up a Continuous Integration Pipeline with Azure DevOps

In this video, we configure a Kubernetes deployment and set up a release pipeline to apply the deployment.

   •  Configure Kubernetes

Set Up a Continuous Delivery Pipeline with Azure DevOps
+ An Event-Sourced Reservations API with Cosmos DB
6 lectures 34:35

In this video we are going to discuss the design and supported operations of the Reservation API, we will also see how flavors of Event Sourcing Pattern will help us manage our application state

   •  Look in detail about Reservations API supported operations

Preview 05:50

In this video we will create a Cosmos DB collection to use as a data store for Reservation events and also for creating Reservation API project skeleton.

   •  Create Azure Cosmos DB Account

   •  Click Java tab in Quick start section to copy the primary connection string value

   •  Click on Data Explorer section to setup the database within the instance

A Cosmos DB Collection and the Reservations API Skeleton

In this video, we are going to define the API contract for seat availability endpoint, and we’ll also create a RawEvents repository type to communicate with Cosmos DB and retrieve documents of RawEvent type.

   •  Implement ReservationsController.java

   •  Implement DateId.java

   •  Connect the Application with the Cosmos DB

Event Sourcing Implementation – Part 1

In this video, we will create a Reservation Event Store type which provides high-level abstraction for the application. We are also going to define DateAggregate type which help us keep track of our current state.

   •  Implement ReservationEventStore.java

   •  Look in detail about RawEvent.java

   •  Implement Reservation.java

Event Sourcing Implementation – Part 2

We will define domain commands and implement Reservation Command Processor, the component which holds the business logic for reservation.

   •  Implement ReservationCommandType.java

   •  Implement ReservationCommandData.java

   •  Implement CreateReservationData.java

Event Sourcing Implementation – Part 3

In this video, we are going to execute our system and demonstrate everything work as planned.

   •  Use Postman tool to work with API

   •  Create reservation for two people

Event Sourcing Implementation, Demo, and Next Steps
+ A Reviews System with Blob Storage, Service Bus, Cognitive Services, and SendGri
4 lectures 22:04

In this video, we are going to look into system design and supported operations of a service that accepts and analyze user reviews.

   •  Analyze system design

Overview of the Reviews System

In this video, we are going to see two cloud resources types Blob Storage and Azure Service Bus Queue which we are going to use for the reviews API implementation.

   •  Understand Blob Storage in detail

   •  Learn about Azure Service bus in depth

Cloud Resources for the API

Use cloud resources such as Azure Cognitive Services and SendGrid for Review worker implementation.

   •  Understand Azure cognitive services in detail with a practical demo

   •  Learn in detail about SendGrid

Cloud Resources for the Worker

In this video, we are going to walk through the code for both the API and the worker projects.

   •  Look into Review API spring Boot project

Putting It All Together
+ A Restaurant Menu API with Redis
3 lectures 11:25

In this video, we will look at the design of the Menu API system and what operations are supported.

   •  Analyze the design of the Menu API system

Overview of the Menu API

In this video, we will see cloud resources such as Azure Redis Cache, and also learn how query optimization is done with Azure Redis Cache.

   •  Learn how to work with Azure Redis Cache

   •  Create a Redis Cache and apply it in the Azure portal

Cloud Resources for the API

In this video, we will look at the code for the Menu API project and Azure resource in the solution.

   •  Build a Menu API Spring project

The System in Action
+ Operational Tips and Next Steps
5 lectures 27:12

In this video, we are going to see a simple approach for allowing applications running on Kubernetes to access secrets.

   •  Use Reservation API project

   •  Deploy Reservation API project

Using Application Secrets on Kubernetes

In this video, we are going to discuss important points for designing cloud application so it becomes resilient to failure.

   •  Understand the CAP theorem

   •  Learn in detail about Service-Level Agreements (SLA)

Designing Resilient Cloud Applications

In this video, we will understand about Azure monitor which is a unified solution to help us maximize the performance of our application.

   •  Learn in detail about Azure Monitor

   •  Understand in detail about Azure advisor

Monitoring, Troubleshooting, and Optimizing

In this video, we are going to learn about scaling an application.

   •  Learn in detail about scaling application

   •  Understand scaling application in AKS

Introduction to Scaling

In this video, we are going to explore various Azure resources.

   •  Look at various Azure services

Additional Resources to Explore
  • This course will get you started with everything you need to develop, deploy, and troubleshoot containerized Java microservices on Azure with Kubernetes, without assuming any prior knowledge about the Azure platform.

The microservices architecture is gaining popularity as a significant approach for distributed mission-critical applications, and Azure offers a world-class platform which is ideal for building, deploying, and operating such applications.

This course will jumpstart your journey to creating state-of-the-art Java microservices with Docker and Kubernetes on Azure; you'll advantage with the building blocks provided by a world-class cloud to boost your productivity and achieve robustness, resiliency, and high availability.

This course also comes packed with a number of recommendations for additional Azure offerings you may want to consider for your projects, as well as plenty of resources to help you delve more deeply into the world of microservices and other types of cloud-native applications in general.

About the Author

Tasos Piotopoulos (Anastasios) is a professional software engineer and aspiring technical architect with over 12 years' industry experience and an Honors Master's degree in Software Engineering and Ubiquitous Computing from University College Dublin.

Over the years, Tasos has been involved in the construction of everything from simple tooling to enterprise cloud-native solutions. He started using Azure as an early adopter on 2011, and his first official project on Azure became a case study by Microsoft Greece (plus a bestselling service for his employer).

Tasos blogs at drinkbird, organizes meetups and workshops, speaks at events and academic lectures, and is passionate about solving complex problems through delivering high-quality software.

Who this course is for:
  • Java application developers, web developers and programmers who want to get hands-on and build a microservices-based app quickly.