microservices in go lang

Post on 16-Apr-2017

56 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Microservices in GO

SHAKIL AKHTAR

A World of Microservices

Monolithic vs Microservices

Monolithic Microservices

Monolithic Microservices

Product

Inventory

Orders

Account

Data Access

Web Layer

DBGateway

Inventory

Orders

Account

Product

Client

Client

Client

Monolithic Architecture drawbacks● Huge code base

● Hard to manage

● Difficult Continuous Integration

● Difficult application Scaling

● And so on...

Go… Microservices

Autonomous

Small

Focused

Benefits of Microservices● Mixed Technology can be used● Resilience● Ease of Deployment● Composability● Replaceable

A Good ServiceLoose Coupling

High Cohesion

Shared & Hidden Models

Hammer on Approach

Start from Monolith Application

&

Split Later (Refactoring)

Building Microservices in GO● Business Domain Centric ● Build a Great Wall of China. Protect Stuff with security. ● See no evil, hear no evil● Discover your services● Gateway your watchman● Messaging/events● Think serverless architecture

A Technical Dive● Service Discovery ● Load Balancing● Timeouts & Exceptions● Rate Limiting● Caching● Failure Detection● Metrics & Tracing● Versioning● Context Propagation

Business Domain Centric● Automated deployment

o Also good for monolith applications● Exposure to other systems

o Endpoints● Provisioned storage

● If any● Scalability and load balance

o Depending on resiliency requirementso double-up the infrastructure & load balance service

Clients

Micro service

Protect your stuff● Service Accessibility(Authentication)

o OAuth, Goauth2● Authorization

o ACL, JWT etc.

Clients

Micro service Micro service

Authentication

See no evil, hear no evil● While Monitoring you need tools like

o Aggregating logs are difficult for 100 of microservices Logger

● Performance Monitoringo Easy for single serviceo What about if many?

Clients

Micro service

Logging

Performance

Auth Micro service

Authentication

Garfana

Trace with ZipKinlogging

Discover your services● Service Registry

o Search your services● Abstract the registry

o A new component● Help identifying decommissioned services● Versioning ● Help in preparing dependency graph

Clients

Authentication

Micro service

LoggingPerformance

Auth Micro service

Service Discovery

Micro service

Gateway your watchman● Generalized security● Performance Metrics cloud be ● recorded for all requests● Auditing● Request Transformation● Routing & Combination

Clients

API Gateway

Authentication

Micro service

LoggingPerformance

Auth Micro service

Service Discovery

Micro service

Events● Task Scheduling

o Simple by dropping events● Subscribe for specific events

o Your message handler becomes simple microservice

● Expose your subscribe functionality to external Clients to handle various notifications

Clients

API Gateway

Authentication

Micro service

LoggingPerformance

Auth Micro service

Service Discovery

Micro service

Events

Queue

Think serverless architecture● Standardize your microservices● Focus on your processing routine not on writing microservices always● FaaS● Reduce cost● Easy to scale independent services triggered to action by events

Rate Limiting

Caching

Versioning

Custom Router

Demo

Summarymicroservices Microservices constructs

Thank You!

top related