18
Reactive for DevOps Part 2: Reactive Architectures Using Microservices Lutz Huehnken @lutzhuehnken

Reactive for DevOps - Part 2: Reactive Architectures with Microservices and Conductr

Embed Size (px)

Citation preview

Reactive for DevOpsPart 2:

Reactive Architectures Using Microservices

Lutz Huehnken @lutzhuehnken

Reactive for DevOps

DevOps: a software development method that stresses communication, collaboration, integration, automation, and measurement of cooperation between software developers and other information-technology (IT) professionals. Wikipedia

Reactive: Responsive, Resilient, Elastic & Message Driven

Reactive DevOps

2

http://www.reactivemanifesto.org/It’s for Developers AND Operations

Reactive for DevOps

What is ConductR?

3

ConductR is a solution for deploying and managing reactive applications across a cluster of machines.

Reactive for DevOps

Microservices

4

The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process. Martin Fowler

Microservice Trade-offs

5

Again, according to Mr. Martin Fowler

- Distribution

- Eventual Consistency

- Operational Complexity

Reactive for DevOps

Microservice Trade-offs

6

- Distributed systems are harder to program, since remote calls are slow and are always at risk of failure.

- Maintaining strong consistency is extremely difficult for a distributed system, which means everyone has to manage eventual consistency.

Needs to be handled by your application. Akka will help you there.

Reactive for DevOps

Reactive for DevOps

Microservice Trade-offs

7

- You need a mature operations team to manage lots of services, which are being redeployed regularly.

And/or a tool that significantly simplifies that!

Reactive for DevOps

Operational Complexity

8

So what do you really need in your operations environment to simplify things?

- Convenient deployment format (e.g. in single-file format, ensuring consistency)

- Convenient interface (to deploy, run, scale)- Service Lookup- Resiliency

Reactive for DevOps

Deployment format

9

ConductR bundles

- Contain all library dependencies of your app - And the configuration- SHA is generated and encoded in the file name- Unique identification, and consistency check

- easy to create, with sbt or shazar

ferry-boat-1.0-274dfbcb2946a41d4fa5d259578a9761aa0bf2a49d3b397f9cd2c6d772c78577.zip

Reactive for DevOps

Deploy, run, scale

10

- ConductR control protocol is a REST api- Great for automation, building REST clients should

be easy enough - In fact, we provide a simple one for the command

line

conduct load ferry-boat-1.0-274dfbcb2946a..c78577.zipconduct run 274dfbcconduct run —scale=3 274dfbcconduct stop 274dfbcconduct unload 274dfbc

Reactive for DevOps

Service lookup

11

- Lookup service by assigned name- No need for additional infrastructure- „static“ (fail fast) or „dynamic“

BundleKeys.endpoints := Map( "ferry" -> Endpoint("http", services = Set(URI("http://:9666/ferry"))))

===

LocationService.getLookupUrl("/ferry", "http://127.0.0.1:9666")

Reactive for DevOps

Resilience

12

- Any operations environment can only do so much. There’s no magic.

- ConductR improves resiliency through:- Location transparency / proxying- handling node failure- the control protocol

HA Proxy integration (incl. re-configuration through cluster events) for resiliency

Some Code (if there’s time)

Questions?

• Full Lifecycle Support• Access to our engineering team; Best practices

• Support Service Level Agreements (SLAs)• Up to 1 hour 24/7 SLA

• Certified Build• Validated integrations; Backwards compatible patches

• Training and Consulting• Commercial Licensing Options• Ongoing Knowledge Transfer• Developer Recruitment and Speaking Opportunities• http://www.typesafe.com/subscription

Helping you thrive: Typesafe Project Success Subscription (PSS)

Suggested Next Steps

WHITE PAPER

Typesafe ConductRWhite Paper

GET WHITE PAPER

DEMO

Typesafe ConductRDemo

WATCH NOW

GUIDE

Typesafe ConductREvaluation Guide

DOWNLOAD NOW

Thank you!

Lutz Huehnken @lutzhuehnken