microservices: another way
TRANSCRIPT
AGENDA
Is Monolith a real problem?
Why Micro-Services?
How we gonna do Micro-Services?
Why Service Fabric?
What is Another Way?
MONOLITH - SCALABILITY
80% backend logicAzure
Redis: Cache
Redis: WebSocketsBackplane
SQL Store
MonolithInstance 1
MonolithInstance 2
MonolithInstance 3
MonolithInstance N
Stateless & Scalable
Redis
SQL – limited scale –
10% load
PROBLEM - TECHNICAL
1 Language / Platform limitation
Module cannot be scaled separately
DB Schema sharing
PROBLEM - BUSINESS
Acquiring several companies
Expecting growth ~ x5 in a year
Targeting for Hybrid solution
SCALING & HARDWARE
~ 20 Modules
3 – High Load
1 – requires Memory
GPUModule 1
GPUModule 2
SSDModule 1
SSDModule 2
Node with SSDNode with GPU
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
HYBRID (CLOUD + ON PREMISES)
Cloud
Service 1
Service 2
Data Service 1
Data Service 2
Service 3
Regular Tenants
Classified Tenants
Tenant DC
REQUIREMENTS - DEVOPS
Script minimization
Upgrade in single command
High Availability & Self-Healing
Service Discovery
Hardware Constraints
http://img01.deviantart.net/3ceb/i/2012/206/e/2/blow_your_brains_out_skull__better_quality__by_brynios-d58klqj.jpg
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
Service FabricCluster
Node 1
Node 5
Node 3Node 4
Node 2Resource Manager
Cluster Manager
Naming Service
Image Store
Health Manager
CLUSTER
Service FabricCluster
Node 1
Node 5
Node 3Node 4
Node 2
Manage
Admin UI PS / CLI
Application
Web Service
Worker ServiceDeploy
Web Service
Web Service Web Service
Worker Service Worker Service
Worker Service
Worker Service Worker Service
MANAGEMENT
PROGRAMMING MODELS
Reliable Services
Stateful
Stateless
Actors
SDK No SDK
Containers
Guest Executable
ORCHESTRATING / SCALING / SELF-HEALING
Usually Another Way
Resource ManagerFailover ManagerHealth Manager
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
linkedin.com/in/mykhailo-sorokovskyy-25765683 [email protected]
[email protected]: mikle.sorokovsky
LINKS
https://github.com/msorokovsky/servicefabricdemo
https://docs.microsoft.com/en-us/azure/service-fabric/
https://github.com/Azure-Samples/service-fabric-java-getting-started
https://channel9.msdn.com/Shows/Cloud+Cover/Episode-210-Service-Fabric-Series-1-of-3-Introduction