SlideShare a Scribd company logo
MICRO-SERVICES:
ANOTHER WAY
Mykhailo Sorokovskyi
INTRODUCTION
13
Distributed & Highload
Cloud Solutions
WorkExperience
Languages Focus
AGENDA
Is Monolith a real problem?
Why Micro-Services?
How we gonna do Micro-Services?
Why Service Fabric?
What is Another Way?
IS MONOLITH
A REAL PROBLEM?
MONOLITH
Azure
AWS
Desktop
Browsers
80% backend logic 20% backend logic
Monolith
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
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
WHY MICRO-SERVICES?
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
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
HOW WE GONNA DO
MICRO-SERVICES?
REQUIREMENTS - SYSOPS
Infrastructure
Platforms
Scalability
Hardware
REQUIREMENTS - DEVOPS
Script minimization
Upgrade in single command
High Availability & Self-Healing
Service Discovery
Hardware Constraints
DEPLOYMENT – SERVICE PER VM
DEPLOYMENT - CONTAINERS
http://img01.deviantart.net/3ceb/i/2012/206/e/2/blow_your_brains_out_skull__better_quality__by_brynios-d58klqj.jpg
WHY WE CHOSE
SERVICE FABRIC?
WHAT IS
Service Orchestrating Tool
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 Fabric
Cluster
Node 1
Node 5
Node 3Node 4
Node 2Resource Manager
Cluster Manager
Naming Service
Image Store
Health Manager
CLUSTER
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
PLATFORMS
SDK
PROGRAMMING MODELS
Reliable Services
 Stateful
 Stateless
Actors
SDK No SDK
Containers
Guest Executable
RELIABLE SERVICES
Cluster State
Stateless Stateful
State
ACTORS
Add Actor
Subtract Actor
Node
XY
ABXY
AB
Calculator
API
User XY
User AB
CONTAINERS
Service Fabric
Cluster
Node
Node
NodeNode
Node
Windows
Linux
GUEST EXECUTABLE
WHAT IS ANOTHER WAY?
ORCHESTRATING / SCALING / SELF-HEALING
Usually Another Way
Resource Manager
Failover Manager
Health Manager
SERVICE DISCOVERY
Usually Another Way
Eureka
Naming Service
CONFIGURATION
Usually Another Way
Image Store
LOAD BALANCING
Ribbon
Usually Another Way
Naming Service
Reverse Proxy
STATE
Usually Another Way
Reliable Collections
HEALTH / MONITORING
Eureka
Usually Another Way
Health Manger
TESTABILITY
Usually Another Way
Fault Analysis Service
ACTORS
Usually Another Way
Actors SDK
DEMO
SUMMARY
WHEN TO USE
WHEN TO USE
WHEN TO USE
WHEN TO USE
WHEN TO USE
WHEN TO USE
You want to try Another Way 
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
Microservices: Another Way
linkedin.com/in/mykhailo-sorokovskyy-25765683 mikle.sorokovsky@gmail.com
msorokovsky@lohika.comSkype: 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

More Related Content

Microservices: Another Way

Editor's Notes

  1. 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