empowering digital transformation with microservices€¦ · what are microservices monolith vs...

36
EMPOWERING DIGITAL TRANSFORMATION WITH MICROSERVICES

Upload: others

Post on 07-Jun-2020

32 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

EMPOWERING DIGITAL TRANSFORMATION WITH MICROSERVICES

Page 2: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

AGENDA

Intro

What is Digital transformation

Why Digital transformation

What are Microservices

Monolith vs Microservices

Use Case Microservices solution & Best practices

Q & A

Page 3: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

Dave Chen

Principal Software Engineer

Page 4: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

CASA MILÀ

Page 5: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

LA SAGRADA FAMÍLIA • Under Construction

for Over a Century

• Antoni Gaudí

• Passion

• Dedication

• Hard work

• Construction is now

accelerated by 3-D

Printing Technology

Page 6: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

WHAT IS DIGITAL TRANFORMATION

Digital Transformation (DT or DX) is the use of new, fast and

frequently changing digital technology to solve problems

often utilizing cloud computing, reducing reliance on user

owned hardware but increasing reliance on subscription

based cloud services. Some of these digital solutions enhance

capabilities of traditional software products (e.g. Microsoft

Office compared to Office 365) whilst others are entirely

cloud based (e.g. Google Docs).

Source: https://en.wikipedia.org/wiki/Digital_transformation

Page 7: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

VISION ORGANIZATION CUSTOMER INSIGHT TECHNOLOGY

DIGITAL TRANSFORMATION

Page 8: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

DIGITAL TRANSFORMATION PLAYERS:

Reset customer experience and disrupted industries.

Page 9: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

WHY DIGITAL TRANSFORMATION

Page 10: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

SO WHAT IS THE LESSON HERE:

IT’S ABOUT FAILURE TO CHANGE

Page 11: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal
Page 12: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

WE NEED SOMETHING TO HELP WITH THE CHANGE SPEED & AGILITY DRIVE INNOVATION AND GROWTH

Continuous delivery through Agile development

Seamless workload portability based on need at any point of the time

Collaborative innovations on top of enterprise system

Secure interaction across on premise IT, hybrid & public clouds

Page 13: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

MICROSERVICES CAN HELP ON THESE THINGS

Page 14: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

MONOLITH VS MICROSERVICES

Monolithic

Microservices

• API driven, simple purpose component built around

business capabilities.

• Short development cycle & CI/CD support

• Runs on containers & deployed to multiple nodes

• Single unit of application support

multipurpose

• Development is long and inflexible cycle

• Deployed to a single node

Page 15: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

MICROSERVICES CHARACTERS

A suite of small services

Automation

with CI/CD

Build around

business

capabilities

Running in

its own

process Communicating

with lightweight

mechanisms

Independently

deployable

Service

Decentralize

all the things

Page 16: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

LET’S LOOK AT A USE CASE

Cloud based IoT solution

Page 17: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

PROBLEM WITH THIS SOLUTION

• Unable to scale

• Everything is tightly coupled

• If a service crashed, it brings the whole

system down

• Hard to troubleshooting problems

• Communication between services is overly

complicated and slow

• Not independently deployable

• Difficult to maintain the system

• New features take months to get deployed

Page 18: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

How can we fix this?

Page 19: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#1 ISOLATE ALL THE THINGS

• Define service boundary

• Single Responsibility Principle

(Do one thing, and Do It really well)

Bounded Context

Notification

Service

Notification

Service

Notification

Service

Notification

Service

Business Capability

Bounded Context

Scheduler

Service

Scheduler

Service

Scheduler

Service

Scheduler

Service

Business Capability

Page 20: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal
Page 21: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#2 EMBRACE ASYNCHRONOUS PROCESSING

• Asynchronous HTTP Request Processing

• Message/Event Driven

• RabbitMQ

• Apache Kafka

Page 22: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

Device

Registration

Device

provisioning

Certificate

Management

Certificate

Authority

HTTP SYNC

REQUEST HTTP SYNC

REQUEST

HTTP SYNC

REQUEST HTTP SYNC

REQUEST

Device

Registration Device

provisioning

Certificate

Management

Certificate

Authority

HTTP SYNC

REQUEST

Kafka

Page 23: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#3 USING PROTOCOL BUFFERS FOR LARGE DATA SERIALIZATION

• Fast serialization /deserialization

• more compact messages

• have a schema of the data

• backward compatibility support

Page 24: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#4 DESIGN FOR FAILURES

• Use HTTP timeout

• Automatically retry failed requests

• Use circuit breaker pattern

• Netflix hystrix

• Akka circuit breaker

• Concurrency control

Page 25: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

HTTP TIMEOUT

Page 26: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

RETRY FAILED REQUESTS

Page 27: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

CIRCUIT BREAKER PATTERN

Page 28: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

CIRCUIT BREAKER PATTERN

Source: https://github.com/Netflix/Hystrix/wiki/How-it-Works#isolation

Tenant B Tenant A

Page 29: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

CONCURRENCY CONTROL IN DISTRIBUTED ENVIRONMENT

• Two types of concurrency control

• Pessimistic and Optimistic

• HTTP Etag and Optimistic locking

Page 30: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#5 API GATEWAY

• Security improvement

• Use industrial security standard

• OAuth2

• OpenID

• Reduces the number of requests/roundtrips

Device

Registration

Command

Delivery

Notification

Service

Event

Searching

API G

ate

wa

y

Authorization

Server

Access

Token

Access

Token

JWT

Token

JWT

Token

Page 31: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#6 EMBRACE DEVOPS PRACTICES

• Continuous integration (CI)

• Continuous delivery (CD)

• Automated testing

• Blue-green deployment

Plan

Develop

Test Commit

Create

Build

Package

Release Monitor

Config

Dev Ops

Page 32: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

#7 MONITORING & LOGGING

• Monitor tools

• Splunk

• Zipkin (distributed tracing system)

• Logstash

• Kibana

• Elasticsearch

• Newrelic

Page 33: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

A NEW SYSTEM

Device

Registration

Device

Provisioning

Certificate

Management Batch

Processing

Event Searching

Command

Delivery

Software

Delivery

Schedule

Service

User

Management

Rule Processing

Management Advanced

Learning

Notification

Service

Event Bus

(Pub/Sub channel)

API G

ate

way

Page 34: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

RESULTS OF THE NEW SYSTEM

SCALABILITY SECURITY AGILITY RESILIENCY MAINTAINABILITY

Page 35: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

SUMMARIES

• Digital transformation is essential to every business

• Digital Transformation can happen very quickly, and if

you miss it, it can be very unforgiving

• Microservices can help digital transformation

• Enable business to adopt changes quickly

• Efficient scalability

• Increase security

• Increased system resiliency

• Service Agility

• Team Agility

• Better Maintainability

Page 36: Empowering Digital Transformation with Microservices€¦ · What are Microservices Monolith vs Microservices Use Case Microservices solution & Best practices Q & A . Dave Chen Principal

QUESTIONS?