Microservices: Another Way
- 3. AGENDA
Is Monolith a real problem?
Why Micro-Services?
How we gonna do Micro-Services?
Why Service Fabric?
What is Another Way?
- 6. MONOLITH - SCALABILITY
80% backend logic
Azure
Redis: Cache
Redis:
WebSockets
Backplane
SQL Store
Monolith
Instance 1
Monolith
Instance 2
Monolith
Instance 3
Monolith
Instance N
Stateless & Scalable
Redis
SQL – limited scale –
10% load
- 7. PROBLEM - TECHNICAL
1 Language / Platform limitation
Module cannot be scaled separately
DB Schema sharing
- 10. SCALING & HARDWARE
~ 20 Modules
3 – High Load
1 – requires Memory
GPU
Module 1
GPU
Module 2
SSD
Module 1
SSD
Module 2
Node with SSDNode with GPU
- 11. LANGUAGE & TOOLS
Use appropriate language & tools for component goals
Languages:
Java
.NET
NodeJS
Ruby
C++
Python
Storages & tools:
SqlServer
MySql
Redis
ELK
Kafka
Apache Solr
Apache Spark
- 12. HYBRID (CLOUD + ON PREMISES)
Cloud
Service 1
Service 2
Data
Service 1
Data
Service 2
Service 3
Regular Tenants
Classified Tenants
Tenant DC
- 15. REQUIREMENTS - DEVOPS
Script minimization
Upgrade in single command
High Availability & Self-Healing
Service Discovery
Hardware Constraints
- 21. SERVICE FABRIC vs CONTAINERS ORCHESTRATION
Service Fabric Containers
Orchestrating Services Containers
Ops Cost Low Medium
App Infrastructure One SDK Custom
Scaling Instance + Partitioning Instance
Service Isolation No, Container, Kernel Container
- 23. Service Fabric
Cluster
Node 1
Node 5
Node 3Node 4
Node 2
Manage
Admin UI PS / CLI
Application
Web Service
Worker Service
Deploy
Web Service
Web Service Web Service
Worker Service Worker Service
Worker Service
Worker Service Worker Service
MANAGEMENT
- 48. LIMITATIONS
Hyper-V Virtualization – Q3 201
Full Linux support – Q4 2017
Stateful services on Linux – Q4 2017
Reverse Proxy on Linux – Q4 2017
Docker Compose support – Q4 2017
Heterogeneous Cluster – Q1 2018
Editor's Notes
- Hybrid Application – Cloud + OnPrem
Application must be hosted on Azure
Lots of Programming Languages
Minimize SysOps / DevOps workload
Simplify migration from Monolith
Heterogeneous Cluster (Future) – Windows + Linux