digitalocean: microservices as the cloud

34
DigitalOcean: Microservices as the Cloud Phil Calçado @pcalcado http://philcalcado.com

Upload: phil-calcado

Post on 11-Jan-2017

1.144 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: DigitalOcean: Microservices as the Cloud

DigitalOcean: Microservices as the Cloud

Phil Calçado @pcalcado

http://philcalcado.com

Page 2: DigitalOcean: Microservices as the Cloud
Page 3: DigitalOcean: Microservices as the Cloud

How this kind of talk usually goes like…

Page 4: DigitalOcean: Microservices as the Cloud

Big Bad Monolith

Big Bad Database

MAGIC

Super Awesome Microservices

Page 5: DigitalOcean: Microservices as the Cloud

All my stuff is W.I.P.

Page 6: DigitalOcean: Microservices as the Cloud

Iteration 1: The UNIX Way

Page 7: DigitalOcean: Microservices as the Cloud

Big Bad Database

Page 8: DigitalOcean: Microservices as the Cloud

Problem: Need more machines and

datacentres, need to scale

Page 9: DigitalOcean: Microservices as the Cloud

Only vertical scaling

Big Bad Database

Big Bad Database

Page 10: DigitalOcean: Microservices as the Cloud

Iteration 2: Building a VPS

Page 11: DigitalOcean: Microservices as the Cloud

Big Bad Database

Customer Tools

Service

Internal Tools

Service

Page 12: DigitalOcean: Microservices as the Cloud

Problem: VPS are so last week, people want the cloud

Page 13: DigitalOcean: Microservices as the Cloud

Cloud brings even more complexity

Page 14: DigitalOcean: Microservices as the Cloud

Big Bad Database

Customer Tools

Service

Internal Tools

Service

Page 15: DigitalOcean: Microservices as the Cloud

Big Bad Database

Customer Tools

Service

Internal Tools

Service

EVERYTHINGSERVICE

EVERYTHINGELSE

SERVICE

ENTERPRISESERVICE

BUS

Page 16: DigitalOcean: Microservices as the Cloud

Iteration 3: Building a Cloud

Page 17: DigitalOcean: Microservices as the Cloud

Building a cloud means more servers, services,

and datacentresi.e. more essential

complexity

Page 18: DigitalOcean: Microservices as the Cloud

Larger services == Larger state-space

Page 19: DigitalOcean: Microservices as the Cloud

Adding stuff here is easier than creating a new service.

Why?

Big Bad Database

Customer Tools

Service

Internal Tools

Service

Page 20: DigitalOcean: Microservices as the Cloud

https://www.flickr.com/photos/photophreak/

Because

Page 21: DigitalOcean: Microservices as the Cloud

chef/puppet/ansible /that-thing-on-hacker-news

can be a pain, but it’s not the fundamental problem

Page 22: DigitalOcean: Microservices as the Cloud

Everything was managed by chef.

Everything was a Pull Request.

Everything needed code review.

Page 23: DigitalOcean: Microservices as the Cloud

Everything was painful.

Everything was slow.

Page 24: DigitalOcean: Microservices as the Cloud

This is when I apply my bias experience

Page 25: DigitalOcean: Microservices as the Cloud

Back to basics

• Rapid provisioning

• Basic monitoring

• Rapid application deployment

http://martinfowler.com/bliki/MicroservicePrerequisites.html

Page 26: DigitalOcean: Microservices as the Cloud

Legacy Services Databases

How often do they change?

Couple times per month

Couple times per year

Couple times per day

Page 27: DigitalOcean: Microservices as the Cloud

Legacy Services Databases

How often do they change?

Chef for now

Chef

Something else

Page 28: DigitalOcean: Microservices as the Cloud

1. Rapid provisioning

you should be able to fire up a new server in a matter of hours

what about 55 seconds?

Page 29: DigitalOcean: Microservices as the Cloud

2. Basic monitoring

detecting technical issues but it's also worth monitoring business issues

Page 30: DigitalOcean: Microservices as the Cloud

3. Rapid application deployment

you need to be able to quickly deploy [services], both to test environments and to production

Page 31: DigitalOcean: Microservices as the Cloud

This is the first step…

Page 32: DigitalOcean: Microservices as the Cloud

…but experience tells me

Page 33: DigitalOcean: Microservices as the Cloud

…and next up

Pre-requisites

BFFs

Programming Language Thunderdome

Adopt GRPC or thrift

Build a services directory

Get bored and go do something else

Page 34: DigitalOcean: Microservices as the Cloud

You should consider being part of this

http://bit.ly/do-back-end-software-engineer

Phil Calçado @pcalcado

http://philcalcado.com