Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
at
“Top microservices and
fast data experts in the world.”
How Events Are Reshaping Modern Systems
Jonas Bonér

Lightbend CTO
The future is a function of the past - A. P. Robertson
The (local) present is a merge function of
multiple concurrent past...
Stream All the Things!!
Dean Wampler

VP Fast Data Engineering

Lightbend
Hadoop classic batch architecture
Streaming, Fast Data Architecture
Latency Use case Suggested engine
Picoseconds to a few microseconds
(real-time)
Space X rocket
Custom hardware (FPGA), no ...
Other choosing criteria
• Volume of data?

• Process records individually or in bulk?

• How do I want to deploy my app?
O...
“Dean Wampler

StreamAllTheThings.pdf”
http://bit.ly/lightbend-fast-data
Search for:
Using Akka, Spark and Cassandra
To Scale Real-Time Auto Loan
Decisioning At Capital One
Fredrick Crable

Director Software...
• Capital One is the #1 bank in the US for loans

• Every loan request needs to be validated

• Legacy depending on 3rd pa...
End result: a decision performance which runs
faster on smaller hardware.
Very happy with Akka (but I suspect they regret
...
Islands in the Stream: Integrating
Akka Streams and Akka Actors
Colin Breck

Tesla
Gather measurements from
a set of wind turbines
Attempt with actors, one actor per turbine
• Each actor sends a measure to the DB.

• Actor gets an internal counter to 10...
Akka Streams to the rescue!
getMeasurementSource
.groupWithin(1000, 1.second)
.throttle(50, 1.second, 50, ThrottleMode.sha...
Source.queue
Source.actorRef
mapAsync + ask
Sink.actorRefWithAck
Bringing streams & actors together
• Streams can be encap...
Simulating A LOT OF wind turbines
with actor sharding
Final demo
http://blog.colinbreck.com
Speeding up innovation at Verizon

(part of IBM’s talk)
Keyur Shah 

Associate Fellow

Verizon
• Two years ago: massive monolithic app - 2+
months to rollout new features

• Set up a small team and investigated the
po...
They liked it so much that they want to have
all groups in Verizon to adpot it.
Next on the roadmap, try to use all this d...
8 Akka Anti-Patterns you better be aware of
Manuel Bernhardt

Consultant
1. Using mutable state
• use immutable messages

• use queries like ask for state inquiries

• use pipeTo pattern -- inclu...
2. Flat actor hierarchies.
If we don't have a hierarchy, we're missing the
point: the most important thing is the failure
...
Behaviour of catch blocks
in some random study
3. Too many ActorSystems
1. string concatenation
2. non-async logging
3. not turning debug logging off in prod system
4. logging to files (we should ...
4. Lose touch with your hardware
We use a lot of abstractions. 

VM, then docker, then JVM, then Akka.
a. know your hardware (and configure
accordingly)

b. beware of virtualization 

c. run load tests on the same hardware of
...
6. Blocking.
a. use a dedicated dispatcher if you really
must block.

b. if you need to wait, instead of
Thread.sleep, use...
7. Using Akka Remoting directly.
Use Akka cluster instead,
with membership service.
8. Using Java serialization.
Bad performance!
Use a proper binary format from the start (avro,
thrift, kryo), because once...
Reactive party
Thanks!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
Próxima SlideShare
Cargando en…5
×

Reactive Summit 2017 Highlights!

282 visualizaciones

Publicado el

My personal highlights from the Reactive Summit 2017. I loved the conference from the beginning till the end and I shared some of that with my Reactive Amsterdam meetup. All content belongs to the respective speakers.

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Reactive Summit 2017 Highlights!

  1. 1. at
  2. 2. “Top microservices and fast data experts in the world.”
  3. 3. How Events Are Reshaping Modern Systems Jonas Bonér Lightbend CTO
  4. 4. The future is a function of the past - A. P. Robertson The (local) present is a merge function of multiple concurrent pasts - Jonas Bonér val newLocalPresent = observedPasts foldLeft(oldLocalPresent) { _ merge _ }
  5. 5. Stream All the Things!! Dean Wampler VP Fast Data Engineering Lightbend
  6. 6. Hadoop classic batch architecture
  7. 7. Streaming, Fast Data Architecture
  8. 8. Latency Use case Suggested engine Picoseconds to a few microseconds (real-time) Space X rocket Custom hardware (FPGA), no JVM or anything on top Less than 100 microseconds Financial services Actors on the JVM Less than 10 milliseconds Authorising credit cards Fast data streaming like Flink, Akka Streams, Kafka Streams Less than 100 milliseconds Dashboards, Machine learning We can think of micro-batches, so to process records in bulk. Spark / Streaming SQL Less than 1 second to a minute ETL (Extract, Transform, Load) Mini-batches (spark streaming) More than a few minutes Check for fake reviews on a travel website Batch jobs Latency cases to choose a streaming engine
  9. 9. Other choosing criteria • Volume of data? • Process records individually or in bulk? • How do I want to deploy my app? Overview of streaming engines and relation with micro services
  10. 10. “Dean Wampler StreamAllTheThings.pdf” http://bit.ly/lightbend-fast-data Search for:
  11. 11. Using Akka, Spark and Cassandra To Scale Real-Time Auto Loan Decisioning At Capital One Fredrick Crable Director Software Development Capital One
  12. 12. • Capital One is the #1 bank in the US for loans • Every loan request needs to be validated • Legacy depending on 3rd party DSL • Chose Akka after investigation
  13. 13. End result: a decision performance which runs faster on smaller hardware. Very happy with Akka (but I suspect they regret being “too early” in the game)
  14. 14. Islands in the Stream: Integrating Akka Streams and Akka Actors Colin Breck Tesla
  15. 15. Gather measurements from a set of wind turbines
  16. 16. Attempt with actors, one actor per turbine • Each actor sends a measure to the DB. • Actor gets an internal counter to 1000. • Actor gets a period flush with a scheduler. • Actor gets some state to see if we just flushed. • Actor gets some rate limiting mechanism. Actor has become quite wordy and bug-prone.
  17. 17. Akka Streams to the rescue! getMeasurementSource .groupWithin(1000, 1.second) .throttle(50, 1.second, 50, ThrottleMode.shaping) .mapAsync(1)(seq => dbActor ? newMeasures(seq) …)
  18. 18. Source.queue Source.actorRef mapAsync + ask Sink.actorRefWithAck Bringing streams & actors together • Streams can be encapsulated within actors • Actor - Streams communication:
  19. 19. Simulating A LOT OF wind turbines with actor sharding
  20. 20. Final demo
  21. 21. http://blog.colinbreck.com
  22. 22. Speeding up innovation at Verizon (part of IBM’s talk) Keyur Shah Associate Fellow Verizon
  23. 23. • Two years ago: massive monolithic app - 2+ months to rollout new features • Set up a small team and investigated the possible platforms. • They picked up the Reactive platform, completely microservices driven.
  24. 24. They liked it so much that they want to have all groups in Verizon to adpot it. Next on the roadmap, try to use all this data better. Looking at IBM Watson.
  25. 25. 8 Akka Anti-Patterns you better be aware of Manuel Bernhardt Consultant
  26. 26. 1. Using mutable state • use immutable messages • use queries like ask for state inquiries • use pipeTo pattern -- including pipeTo self instead…
  27. 27. 2. Flat actor hierarchies. If we don't have a hierarchy, we're missing the point: the most important thing is the failure tolerance part. No hierarchy == no failure handling.
  28. 28. Behaviour of catch blocks in some random study
  29. 29. 3. Too many ActorSystems
  30. 30. 1. string concatenation 2. non-async logging 3. not turning debug logging off in prod system 4. logging to files (we should stop doing that) 4. Wrong logging a. use Akka's logging facility b. carefully consider the logback appenders, with async variants c. use placeholders: log.debug("{} hell", callback) d. use a logging aggregation like logstash, don’t log to files
  31. 31. 4. Lose touch with your hardware
  32. 32. We use a lot of abstractions. VM, then docker, then JVM, then Akka.
  33. 33. a. know your hardware (and configure accordingly) b. beware of virtualization c. run load tests on the same hardware of the production system (!!!)
  34. 34. 6. Blocking. a. use a dedicated dispatcher if you really must block. b. if you need to wait, instead of Thread.sleep, use a context scheduler.
  35. 35. 7. Using Akka Remoting directly.
  36. 36. Use Akka cluster instead, with membership service.
  37. 37. 8. Using Java serialization. Bad performance! Use a proper binary format from the start (avro, thrift, kryo), because once you are in production it's already too late.
  38. 38. Reactive party
  39. 39. Thanks!

×