Microservice
Concepts & Theory
- What is a service?
- Monolithic arch
- pros and cons
- Microservice arch
- pros and cons
- Monolithic vs Microservice
- deployment, scalability, reliability, development, flexibility, debugging
- Security
- Cloud computing
- Public IP address
- On-premises
- Iaas, Cass, Pass, Faas (Server less computer), Saas
- Private could
- Hybridge cloud
- Scaling
- Blue Green Deployment
- Cloud Native vs Cloud Ready
- Event-Driven Architecture
- Event producer
- Event broker
- consumer
- pub/sub
- eventual consistency
- cache layer
- idempotent
- 12 Factor App
- Codebase
- Dependencies
- Config
- Backing services
- Build, release, run
- Processes
- Port binding
- Concurrency
- Disposability
- Dev/prod parity
- Logs
- Admin processes
- Load balancing
- Round robin
- Least connection
- IP hash
- Service Registry
- Failed fast
- Service Discovery
- Tools
- os
- language
- api management
- postman
- messaging
- kafka
- rabbitMQ
- toolkits
- fabric8
- seneca
- orchestration
- kubernetes
- Istio
- monitoring
- prometheus
- logstash
- serverless tools
- claudia
- AWS lambda
- Principles behind microservices
- Independent and autonomous service
- Scalability
- Decentralisation
- Resilient services
- Real time load balancing
- Availability
- CICD
- Continuous monitoring
- Seamless API integration
- Isolation from failures
- Auto provisioning
- Security
- Defence in depth mechanism
- Token and API gateway
- Distributed tracing
- First session
- Mutual SSL
- OAuth
- API gateway
- client performance
- security
- rate limiting
- monitoring logging
- BFF
- SOA vs Microservices
- Communication
- Types
- synchronous blocking communication
- asynchronous non blocking communication
- Request response
- REST over HTTP
- RPC
- Event driven
- kafka
Design Patterns
- need?
- Aggregator
- API gateway
- Chained or chain of responsibility
- Asynchronous messaging
- Orchestration vs Choreography
- Database pattern
- Database Per Service
- Shared Database
- Event sourcing
- Branch
- Multi-tenant
- pros and cons
- CQRS
- Circuit breaker
- SAGA
- Choreography
- Orchestration
- Decomposition
- Vine or Strangle
- Database
- Decentralised Data Management
- pros and cons
- Data Consistency in microservice
- Saga Pattern
- Event-Driven Architecture
- CQRS
- Idempotent Operations
- Consistency Models
- Database per Microservice
- Shared Database
- Data Virtualization
- Distributed Data Mesh
- CI/CD
- Github actions
- pros and cons
- running in parallel
- Testing
- unit tests, integration tests, and end-to-end tests.
- Artefact Repository
- JFrog
- Github actions
- Workflows
- Events
- Jobs
- Actions
- Runners
- Using variables in your workflows
- Sharing data between jobs
- artefacts
- actions/download-artifact
- Literals
- Contexts
- uses
- Context availability
- github context
- env context
- var context
- job context
- Polyglot Persistence
- - commands
- name
- on
- push
- branches
- jobs
- needs
- steps
- uses
- with
- run
- if
- matrix
- outputs
- Transactions in microservice
- Two-phase commit
- voting phase
- commit phase
- pros and cons
- SAGA
- backward recovery
- forward recovery
- correlation id
- imp of logging and monitoring