Course Overview
A very important part of modern software development is the new discipline of Cloud-enabled microservices, and part of this is PAAS (Platform as a Service) which allows deploying such apps into production with the minimum effort. This course will introduce the participants into microservices and to its implementation with the Pivotal Cloud Foundry.
Audience
The course is intended for software architects and engineers.
Course Outline
Overview
Course Intro
PAAS - Platform as a Service
Monoliths versus Microservices
Microservices History
Pivotal Cloud Foundry
Microservice Fundamentals
What is a Microservice Architecture
What is a Microservice
Benefits of Microservices
Downsides of Microservices
Use Cases for Microservices
Monolithic Architecture
Distributed Architecture
Service-oriented Architecture
Microservice and API Ecosystem
SOA vs. Microservices
Microservice & API
Containers and Docker
What is a Container
What is Docker
Hypervisor Virtual Machines
How containers work
Containers and Microservice Architectures
Getting Started with Docker
Labs
Installing Docker – Native Linux
Installing Docker – Other Operating Systems
Docker Toolbox
Docker Machine Basics
Running your first Container
Developing a Microservice
Dockerfile
Instructions and images
FROM
RUN
Building Images
The Build Context
Adding files to an Image
Executing Commands
Specifying an Entrypoint
Multi Container Hosting
Automatic Port Mapping
Specific Port Mapping
Service instance per host
Multiple service instances per host
Service instance per VM
Service instance per container
API Gateway
Partial Failures
Circuit Breaker
Client Side Discovery
Server Side Discovery
Service Registry
Self Registration
3rd Party Registration
Shared Database
Database per Service
Event Driven Architecture
Event Sourcing
Transaction Log Tailing
Database Triggers
Application Events
CQRS
Domain-Driven Design (DDD)
What is Docker Hub
Creating an account
Creating a Repository
Markdown Format
Pushing an Image
Integrating Multiple Microservices
Lab
Microservices Detail
The Monolith vs Microservices overview
Cloud-Native Apps
High Availability, Scalability, Efficiency
Code repositories (such as Git) (covered as needed)
Continuous Integration, Continuous Delivery (CI/CD) (such as Jenkins) (covered as needed)
How Pivotal Cloud Foundry Enables Continuous Delivery
Microservices Security
Why it’s so important
Microservice Security Principles
Access Tokens
Oauth 2.0
Kerckhoff’s Principle
Shannon’s Maxim
Security through obscurity
General Security Considerations
Middleware Security Considerations
Edge Services Security Considerations
Web and Other Client Security Considerations
People and Process Security Considerations
REST Interfaces to MicroServices
What is a RESTful Web service?
HTTP verbs
HTTP response codes
kkVersioning Strategy
Richardson Maturity Model
Example scenario
Key Principles of RESTful Web Services
Using JAX-RS
Container Orchestration with PKS
Introducing PKS Container Orchestration
Deploying the App in PCF and PKS
PKS Overview
MongoDB
Introducing MongoDB
NoSQL vs NewSQL vs SQL
MongoDB and Containers
MongoDB and Microservices
Prerequisites
Comfortable with command-line operations
Familiar with software development