Distributed configuration with Spring Cloud Config
4.2 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
29 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Distributed configuration with Spring Cloud Config to your Wishlist.

Add to Wishlist

Distributed configuration with Spring Cloud Config

Centralized, distributed external configuration management backed by a GIT repository.
New
4.2 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
29 students enrolled
Created by Mick Knutson
Last updated 8/2017
English
Current price: $12 Original price: $25 Discount: 52% off
4 days left at this price!
30-Day Money-Back Guarantee
Includes:
  • 3.5 hours on-demand video
  • 6 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

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

Try Udemy for Business
What Will I Learn?
  • The students will learn how to use to host a centralized configuration repository that can be used for Spring cloud and/or MicroServices instances.
  • The Students will learn how to use Spring RestTemplate to pull Spring Configuration from a centralized Spring Cloud Config Server.
  • Students will learn how configuration is stored and managed in Cloud Config
  • Students will learn how branching and tagging of configuration can provide total control over complex configuration requirements
  • Students will learn how to secure the Spring Cloud Config endpoints with BASIC Authentication.
  • Students will create a Client application that connects to a Config Server using BASIC Authentication.
View Curriculum
Requirements
  • The student should be familiar with the SpringFramework, inversion of control (IoC) @Profile's and the Spring configuration lifecycle.
  • The student should be familiar with Spring boot.
  • The student should be familiar with GIT, versioning files, and potentially branching and labeling.
  • The student should have some exposure to Maven and/or Gradle build system tool.
Description

This course will lead intermediate to advanced SpringFramework and Spring Boot developers in creating a centralized Cloud Configuration server for use in cloud environments and MicroService architectures.

The course starts by creating a centralized Spring Cloud Config server. Students will learn how this can be used with or without a cloud oriented system like AWS. This technique can give great flexibility and manageability to any Spring-based deployment.

Students will create Spring Boot projects based mostly on Maven, but will also learn how to create the same projects using Gradle.

Then students will create a local GIT repository and pushing configuration files the students have created.

Then students will create remote Spring Boot clients to pull configuration from the Central config server, detailing out the various configuration that each remote application retrieve.

The students will then cover additional topics such as GIT TAG's and BRANCH's, and how applications can pull from them.

Students will also learn techniques for dynamically changing version of configuration to be pulled from a Spring Cloud Config server, for applications like parallel Microservice deployments.

Spring Cloud Config Server features:

  • HTTP, resource-based API for external configuration (name-value pairs, or equivalent YAML content)
  • Encrypt and decrypt property values (symmetric or asymmetric)
  • Embeddable easily in a Spring Boot application using @EnableConfigServer
  • Enable BASIC Authentication for configuration access

Config Client features (for Spring applications):

  • Bind to the Config Server and initialize Spring Environment with remote property sources
  • Bind directly to complex Objects using @ConfigurationProperties with remote property source
  • Enable BASIC Authentication for configuration access

next...


Who is the target audience?
  • Spring Framework and/or Spring Boot developers that want to learn about distributed Spring configuration management with Spring Cloud Config.
Compare to Other Spring Cloud Courses
Curriculum For This Course
47 Lectures
03:29:54
+
Introduction
4 Lectures 13:49
+
Spring Ecosystem Overview
7 Lectures 23:39

Overview of what the Spring IO platform

Spring IO platform

Spring IO is a cohesive, versioned platform for building modern applications. It is a modular, enterprise-grade distribution that delivers a curated set of dependencies while keeping developers in full control of deploying only the parts they need. Spring IO is 100% open source, lean, and modular.

Preview 08:22

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

Features

  • Create stand-alone Spring applications
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
  • Provide opinionated 'starter' POMs to simplify your Maven configuration
  • Provide production-ready features such as metrics, health checks and externalized configuration
  • Absolutely no code generation and no requirement for XML configuration

The "https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle" reference guide includes detailed descriptions of all the features, plus an extensive howto for common use cases.

Preview 07:14

Spring Cloud

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer's own laptop, bare metal data centres, and managed platforms such as AWS, Google Cloud and Cloud Foundry.

Spring Cloud Overview
03:31

Spring Cloud Config Overview
01:59

LAB: Spring Boot Primer
00:44

+
Setup Spring Cloud Config Server
6 Lectures 17:51

Create a Maven and Gradle based Spring Boot application from the Spring Boot INITIALIZR web application.

Preview 06:27

The initial startup of the Spring Cloud config Server with the Maven wrapper, then the Gradle Wrapper, then testing the health of the server with the Actuator /health endpoint.

Initial Maven then Gradle startup of Config Server
03:34

Import the Gradle project into a new Intellij IDEA project.

Import Server project into IDEA
02:03

Students will perform some basic configuration on this Spring Boot application to ensure the server is ready to serve configuration requests once we have configuration to serve.

Configure Config Server
04:33

+
Setup GIT Configuration Repository
9 Lectures 54:37

Create an empty local git repository

Preview 02:49

Create a properties file on Master branch and create TAG
11:40

LAB: Spring Cloud Config Server
01:01

Create a YAML file, adding it to the repo and committing it to the Master branch.

Then create a GIT TAG for this specific commit. (v.1.1)

Then we will review pulling the configuration from the server.

Will talk about GIT Lifecycles related to pulling configuration.

We then pull configuration for v.1.0, and then v.1.1

Create YAML file on Master create TAG
09:16

Create a properties and YAML file for "dev" profile, adding them to the repo and committing it to the Master branch.

Then create a GIT TAG for this specific commit. (v.2.0)

Then we will review pulling the configuration from the server.

We then pull configuration for TAG v.2.0, then for "dev" profile.

Then we show how attempting to pull TAG v.2.0 with an invalid profile name.

Create Properties and YAML file on Master, w/Profile, create TAG
08:36

Modify properties and YAML files for "default" and "dev" profile, committing it to the HOTFIX branch only.

Then create a GIT TAG for this specific commit. (v.3.0)

We will review pulling default configuration from the server, and then for "dev" profile.

We then pull configuration for branch HOTFIX and then for "dev" profile.

We then pull configuration for TAG v.3.0, then for "default" profile.

We then pull configuration for TAG v.3.0, then for "dev" profile.



Create Properties and YAML file on HOTFIX branch, w/Profile, create TAG
08:35

Pull LABEL and Profile configuration from Config Server
09:58

Section Review
01:06
+
Spring Cloud Config Clients
12 Lectures 56:33


In this lecture, we will go over some basic configuration of the Client application that will be pulling configuration from our central server.

We will discuss the correlation of this local configuration to the reference of centralized configuration.

We then will discuss how to set the Profile, and TAG / LABEL for the client application.

Configure Spring Cloud Microservices Client Application
03:43

Create Spring RestController to expose configuration of this Service Endpoint
05:19

Verify Default Profile Service Endpoint Properties
06:01

LAB: Spring Cloud Config Client
00:37

Create custom @ConfigurationProperties Object to encapsulate complex properties, and verify we can pull complex Configuration properties from the Config Server.

Create custom @ConfigurationProperties Object to encapsulate complex properties
14:04

Delete .properties file from repository and verify YML precedence
03:41

Pull configuration from BRANCH and from TAG
07:37

LAB: Spring Cloud Config Server working with branches
00:26

Microservice Label version strategy
06:36

Section Review

Section Review
01:10
+
Additional Spring Cloud Config Options
8 Lectures 42:41


Setting fail-fast retry options
06:50

Enabling BASIC Authentication on the Config Server
06:06

Configuring Client Authentication Credentials
06:48

Refreshing @ConfigurationProperties in client application
08:32

Enable client application retry support to attempt to connect to a remote resource multiple times before failing

Enable configuration refresh without application restart
07:14

Section Review
01:20
+
Extras and Bonus
1 Lecture 00:44
Extra Resources
00:44
About the Instructor
Mick Knutson
4.2 Average rating
5 Reviews
29 Students
1 Course
Enterprise Achitect, Consultant, Author, Instructor

The best word to describe the key to success behind Mick’s over 25 years of experience in the IT industry is ‘passion’. As a passionate and experienced enterprise technology consultant, Java architect, and software developer, Mick looks forward to using his unique professional experience to help students learn about software development in an effective, practical, and convenient manner.

Mick’s real-world expertise comes from providing individuals and mid-to-large-size businesses with advanced software consulting and training. He has collaborated with many notable clients and partners including VmWare, Spring Source, Fuse Source, Global Knowledge, and Knowledge United. His technical expertise includes OOA/OOD/OOP, Java, Java EE, Java EE, Spring Security, Oracle, Enterprise Integration and Message Oriented Middleware.  

As a veteran of the IT industry, Mick is determined to help as many people as possible and show that anyone can become a software developer. He has spoken around the world at training seminars, luncheons, book publishing engagements, and white paper engagements. He has authored several technical books and articles on Spring Security, Java EE 6, HTTP, and VisualVM. Mick is also a featured blogger at DZone, where he is part of the curated Most Valuable Blogger (MVB) group.

Having lived and breathed software development for over two decades, Mick enjoys translating complex technology concepts into plain English for different audiences. Whether he is helping an experienced software professional or someone who is new to the field, Mick can simplify even the most intricate IT concepts.

Mick’s mission is to use his seasoned professional experience to help anyone who wants to learn about software development. As an expert and a professional, Mick designs his training courses to make the learning experience as enriching, seamless, and convenient as possible so that you can master software development in the shortest amount of time. 

Learn from an expert. Mick warmly looks forward to helping you learn software development in the right way so you can maximize both your money and your time. 

Publications:

Spring Security 3rd Edition (Packt Pub)
Java EE6 Cookbook (Packt Pub)
HTTP Reference Card (DZone)
VisualVM Reference Card (DZone)


Specialties: Java, J2SE, Java EE, J2EE, WebLogic, WebSphere, JBoss, Tomcat, Web Services, Axis, CXF, REST, SOAP, SoapUi, VXML, Oracle, DB2, Hibernate, iBatis, SQL, Unix, Linux, WDSC, Eclipse, IntelliJ, JDeveloper, Rational XDE, Together, JMS, SEAM, Webflow, iceFaces, Spring Security, Spring Cloud, Spring Framework, Aspect-J, XML, Ant, Maven, Junit, Mock, TestNG, DBUnit, Ajax, RUP, XP, Agile, SDLC, OOA/D/P, UML