microservices

The delegates must have good experience in web application development. Having exposure to SOPA and REST Services development and Continuous Integration with Continuous Delivery management is preferred.

The MicroServices is a variant of the service-oriented architecture (SOA) architectural style that defines the application as a composition of loosely coupled small services and units. In MicroServices, fine-grained services are supported by lightweight protocols. MicroService Architecture and Deployment training course introduces the generic MicroServices architecture with patterns and the deployment scenarios in Kubernetes cluster with docker container engine in distributed network environment.

COURSE AGENDA

  • Kubernetes for orchestration of containers
  • Kubernetes cluster
  • Kubernetes architecture and features
  • Kubernetes Core Concepts
  • Kubernetes tools
  • Using the VM Drivers
  • Start basic single node minikube cluster
  • The minikube commands overview
  • Basic objects
    • Pod
    • Service
    • Volume
    • Namespace
  • The kubectl commands for deployment and monitoring
  • The pod configuration in YML file
  • Create and manage pods with kubectl
  • The host network and host port mode
  • Run and monitor the pods with logs
  • Inspect the pods
  • Interact with pods
  • Kubernetes docker daemon
  • Pods with multiple containers: inspect, interact and logs
  • Linking the containers in pod
  • Rolling updates
  • Monitor and manage the cluster with dashboard
  • High availability with Cluster
  • The nodes in cluster
  • Docker Swarm manager and worker nodes
  • Deploy an application across multiple docker host nodes
  • Load balancing and instance management
  • Application updates (rolling updates) and roll back
  • Scale the containers
  • Monitor the containers
  • Inspect the services
  • Using logging drivers
  • Custom network plug-in
  • Container configuration with YML files
  • Docker-compose commands
  • Configure and Deploy micro-service with database
  • Monitor the micro-service in container
  • Docker-Machine to manage multiple docker hosts
  • Interaction with docker-machine
  • Docker networks
  • Host network mapping
  • Host Port Mapping
  • Dynamic port mapping
  • Default bridge network
  • The overlay network used in cluster
  • Linking the containers
  • Use of Nginx for host-container mapping
  • Docker security overview
  • Sharing the data across containers with volume
  • Mount persistent volumes to containers from host system
  • Design MicroService image with Dockerfile
  • The Dockerfile grammar
  • Build and run the image
  • The Docker Hub user with repository
  • Push the docker images to Docker Hub
  • Run database container
  • Copy files/dirs from container to host and vice versa
  • Connect to database container via terminal
  • Manage the data in database
  • Commit the modified container as image
  • Update Docker container images
  • Work with local Docker Registry
  • Clean the docker environment
  • Docker architecture
  • Docker containers for application deployment
  • Docker daemon and docker client
  • Installing the Docker for Windows and Linux
  • Docker commands overview
  • Docker container and image
  • Docker Hub registry for images
  • Create and run first Docker container
  • Access the docker container from the host system
  • The host network mapping
  • Port forwarding
  • Inspect docker process and containers
  • Inspect container logs
  • Interactive and detached containers
  • Start, Stop and remove containers
  • Manage the docker images
  • Pull more docker images from
  • Docker Hub Docker container monitoring
  • Applications in Enterprise
    • Development and Deployment platforms
    • Manage deployment across platforms
    • Application dependencies
    • Making it highly available with clustering
    • Scaling for performance
    • Load balancing and instance management with orchestration
    • Deployment monitoring and instance management
  • The need of VM
  • Deployment in Virtual Machine environment
  • The Virtual MC usage and limitations
  •  The container deployment
  • The container as isolated process
  • The container vs. virtual machine
  • The networking with containers
  • Security in container applications
  • Message brokers
  • Point to Point
  • Publish - Subscribe
  • Message Brokers
  • AMQP
  • STOMP
  • Service instance per host
  • Multiple service instances per host
  • Scaling the instances
  • Shared Database
  • Database per Service
  • Application events and logging
  • API Gateway
  • Circuit Breaker
  • Service Discovery
  • Self Registration
  • Third Party Registration
  • Event Driven Architecture
  • Event Sourcing and collaboration
  • Command Query Responsibility Segregation
  • Sync vs. Async processing
  • Reactive Microservices
  • Shared Database
  • Why MicroServices
  • Monolith vs. MicroServices
  • Decomposing into smaller service units
  • Advantages
    • Loose coupling
    • Isolated development and isolated testing
    • Performance enhancement and maintainability
    • Scaling the services with ease
  • Common Design Patterns overview
  • Singleton
  • Observer
  • Mediator
  • Bridge
  • Session facade
  • Chain of Responsibility
  • SOLID Principles overview
  • Modeling and Domain Driven Design
  • The REST style of applications
  • Using the HTTP protocol
  • The unique resource URL as REST Noun
  • The resource operations with HTTP Methods as verbs
  • Models and Persistent Entities
  • Define data formats for exchange
  • Reuse and Linking the services
  • SOA overview
  • The need of SOA in the Enterprise
  • Applications as service
  • Soap Web services with XML
  • SOAP,WSDL and dependencies
  • SOAP services limitations
    • Interoperability issues
    • Heavyweight architecture
    • Performance and integration issues
    • Porting/migration issues
    • Tight coupling with the platform
  • The pods with volume
  • Sharing the data across containers with volume
  • Making the volume data persistent by mounting from host system
  • Configure PersistentVolume and PersistentVolumeClaim objects
  • Using the PersistentVolumeClaim in the container
  • Deployment : to group multiple pod instances
  • Replication : To manage multiple replicas of pods
  • Staefulset: To manage the Stateful applications
  • DaemonSet : To manage the group of pods across hosts
  • Job :Grouping of pods
  • Create deployment
  • The deployment options
  • The labels and selectors in deployment
  • The service types
    • ClusterIP
    • NodePort
    • Loadbalancer
    • ExtrenalName
  • Expose the deployment with service
  • Service port mapping : fixed and dynamic
  • Inspect and log the service
  • Scale the service
  • Service Discovery
  • Default services and namespaces
  • Communication with outside world
  • The service updates(rolling update) and rollbacks
  • The service load balancing
  • Ingress Controller for load balancing
  • Dashboard to monitor the cluster objects
  • Cluster tools
    • Kubeadm
    • Kubelet
    • Kube-proxy
    • Kubectl
  • Configure Cluster in network with master and nodes
  • Kubernetes Kops cluster overview
  • Deploying and Monitoring the Kubernetes cluster
  • Kubernetes REST API for Control and analyze
  • Health Checks and live-ness for pods/applications
  • Resource Quotas
  • Working with Namespaces
  • User/security Management
  • Manage the Kubernetes applications
  • Install Helm CLI and Tiller
  • The charts YAML file structure
  • Versioning and dependencies and tags
  • Define the requirements
  • The Helm Charts to define, install and upgrade
  • Search and publish the apps with charts
  • Using Helm to manage the deployments