Building Microservices with Spring Boot, Second Edition

Video description

7+ Hours of Video Instruction

The term “microservices” has gained significant traction over the last few years. Describing a specific style of distributed software architecture, microservices are small, independently deployable units that work together to form a complete system. Microservices live on the web, live in the cloud, and work with all manner of data (SQL, NoSQL, In-Memory). They are production-ready services driven by ever-changing demands and scale.

Java developers looking to adopt microservices need to consider the practical aspects of application development. How can services be developed quickly? How can a broad range of technologies be supported? How can a consistent programming model be kept? For many companies, the answer is Spring Boot, Spring Cloud, and the wider Spring ecosystem.

Description

In this video training, Josh Long and Phil Webb demonstrate how and why Spring and Spring Boot offer the best way to build modern microservice systems. They look at the technologies and use-cases common to cloud-native microservice style applications as part of a larger framework, and then specifically address microservice implementation patterns.

About the Instructors

Josh Long is the Spring Developer Advocate at Pivotal. He is a lead author, or co-author, on six books on Spring for Apress and O’Reilly; a frequent speaker at conferences worldwide; a JavaOne rockstar; and also the instructor on the first two Spring LiveLessons videos. He is a contributor to various Spring projects (including Spring Boot) and an all-around Spring fan. You can follow Josh on Twitter: @starbuxman

Phil Webb is the current lead of Spring Boot and a core contributor to the Spring Framework. He has been working with open source for many years and regularly talks at conferences and Java User groups. When he’s not developing code, Phil is kept busy by his young son. Phil is fortunate enough to be employed by Pivotal to work full-time on Spring. You can follow Phil on Twitter: @phillip_webb

Skill Level

  • Intermediate

What You Will Learn

  • Understand the patterns typical of modern application architectures
  • Understand how Spring Boot ties together various parts of the Spring platform to make getting results a snap, on par with the agility you might otherwise expect from a Node.js or Ruby on Rails
  • Learn how to build microservices with Spring Cloud

Who Should Take This Course

  • Existing and new Spring users
  • Java developers working with: SQL, NoSQL, mobile, web applications, highly concurrent service backends, etc.

Course Requirements

  • Basic Java familiarity. The course uses Java 8, although Spring Boot and most Spring projects support Java 6.

Table of Contents

Introduction
Lesson 1: “Bootstrapping” (Spring Boot 101)
Lesson 2: Using “Twelve-Factor App” Style Configuration
Lesson 3: Reaching for The Clouds
Lesson 4: Working with Data
Lesson 5: Giving Your Microservice a REST
Lesson 6: Data Synchronization and Processing
Lesson 7: Creating Operations-Friendly Microservices
Lesson 8: Edge Services and Routing
Lesson 9: Operations at Scale
Lesson 10: Developing Web Applications
Lesson 11: Securing Microservices with Spring Security
Lesson 12: Testing Microservices
Lesson 13: Extending Spring Boot
Lesson 14: IDE and Tooling Support
Summary

About LiveLessons Video Training

LiveLessons Video Training series publishes hundreds of hands-on, expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. This professional and personal technology video series features world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, IBM Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT Certification, Programming, Web Development, Mobile Development, Home and Office Technologies, Business and Management, and more. View all LiveLessons on InformIT at: http://www.informit.com/livelessons.

Table of contents

  1. Introduction
    1. Building Microservices with Spring Boot: Introduction
  2. Before You Begin (Understanding Spring Concepts)
    1. Understand Spring fundamentals
  3. Before You Begin (Upgrading Spring Boot Applications)
    1. Upgrade Spring Boot applications
    2. Deal with deprecations and warnings
    3. Apply Spring refinements
    4. Summary
  4. Lesson 1: “Bootstrapping” (Spring Boot 101)
    1. Learning objectives
    2. 1.1 Introduce Spring Boot
    3. 1.2 Write Groovy-based Spring CLI applications
    4. 1.3 Bootstrap with the Spring Initializr
    5. 1.4 Build with Maven
    6. 1.5 Build with Gradle
    7. 1.6 Work with starter POMs
    8. 1.7 Create runnable “fat” JARs
    9. 1.8 Understand auto-configuration
    10. Summary
  5. Lesson 2: Using “Twelve-Factor App” Style Configuration
    1. Learning objectives
    2. 2.1 Understand “Twelve-Factor App” configuration
    3. 2.2 Ask questions about an application’s environment
    4. 2.3 Read external configuration
    5. 2.4 Map properties to POJOs
    6. 2.5 Take it easy with relaxed binding
    7. 2.6 Support multiple environments using Spring profiles
    8. 2.7 Centralize configuration with the journaled, secure Spring Cloud Configuration Server
    9. 2.8 Refresh configuration without restarting your application
    10. Summary
  6. Lesson 3: Reaching for The Clouds
    1. Learning objectives
    2. 3.1 Embrace “The Cloud”
    3. 3.2 Compare IaaS and PaaS
    4. 3.3 Deploy your apps to Heroku
    5. 3.4 Deploy your apps to Cloud Foundry
    6. 3.5 Containerize your applications with Docker
    7. 3.6 Consume services in “The Cloud”
    8. 3.7 Optimize for “The Cloud” using Spring Session and Spring Cloud AWS
    9. Summary
  7. Lesson 4: Working with Data
    1. Learning objectives
    2. 4.1 Contextualize your microservice data
    3. 4.2 Understand Spring Data
    4. 4.3 Work with relational databases
    5. 4.4 Evolve your database using Flyway
    6. 4.5 Use Redis distributed data structures
    7. 4.6 Store data with MongoDB
    8. 4.7 Search data using Elasticsearch
    9. 4.8 Expose Spring Data repositories over REST
    10. Summary
  8. Lesson 5: Giving Your Microservice a REST
    1. Learning objectives
    2. 5.1 Understand REST
    3. 5.2 Understand status codes
    4. 5.3 Understand content negotiation
    5. 5.4 Understand HTTP Clients
    6. 5.5 Use hypermedia
    7. 5.6 Handle errors
    8. 5.7 Version your API
    9. 5.8 Use Differential Synchronization and JSON PATCH
    10. Summary
  9. Lesson 6: Data Synchronization and Processing
    1. Learning objectives
    2. 6.1 Batch process with Spring Batch
    3. 6.2 Integrate services with Spring Integration
    4. 6.3 Compose integration streams with Spring Cloud Stream
    5. 6.4 Orchestrate streams with Spring Cloud Dataflow (DSL, Shell)
    6. Summary
  10. Lesson 7: Creating Operations-Friendly Microservices
    1. Learning objectives
    2. 7.1 Understand the implications of agile methodologies on operations
    3. 7.2 Gain insight via logging
    4. 7.3 Introduce the Spring Boot Actuator
    5. 7.4 Monitor microservices
    6. 7.5 Diagnose errors
    7. 7.6 Measure anything and everything with metrics
    8. 7.7 Extend the Spring Boot Actuator
    9. Summary
  11. Lesson 8: Edge Services and Routing
    1. Learning objectives
    2. 8.1 Understand client side load balancing (Ribbon) and service registration (Eureka)
    3. 8.2 Build smart edge services (microproxies and api gateways)
    4. 8.3 Add resilience with circuit breakers
    5. Summary
  12. Lesson 9: Operations at Scale
    1. Learning objectives
    2. 9.1 Add distributed logging
    3. 9.2 Increase visibility with Hystrix Dashboard
    4. 9.3 Trace your distributed system with Zipkin
    5. 9.4 Use Application Performance Management (APM)
    6. Summary
  13. Lesson 10: Developing Web Applications
    1. Learning objectives
    2. 10.1 Understand web applications in the microservice world
    3. 10.2 Serve resources from a Spring Boot application
    4. 10.3 Use templating technologies such as Thymeleaf
    5. 10.4 Resolve and transform resources
    6. Summary
  14. Lesson 11: Securing Microservices with Spring Security
    1. Learning objectives
    2. 11.1 Understand security
    3. 11.2 Understand HTTP Basic
    4. 11.3 Understand x509
    5. 11.4 Understand OAuth
    6. Summary
  15. Lesson 12: Testing Microservices
    1. Learning objectives
    2. 12.1 Review the example test application
    3. 12.2 Test without Spring
    4. 12.3 Test with Spring
    5. 12.4 Mock beans
    6. 12.5 Test application slices
    7. 12.6 Use @JsonTest
    8. 12.7 Use @DataJpaTest
    9. 12.8 Use @RestClientTest
    10. 12.9 Use @WebMvcTest
    11. 12.10 Understand “slice” annotations
    12. 12.11 Use Wiremock
    13. Summary
  16. Lesson 13: Extending Spring Boot
    1. Learning objectives
    2. 13.1 Know when to extend Spring Boot
    3. 13.2 Understand curated dependencies
    4. 13.3 Write custom auto-configuration
    5. 13.4 Use ApplicationListeners
    6. 13.5 Use ApplicationContextInitializers
    7. 13.6 Write a custom failure analyzer
    8. Summary
  17. Lesson 14: IDE and Tooling Support
    1. Learning objectives
    2. 14.1 Understand tooling basics
    3. 14.2 Use Netbeans
    4. 14.3 Use Eclipse/STS
    5. 14.4 Use IntelliJ
    6. 14.5 Use DevTools to increase productivity
    7. 14.6 Understand property meta-data
    8. 14.7 Fork start.spring.io
    9. Summary
  18. Summary
    1. Building Microservices with Spring Boot: Summary

Product information

  • Title: Building Microservices with Spring Boot, Second Edition
  • Author(s): Josh Long / Phillip Webb
  • Release date: January 2017
  • Publisher(s): Pearson
  • ISBN: 0134678656