Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Large Scale Neos

Large Scale Neos

I have no doubt, that Neos is a mature and a really powerful framework which could be trusted to power even the largest web applications.

But there are some things to take care of, if you develop a big Neos project. In this talk I want to show you some best practices and learnings from developing our recent Neos projects at punkt.de.

Daniel Lienert

May 10, 2019
Tweet

More Decks by Daniel Lienert

Other Decks in Programming

Transcript

  1. Large Scale Neos

    View Slide

  2. Daniel Lienert
    • Scrum Master / Software Architect

    @ punkt.de / Karlsruhe
    • Neos Core Team Member
    • @dlienert

    View Slide

  3. What needs to be scalable?
    Code Data Traffic

    View Slide

  4. Code Structure

    View Slide

  5. In doubt, create a new package.

    View Slide

  6. Data

    View Slide

  7. Estimate project volumes.

    View Slide

  8. Develop and test with real world
    volumes whenever possible.
    Flowpack.NodeGenerator
    Sitegeist.MagicWand

    View Slide

  9. Neos Entities
    Project Specific
    Entities
    Content
    Assets
    Accounts
    Adresses
    Products

    View Slide

  10. Traffic

    View Slide

  11. View Slide

  12. Integrators
    Developers (DevOps)

    View Slide

  13. Integrators

    View Slide

  14. Fusion

    View Slide

  15. Property Evaluation

    View Slide

  16. Property Evaluation

    View Slide

  17. Property Evaluation

    View Slide

  18. Property Access

    View Slide

  19. title
    News Article
    author
    categories
    relatedArticles
    Author
    Category A
    Category B
    Category …
    Article 1
    Article 2
    Article …
    title
    News Article
    author
    Author
    title
    News Article
    author
    categories
    Author
    Category A
    Category B
    Category …
    title
    News Article

    View Slide

  20. Property Access

    View Slide

  21. FlowQuery

    View Slide

  22. Find And Filter

    View Slide

  23. Sort And Limit

    View Slide

  24. https://www.antaresnet.com/wp-content/uploads/2018/07/
    Elasticsearch-Logo-Color-V.png
    Flowpack.ElasticSearch.ContentRepositoryAdaptor

    View Slide

  25. Find And Filter

    View Slide

  26. Sort And Limit

    View Slide

  27. Developer
    (DevOps)

    View Slide

  28. Iteration

    View Slide

  29. FindAll()

    View Slide

  30. Use an Iterator

    View Slide

  31. Parallelization

    View Slide

  32. Slicer
    Worker
    Worker
    Worker
    Worker
    Work

    View Slide

  33. Flowpack.JobQueue.Common
    Flowpack.JobQueue.
    Doctrine
    Flowpack.JobQueue.
    Redis
    Flowpack.JobQueue.
    Beanstalkd And more …

    View Slide

  34. View Slide

  35. Caching

    View Slide

  36. Sandstorm.OptimizedRedisCacheBackend

    View Slide

  37. MOC.Varnish

    View Slide

  38. Log Management

    View Slide

  39. Enrich your Logs with Context

    View Slide

  40. View Slide

  41. Neos
    Limitations

    View Slide

  42. Node Tree

    View Slide

  43. PunktDe.Archivist

    View Slide

  44. Asset Usage

    View Slide

  45. PunktDe.Elastic.AssetUsageInNodes

    View Slide

  46. Wrap Up

    View Slide

  47. @dlienert daniellienert

    View Slide