4.45 out of 5
4.45
479 reviews on Udemy

Spring Framework DevOps on AWS

Deploy Spring Boot Applications to the Cloud on AWS
Instructor:
John Thompson
5,583 students enrolled
English [Auto-generated]
Deploy Spring Applications to multiple environments
Manage advanced configuration options for Spring
Create a server on Amazon AWS
Launch a Docker container
Configure Jenkins builds
Configure Artifactory for use
Deploy Maven build artifacts to Artifactory
Use MySQL with Spring Boot

The Spring Framework is very popular with large companies. In fact, Spring is the most popular Java framework.

Did you know, a core reason for Spring’s popularity with companies is it’s IoC engine?

A typical company will deploy their Spring Framework application in at least 3 different environments. Having a development, test, and production environment is common.

The problem developers face is each environment is different. 

  • Different server names. 
  • Different databases. 
  • Different user accounts. 
  • Different passwords.

In this course you will learn how to use Spring’s IoC container to deploy your application in many different environments. Through Inversion of Control, your Spring application can wire itself for the needs of each environment.

You’ll start the course learning advanced configuration options of the Spring Framework. 

Next, the course takes a DevOps approach. You’ll see how to deploy Spring Framework applications in different environments.

In development, it’s common to use a H2 in memory database. Of course, this database is only temporary. Not something you’d want to use for your production deployment.

Do you want to see how to flip a switch and use MySQL? Flip another switch and your app can be using a RDS database managed Amazon. You can do this with no code changes.

The course also looks as best practices used in enterprise software development. 

Using a continuous integration server is a best practice. Jenkins is the most popular CI server. You will learn how to install Jenkins on a Linux server. A server you provisioned in the AWS cloud.

Once you have Jenkins running on your AWS server a best practice is to setup Jenkins on a friendly URL.

Jenkins is a Java application running on port 8080. You don’t want to be typing some IP colon 8080 into your browser to reach Jenkins.

Want to know how you can use Apache and Route 53 to reach your Jenkins server your own URL? To a domain you own?

Docker is an exciting technology. You will see how to leverage Docker to host your own Artifactory Maven repository. We’ll use Artifactory to manage build artifacts produced by Jenkins.

Just for fun, we will also use Docker to setup a MySQL database server. We’ll do this by provisioning a Linux server on AWS, installing Docker on it, and then deploy MySQL in a Docker container.

We’ll also provision an application server we can use to run our Spring Boot application. You will pull the Spring Boot jar right from Artifactory and tell it to connect to database server.

Amazon AWS also has managed MySQL databases. This is their RDS service. You will see how to provision your own RDS database. We’ll then reconfigure our Spring Boot application to connect to the RDS database.

There is a lot of fun and challenging content in this course. You will learn:

  • How to manage Spring properties.
  • Why you want to encrypt sensitive properties, such as passwords.
  • How Spring Profiles are used.
  • Using YAML to configure Spring.
  • To provision servers on Amazon AWS.
  • Logging into your servers via SSH. 
  • How to use the yum package manager to install software on Linux.
  • How to configure your own Linux service.
  • How DNS works, and how to use Route 53 to setup your own host names.
  • How to use webhooks in GitHub to trigger your builds immediately.
  • Why you don’t want to use root accounts for your application.
  • Configure Jenkins to perform a Maven build.
  • Use Jenkins to deploy build artifacts to Artifactory.

This is a very hands on course. To get the most out of this course, you will need an account on AWS. You should be able to use the AWS free tier to complete the course assignments.

To get the most out of this course, you will  need a domain name. You will need to have control of the domain. Without this, you will not be able to configure subdomains in Route 53.

The course does leverage AWS for their cloud services. The skills you learn on the AWS platform will transfer to most corporate environments. AWS is used to mimic the typical company.

There is a lot of exciting content in this course! 

DevOps is not an easy area. Many different technologies are involved. 

In this course, you will see how easy it is to manage Spring Framework applications in complex corporate environments.

Introduction

1
Course Introduction
2
Instructor Introduction
3
Checking out from GitHub
4
Getting Help with Spring
5
Is your IDE Free Like A Puppy?
6
Free 90 Day IntelliJ Trial!
7
Project Overview
8
Course Requirements

Externalizing Properties

1
Section Overview
2
Property Source
3
Spring Environment Properties
4
Using Multiple Properties Files
5
Spring Boot Application Properties
6
Property Hierarchy

Using Spring Profiles

1
Section Overview
2
Using Spring Profiles
3
Setting the Active Profile for Testing
4
Setting the Active Profile at Runtime
5
Spring Boot Profile Properties
6
Spring Boot Profile Properties Code Assignment
7
Spring Boot Profile Properties Code Assignment Review
8
Spring Boot Profiles with YAML
9
Spring Profiles Conclusion

Using a MySQL Datasource

1
Section Overview
2
MySQL Maven Dependencies
3
MySQL Configuration
4
MySQL Data Source Configuration
5
Update to Bootstrap Loader
6
MySQL Service Account
7
Encrypting Properties
8
MySQL Code Assignment
9
MySQL Code Assignmnet Review

Continuous Integration

1
Section Overview
2
Introduction to AWS
3
Which Linux Distribution?
4
Provisioning a Server on AWS
5
Installing Jenkins
6
How DNS Works
7
Using Route 53
8
Setting up Apache with Jenkins
9
Why not Map Jenkins to Port 80?
10
Creating SSH Keys
11
Forking GitHub Projects
12
Configuring GitHub with SSH Keys
13
Installing Git on Jenkins Server
14
Configuring Jenkins Credentials
15
Configuring Maven on Jenkins
16
Configuring Jenkins Maven Build
17
Triggering a Jenkins Build
18
GitHub WebHooks
19
Conclusion

Setting up Artifactory

1
Introduction to Artifactory
2
Assignment: Create Artifactory Server
3
What is Docker?
4
Docker Editions
5
Installing Docker
6
Running Artifactory Image
7
Assignment - Configure Virutal Host for Artifiactory
8
Assignment Review
9
Resolving Artifacts through Artifactory
10
Deploying to Artifactory
11
Configuring Jenkins
12
Conclusion

Virtualized Cloud Deployment

1
Introduction
2
Assignment - Provision Database Server
3
Configuring the Production Data Source
4
Production Data Source Security
5
Assignment - Provision Application Server
6
installing Java
7
Installing Spring Boot Application
8
Running a Spring Boot Applicaiton
9
Assignment Encypt DB Password
10
Deploying Spring Boot as a Linux Service
11
Conclusion

Amazon RDS

1
Introduction
2
Provision MySQL RDS Database on AWS
3
Create RDS Profile for Spring Boot
4
Assignment Deploy Spring Boot Application using RDS Database
5
Conclusion

Bonus

1
Bonus Lecture: Course Bonuses!
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5
4.5 out of 5
479 Ratings

Detailed Rating

Stars 5
251
Stars 4
160
Stars 3
50
Stars 2
10
Stars 1
8
16f08e1078b8cb92efb89f34909c2431
30-Day Money-Back Guarantee

Includes

7 hours on-demand video
2 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion