
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.
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.
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.
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.
Create a Maven and Gradle based Spring Boot application from the Spring Boot INITIALIZR web application.
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.
Import the Gradle project into a new Intellij IDEA project.
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.
Create an empty local git repository
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 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.
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.
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.
Create custom @ConfigurationProperties Object to encapsulate complex properties, and verify we can pull complex Configuration properties from the Config Server.
Section Review
Enable client application retry support to attempt to connect to a remote resource multiple times before failing
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:
@EnableConfigServerConfig Client features (for Spring applications):
Environment with remote property sources@ConfigurationProperties with remote property sourcenext...