Developing Microservices Training

Course #:WA2684

Developing Microservices Training

This five-day DevOps training class is loaded with practical real-world information. From the foremost Service-Oriented-Architecture/DevOps/Agile development training company, comes a course to move the dial on your organizations’ journey with this workshop. You will leave this course loaded with knowledge on the usage of this stack for Microservices. This class combines instructor-led and hands-on lab exercises.

AUDIENCE

This course will be particularly useful for architects, technology managers, and development leaders implementing or considering Microservices and DevOps for their organization including the following:

  • Architects
  • Software Reliability Engineers
  • Operations
  • Lead Application Developers
  • Application Developers
  • Technology Managers

TOPICS

  • Microservices
  • CI/CD
  • Microservice Container Management
  • Docker
  • Message-based microservices architecture
  • Couchbase schema on read for microservices

WHAT YOU WILL LEARN

After completing this course, the student should be able to:

  • Confidently use the stack outlined in the course.
  • Understand the various key components.
  • Apply the knowledge to migrate applications to microservice architected solutions on Docker, Kubernetes, and Jenkins with OpenShift
  • Understand the various components in a containerized microservice environment for CI/CD

PREREQUISITES

A desire to learn how this Microservices toolchain can improve your organization effectiveness, build & release processes, application architecture & development, and business continuity for greenfield and application modernization

DURATION

5 days.

Outline of Developing Microservices Training

CHAPTER 1. Microservice Development

  • The Microservices Architecture Design Principles
  • Decentralized Processing
  • Business Domain-Centric Design
  • Crossing Process Boundary is Expensive!
  • Designing for Failure
  • Fault Injection During System Testing
  • Distributed Transactions
  • Managing Distributed Services with Docker & Kubernetes (OpenShift)
  • Microservices and their relationship to the front-end
  • Rich Client Applications
  • Single Page Applications (SPA)
  • The Building Blocks of a Fault-tolerant Application
  • Example of Microservices in Their Purest Form: AWS Lambdas
  • Example of Traditional Enterprise Application Architecture
  • Example of Microservices Architecture
  • Summary

CHAPTER 2. REST SERVICES

  • Many Flavors of Services
  • Understanding REST
  • Principles of RESTful Services
  • REST Example – Create
  • REST Example – Retrieve
  • REST Example – Update
  • REST Example – Delete
  • REST Example – Client Generated ID
  • SOAP Equivalent Examples
  • REST Example – JSON
  • REST vs SOAP Communication
  • Restful API Design
  • Versioning
  • Documentation
  • Security
  • Additional Resources
  • Summary

CHAPTER 3. ADVANCED OBJECTS AND FUNCTIONALITY IN JAVASCRIPT

  • Basic Objects
  • Constructor Function
  • More on the Constructor Function
  • Object Properties
  • Deleting a Property
  • The instanceof Operator
  • Object Properties
  • Constructor and Instance Objects
  • Constructor Level Properties
  • Namespace
  • Functions Are First-Class Objects
  • Closures
  • Closure Examples
  • Private Variables with Closures
  • Immediately Invoked Function Expression (IIFE)
  • The Module Pattern
  • Module Pattern Example
  • Prototype
  • Inheritance in JavaScript
  • The Prototype Chain
  • Traversing Prototype Property Hierarchy
  • Prototype Chain
  • Inheritance Using Prototype
  • Extending Inherited Behavior
  • Enhancing Constructors
  • Improving Constructor Performance
  • Inheritance with Object.create
  • The hasOwnProperty Method
  • Summary

CHAPTER 4. REACT OVERVIEW

  • What is React?
  • What's in a Name?
  • React Component Model
  • What React Is Not
  • What You Will Not Find in React
  • Motivation for Creating React
  • A React JavaScript Example
  • One-Way Data Flow
  • JSX
  • A JSX Example
  • The Virtual (Mock) DOM
  • Only Sub-components that Actually Change are Re-Rendered
  • React Libraries
  • React Installation
  • Summary

CHAPTER 5. PROGRAMMING WITH REACT API

  • React Programming Options
  • Components vs Elements
  • Three Ways to Create a React UI Component
  • React API On-Line Documentation
  • Setting Up the Libraries
  • The ReactDOM Object
  • The ReactDOM Object (Cont'd)
  • The React Object
  • The React.createElement Method
  • The ReactElement Object
  • The ReactElement Structure
  • The React.DOM Object
  • The React.PropTypes Object
  • The React.Children Object
  • The propTypes Object
  • Lifecycle Methods (Applied only to ES6 Classes)
  • Summary

CHAPTER 6. JSX

  • What is JSX?
  • JSX Transpilation to React Code Example
  • Running the Transpiled Code
  • Babel
  • Babel JavaScript Library
  • Script Import Skeleton Code
  • Playing Around in CodePen
  • React Components and Properties (Props)
  • Ways to Create UI Components
  • Creating a Functional Component Example
  • Component Names Must Be Capitalized
  • Creating a UI Component with React.createClass()
  • The render Method Object
  • Creating a UI Component Using ES6 Class Notation
  • Using ES6 Classes with React
  • Which UI Component Creation Syntax Should I Use?
  • Components vs Elements
  • Elements Are Immutable
  • Properties
  • Property Naming Convention
  • Properties Default to 'True'
  • Spread Attributes (an ES6 Feature)
  • Expressions
  • Hands-on Exercises
  • Nesting JSX Elements
  • Example of JSX Nesting
  • JSX is Safe to Use
  • Hands-on Exercise
  • State and Lifecycle Events
  • Event Handling
  • Event Handler Example
  • Working with Lists of Items
  • List Keys
  • Hands-on Exercises
  • Summary

CHAPTER 7. INTRODUCTION TO NODE.JS

  • What Is Node.js?
  • Application of Node.js
  • Installing Node.js and NPM
  • "Hello, Node World!"
  • How It Works
  • Built on JavaScript: Benefits
  • Traditional Server-Side I/O Model
  • Disadvantages of the Traditional Approach
  • Event-Driven, Non-Blocking I/O
  • Concurrency
  • Using Node Package Manager (NPM)
  • Express
  • Summary

CHAPTER 8. EXTENDING REACT

  • The Need to Extend React
  • Redux
  • Redux Design Ideas
  • React Router
  • React Router Code Examples
  • Issues With Manual Module Management
  • Webpack
  • Testing React Apps: ReactTestUtils
  • Testing React Apps: Jest
  • Testing with Jest and Enzyme
  • Summary

CHAPTER 9. REACT COMPONENT CONCEPTS

  • Development setup with babel-cli
  • Container vs. Presentational Components
  • State
  • Types of State Data
  • State Hierarchy
  • Lift State Up
  • Pass Down a Function
  • Keys in Lists
  • Props vs. State
  • Immutability
  • App Development Workflow
  • Virtual DOM
  • Calling setState()
  • Passing Props to Components
  • Passing Functions to Components
  • Event Binding in React Components
  • Passing Parameters to Event Handlers
  • Displaying Lists

CHAPTER 10. INTRODUCTION TO spring boot

  • What is Spring Boot?
  • Spring Boot Main Features
  • Spring Boot vs DropWizard
  • Spring Boot on the PaaS
  • Understanding Java Annotations
  • Spring MVC Annotations
  • Example of Spring MVC-based RESTful Web Service
  • Spring Booting Your RESTful Web Service
  • Spring Boot Skeletal Application Example
  • Converting a Spring Boot Application to a WAR File
  • Summary

CHAPTER 11. SPRING MVC

  • Spring MVC
  • Spring Web Modules
  • Spring MVC Components
  • DispatcherServlet
  • Template Engines
  • Spring Boot MVC Example
  • Spring MVC Mapping of Requests
  • Advanced @RequestMapping
  • Composed Request Mappings
  • Spring MVC Annotation Controllers
  • Controller Handler Method Parameters
  • Controller Handler Method Return Types
  • View Resolution
  • Spring Boot Considerations
  • Summary

CHAPTER 12. OVERVIEW OF SPRING BOOT DATABASE INTEGRATION

  • DAO Support in Spring
  • Spring Data Access Modules
  • Spring JDBC Module
  • Spring ORM Module
  • DataAccessException
  • @Repository Annotation
  • Using DataSources
  • DAO Templates
  • DAO Templates and Callbacks
  • ORM Tool Support in Spring
  • Summary

CHAPTER 13. USING SPRING WITH JPA OR HIBERNATE

  • Spring JPA
  • Benefits of Using Spring with ORM
  • Spring @Repository
  • Using JPA with Spring
  • Configure Spring Boot JPA EntityManagerFactory
  • Application JPA Code
  • "Classic" Spring ORM Usage
  • Spring JpaTemplate
  • Spring JpaCallback
  • JpaTemplate Convenience Features
  • Spring Boot Considerations
  • Spring Data JPA Repositories
  • Summary

CHAPTER 14. SPRING REST SERVICES

  • Many Flavors of Services
  • Understanding REST
  • RESTful Services
  • REST Resource Examples
  • REST vs SOAP
  • REST Services With Spring MVC
  • Spring MVC @RequestMapping with REST
  • Working With the Request Body and Response Body
  • @RestController Annotation
  • Implementing JAX-RS Services and Spring
  • JAX-RS Annotations
  • Java Clients Using RestTemplate
  • RestTemplate Methods
  • Summary

CHAPTER 15. SPRING SECURITY

  • Securing Web Applications with Spring Security 3.0
  • Spring Security 3.0
  • Authentication and Authorization
  • Programmatic v Declarative Security
  • Getting Spring Security from Maven
  • Spring Security Configuration
  • Spring Security Configuration Example
  • Authentication Manager
  • Using Database User Authentication
  • LDAP Authentication
  • Summary

CHAPTER 16. SPRING JMS

  • Spring JMS
  • JmsTemplate
  • Connection and Destination
  • JmsTemplate Configuration
  • Transaction Management
  • Example Transaction Configuration
  • Producer Example
  • Consumer Example
  • Converting Messages
  • Message Listener Containers
  • Message-Driven POJO's Async Receiver Example
  • Message-Driven POJO's Async Receiver Configuration
  • Spring Boot Considerations
  • Summary

CHAPTER 17. Introduction to couchbase

  • What is Couchbase?
  • Why use Couchbase?
  • Schema on read
  • NoSQL with Joins
  • High performance delivered for Big Data
  • Elastic scalability
  • Ease of Administration
  • Business Continuity
  • Summary

CHAPTER 18. Microservices with Couchbase

  • Rest with Couchbase
  • Utilizing Couchbase in Maven
  • Standalone functionality with WildFly
  • Simple access with cURL
  • Couchbase Docker container
  • Couchbase with microservices
  • AWS Serverless application model
  • AWS Lamba functions
  • AWS API Gateway
  • Putting it all together
  • Summary

CHAPTER 19. Introduction to KAFKA

  • What is Kafka?
  • Need for Kafka
  • Where is Kafka useful?
  • Architecture
  • Core concepts in Kafka
  • Overview of ZooKeeper
  • Cluster, Nodes, Kafka Brokers
  • Consumers, Producers, Logs, Partitions, Records, Keys
  • Kafka Streams
  • Kafka Connectors
  • Kafka REST
  • Summary

CHAPTER 20. Microservices with KAFKA

  • Creating a producer in REST
  • Creating a consumer in REST
  • Use in a high-speed reactive microservice architecture
  • Summary

CHAPTER 21. INTRODUCTION TO Kubernetes

  • What is Kubernetes?
  • What Is a Container?
  • Microservices and Orchestration
  • Microservices and Infrastructure-as-Code
  • Kubernetes Container Networking
  • Summary

CHAPTER 22. Kubernetes: from the firehose

  • Masters
  • Nodes
  • Pods
  • Namespaces
  • Resource Quota
  • Authentication and Authorization
  • Routing
  • Registry
  • Storage Volumes
  • Microservices, Linking, and Catalogs
  • Summary

CHAPTER 23. Docker: Bring on the Whale

  • What is Docker
  • Docker ecosystem
  • Docker concepts
  • Docker Architecture
  • Microservice encapsulation
  • Secure microservices using Docker
  • Agility, Portability, and Control
  • Summary

CHAPTER 24. CI/CD with Openshift

  • Jenkins CI
  • CloudBees
  • Confidentiality
  • Activating Security
  • Configure Authentication
  • OpenShift Jenkins Pipeline Plugin
  • BuildConfig Strategy
  • OpenShift Sync Plugin
  • Pipeline Visualization
  • Jenkins Auto-provisioning
  • Blue Ocean
  • Summary

CHAPTER 25. Operational Readiness

  • Monitoring, Logging, and Resource Management
  • Monitoring Compute Resources
  • Checking Pod Health
  • Logging
  • Secrets & Vaulting
  • Summary

CHAPTER 26. Application Modernization

  • What is Application Modernization?
  • Typical App Modernization Projects
  • Why Modernize?
  • Goals for Modernization
  • Twelve-factor Application Microservices
  • Maintaining State
  • Cloud Service Fabric

CHAPTER 27. Introduction to FEIGN

  • What is Feign?
  • Why is it useful?
  • Ribbon
  • Hystrix
  • Annotations
  • Templated requests
  • Creating a REST client with Feign

CHAPTER 28. ACTIVITI WORKFLOW

  • What is Activiti?
  • Business Process Management
  • Workflow
  • Spring with Activiti
  • Summary

Lab sequence

Lab 1. A Simple RESTful API in Spring Boot
Lab 2. Use the Spring Web MVC Web Framework under Spring Boot
Lab 3. Use the Spring JDBCTemplate under Spring Boot
Lab 4. Use the Spring Data JPA under Spring Boot
Lab 5. Create a RESTful API with Spring Boot
Lab 6. Create a RESTful Client with Spring Boot
Lab 7. Enable Basic Security
Lab 8. Use AMQP Messaging with Spring Boot
Lab 9. Use Netflix Eureka for Service Discovery
Lab 10. Use Netflix Ribbon for Client-Side Load Balancing
Lab 11. Use Netflix Hystrix for the Circuit Breaker Pattern
Lab 12. Utilize Couchbase with Microservices in AWS
Lab 13. Creating a Kafka REST producer
Lab 14. Creating a Karka REST consumer
Lab 15. Kubernetes Hello World
Lab 16. Secret Handling in Kubernetes
Lab 17. Create an OpenShift Jenkins Pipeline for a Microservice
Lab 18. Create an OpenShift Blue Ocean Pipeline for a Microservice
Lab 19. Using Spring Security with Microservices
Lab 20. Creating a REST client with Feign

We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.