microservices talk

24
Microservices Who, what, where, when, whyhow?

Upload: william-oneill

Post on 14-Apr-2017

276 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Microservices talk

Microservices

Who, what, where, when, why… how?

Page 2: Microservices talk

Who we are

Matt West

Bill O’Neill

Page 3: Microservices talk

Definition: Microservices (Squishy at best)

Page 4: Microservices talk

Start With Service Oriented Architecture (SOA)

Architectural pattern in which application components provide services to other components via a communications protocol (typically over a network)

Page 5: Microservices talk

SOA + Marketplace = $ + ? + $$ + ?? + $$$ + ???

Page 6: Microservices talk

Meanwhile in a galaxy far far away...

Page 7: Microservices talk

as well as agile methodologies momentum

Conway’s Law:

organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations

In other words smart, small, loosely coupled, cross-functional teams started to create independent components to match their structure.

Page 8: Microservices talk

Microservice Characteristics

- Like SOA but “smaller”- Many small services- Polyglot (Use the best language for the job)- Database “in” the service (again based on need)- Versioned independently- Deployed independently- Scale independently

Page 9: Microservices talk

*Shamelessly stolen from Martin Fowler

Page 10: Microservices talk

Who does this?

*http://blogs.wsj.com/cio/2015/10/05/innovate-or-die-the-rise-of-microservices/

Page 11: Microservices talk

And most importantly...

Page 12: Microservices talk
Page 13: Microservices talk

Deployment and Operations

● Scalability● Reliability● Metrics● Security● Continuous Deployment

Page 14: Microservices talk

Making Microservices Possible

● Affordable Infrastructure - AWS○ Used by all sized companies, start-ups to Fortune 500○ Grew by 71% last year

● Process Isolation○ Physical Machine○ Virtual Machine○ Linux kernel virtualization → Docker

■ Made possible using Linux Control Groups (2007, v2.6.24) and Namespaces

■ Top 20 most active project on Github■ Supported by IBM, Google, Cisco, Red Hat

Page 15: Microservices talk

Docker

● Lightweight○ Share same kernel

○ More efficient use of resources

○ Layered filesystem

● Open● Secure

Page 16: Microservices talk

Monolith

Monolith

Scalability

Page 17: Microservices talk

Monolith

Reliability

Page 18: Microservices talk

Tracing (debugging production systems)

Monolith Monolith

Page 19: Microservices talk

Solution - Log Aggregation

Page 20: Microservices talk

Service-to-Service Security

Monolith

● HTTP(S) basic auth● SAML/OpenID● Client certs● HMAC over HTTP● HTTPS● API keys

Page 21: Microservices talk

Other Concerns...

● Semantic Versioning (x.y.z)○ Major○ Minor○ Build

● Separate data stores● Code reuse and shared

libraries● Transactional boundaries● Reporting● Service discovery

● Monitoring○ Health checks○ Correlation IDs○ Synthetic monitoring○ Metric tracking

● Testing○ End-to-end testing○ Test journeys○ Consumer driven tests

○ Tests after production (Canary testing)

● Caching● Auto-scaling

Page 22: Microservices talk

Continuous Deployment

● Allows parts of your application to update independently ● Don’t need huge regression test cycles to fix a bug● Can be rolled out using canary testing● Can be recalled quickly● Allows teams to operate independently● Features can be rolled to production independently● Supports agile workflow● Supports Conway’s Law

Page 23: Microservices talk

Typical Continuous Deployment Pipeline

Page 24: Microservices talk

We are hiring! http://centricient.com/