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:
Config Client features (for Spring applications):
Environmentwith remote property sources
@ConfigurationPropertieswith remote property source
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 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 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.
Enable client application retry support to attempt to connect to a remote resource multiple times before failing
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.
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