supervise your akka actors

35
Supervise your akka actors Nicolas Jozwiak

Upload: xebia-france

Post on 05-Dec-2014

215 views

Category:

Devices & Hardware


0 download

DESCRIPTION

Vous avez entendu parler des acteurs Akka et vous vous demandez quels types d’architectures vous pouvez mettre en place, ou comment les intégrer dans votre architecture ? Et quelle est la courbe d’apprentissage ? A travers un retour d’expérience, nous répondrons à ces questions et vous montrerons comment en trois mois nous avons mis en place une architecture basée sur Akka et Spray en Scala. Par Nicolas Jozwiak

TRANSCRIPT

Page 1: Supervise your Akka actors

Supervise your akka actorsNicolas Jozwiak

Page 2: Supervise your Akka actors

Programmeur and agiliste!!@njozwiak

Page 3: Supervise your Akka actors

Contents•Context !•Why Akka and Scala ? !•Solution !•DevOps !• Issues and knowledges !•Results

Page 4: Supervise your Akka actors

Context

Page 5: Supervise your Akka actors

Talend

offers

Web Service offers

Logstash ElasticSearch UI result

syslog

offersFTP

Page 6: Supervise your Akka actors

TalendWeb Service

offers

FTP

1 Read FTP

2

Translate Xml in Jobs

3 Ask Web Service for diff

4 Save

offers

offers

Page 7: Supervise your Akka actors

•Not happy customers • Lost process •Difficult to replay •Dashboard not

efficient

Page 8: Supervise your Akka actors

• Business logic everywhere • Talend processing

complex and not known • Approximate error

handling • Slow integration

Page 9: Supervise your Akka actors

• Increase processing reliability

• Centralize business logic

• Enhance processing performance

Page 10: Supervise your Akka actors

Why Akka and Scala ?

Page 11: Supervise your Akka actors

• Isolate business code in actors

• Events to process

• Fault tolerance

• Supervision strategy

• Performance

Why Akka ?

Page 12: Supervise your Akka actors

• Team knows Scala (a little)

• Try Scala in the company

• Scala with Akka rocks !

Why Scala ?

Page 13: Supervise your Akka actors

Solution

Page 14: Supervise your Akka actors

Web Service offers

FTP

1

2

3

4

Read FTP

Translate Xml in Jobs

Ask Web Service for diff

Save

TalendAkka

offers

offers

Page 15: Supervise your Akka actors

Supervision

• Every single actor has a default supervisor strategy •Means manage Actors failures • Send a notification to its supervisor • Clean separation of processing and error

handling

Page 16: Supervise your Akka actors

Actor system

Actor1 Actor2

A D

B C

A

B CException

Page 17: Supervise your Akka actors
Page 18: Supervise your Akka actors

MasterSupervisor

FileSystem Supervisor

FileCrawler

Xml Supervisor

XmlReader

Posting Supervisor

DiffActorPosting Service

Syslog

DeadLetterListener

WorkStatus

Page 19: Supervise your Akka actors

DevOps

Page 20: Supervise your Akka actors

•No guarantee on message delivery

•Have some metrics : ‣Logs ‣Metrics with Graphite ‣Ostrich (Twitter) ‣Kamon IO

Page 21: Supervise your Akka actors
Page 22: Supervise your Akka actors
Page 23: Supervise your Akka actors
Page 24: Supervise your Akka actors
Page 25: Supervise your Akka actors

• Endpoints access with Spray : ‣Statistics ‣HealthCheck ‣Workflow state

Page 26: Supervise your Akka actors

Issues & knowledges

Page 27: Supervise your Akka actors

• Actor system design • An actor with lots of processing • Unit testing • Actors and Futures

Page 28: Supervise your Akka actors

•Mind shift

• Business events

•Delegate to actors

• Isolate business rules

• Behaviour testing

Page 29: Supervise your Akka actors

•Domain Driven Design applied

‣Make implicit concepts explicit

‣Aggregates

Page 30: Supervise your Akka actors

MasterSupervisor

Xml Supervisor

XmlReader

DeadLetterListener

Entry point

Never call !

Page 31: Supervise your Akka actors

Results

Page 32: Supervise your Akka actors

• In production

• Proactive way

•New dashboard

• Processing time

•Web Service to optimize

• FTP to remove

Page 33: Supervise your Akka actors

Conclusion

Page 34: Supervise your Akka actors

• Akka is very powerful ‣Complex underlying notions ‣Active ecosystem

• KISS

Page 35: Supervise your Akka actors

Thank you for watching