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
• 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