going reactive in the land of no

Post on 21-Feb-2017

132 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Going Reactive in the Land of NoSean Walsh | Field CTO

(@SeanWalshEsq)

reactivemanifesto.org

Reactive: the architecture for modern, scalable applications

Forces

• Exploding user bases

• Cheaper and more available hardware

• IoT

• Science

Something was standing between my large health and wellness client and their customers. That something was about to put them out of business.

A Monolith• Expensive to maintain, lack of in-house capability due to

repeated outsourcing

• Non distributed

• Dependency on a custom and very expensive Oracle installation

• Ops heavy rather than developer heavy

• Effectively…

A Big Ball of Mud

Late 2014 - A false start•Not “all in”•Large team engaged anyway•Missing real requirements

churn…

Early 2015

Let’s start over but this time we do it wrong different, we do it my way! - That One Guy

Same leadership

churn churn churn…

Sr Director No

Spring Boot

Groovy Gpars Actors

Gradle

SBT

MavenJava

Scala

Akka

AnsibleGroovy

Department of Redundancy Departmentpopulation Sean and Nicholas

a final attempt at purity - one sprint to prove it

Finally the Light• Full company engagement (even Oprah!)• New, modern CTO working in close partnership with my team

and others• Real requirements and mandatory Ops support• Good news and bad news

No No Noooo• Still risk adverse, CQRS and Event Sourcing sounded scary

so NO• Ops was now devops and guess that their favorite word

was?• NO clustering, NO Cassandra, NO Kafka

• And then were three - Sayre joins the team• They let us use Play/Akka/Cassandra• We had customers!• Core software was all rebuilt from the ground up

Accomplishments• Unheard of velocity in “core” - Play - simplicity• Core fully production ready by November of 2015• 12 microservices - billion+ transactions per day capable• Modern aggregated monitoring and logging provided

incredibly quick root cause analysis• Never before seen resilience and application stability

A Bit too much Compromise• Stateless applications easier to reason about at first but

cost plenty in the long run• Perceived investment and value in Cassandra• Final waterfall caused some costly non-DDD design• Devops spaghetti in the form of Ansible scripts• Poor mans CQRS and Event Sourcing• And oh man no Kafka and now look…

THIS

What we really needed

Other Lessons Learned• Legacy, immature mobile, other contaminating feeds• Continuous delivery and deployment but tricky due to

service coupling• Migration not as an afterthought• Oh and don’t ever give a developer both a load test

script and access to production

Strive for Yes• Don’t roll your own• Need for clustered middleware• More emphasis on application tier• Need for durable pub/sub• Simpler devops abstractions - orchestration - dcos• Less code invasive monitoring• Fast data pipeline for anti-corruption

1) The company is now on the same playing field as the disruptors

2) What was a monolith, now a platform for creative new product ideas

3) Thanks to the above and a famous 40 Lb weight loss the stock is starting to rebound

Build modern systems for the modern world

www.lightbend.com

top related