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

Don't build framework, Build platform

Don't build framework, Build platform

エムスリーさんのTech Talk #92で話したものです。
https://yoskhdia.hatenablog.com/entry/2018/05/11/212712

Yoshitaka Okuda

May 21, 2018
Tweet

More Decks by Yoshitaka Okuda

Other Decks in Programming

Transcript

  1. DON’T BUILD
    FRAMEWORK,
    BUILD PLATFORM
    - Empower high flexibility and scalability in
    the enterprise with good design principles -
    2018/05/11 M3 Tech Talk #92
    @yoskhdia

    View Slide

  2. Hello!
    ScalaMatsuri2018 CfP(落選)
    2

    View Slide

  3. Using Akka?
    Akka is awesome & flexible.
    However…
    Systems in PRODUCTION
    requires:
    ▸ Logging
    ▸ Monitoring
    ▸ Security
    ▸ etc...
    3

    View Slide

  4. Flexibility
    brings us
    many
    choices but
    often means
    making
    chaos
    “High flexibility”
    has a trade-off.
    We DON’T want
    each team to
    implement their
    non-functional
    requirements.
    We want to focus
    on the business
    domain.
    4

    View Slide

  5. Don’t hide
    open
    knowledge
    Many people often choose to
    build their own framework for
    covering their requirements.
    However, it forces developers
    to learn the framework’s
    SPECIAL SHINY AWESOME
    PRIVATE API.
    This is a risk.
    5
    Any Good Toolkit
    (Akka, Spring, etc...)
    Your own
    Framework

    View Slide

  6. One
    approach
    6
    Any Good Toolkit
    (Akka, Spring, etc...)
    Your own
    Framework
    Any Good Toolkit
    (Akka, Spring, etc...)
    Your Infrastructure
    Thin Platform
    ▸ Don’t build
    framework
    ▸ Build platform

    View Slide

  7. I want to
    introduce
    squbs
    squbs is:
    ▸ Developed by PayPal
    ▸ NOT framework
    ▸ Suite of components
    enabling standardization and
    operationalization of Akka
    Overview Introduction - squbs
    7

    View Slide

  8. “While squbs provides a
    server infrastructure, it
    does not define a
    framework.”
    - squbs Top page
    8

    View Slide

  9. 5 Design
    principles of
    squbs
    ▸ Separation of
    Concerns
    ▸ Loose Coupling
    ▸ DRY
    ▸ Minimize
    Duplication of
    Effort
    ▸ Thin Platform
    Principles of squbs Design - squbs
    9

    View Slide

  10. Separation
    of Concerns
    “Allowing infrastructure to plug in
    infrastructure concerns without
    disturbing the application in any way.”
    ▸ Separate non-functional
    requirements from
    functional requirements.
    ▸ Make those “Concerns”
    pluggable components.
    10

    View Slide

  11. Loose
    Coupling
    11 “Tangling of large systems comes from
    tight coupling of the type system.”
    ▸ Separate an application into
    (service) modules called
    “cube”.
    ▸ They communicate with
    each other only via
    messages, this brings
    isolation of the service.

    View Slide

  12. DRY
    12 “The drop-in design of squbs allows for
    at-most-once coupling.”
    ▸ Drop-in Modular System
    provides auto detection of
    each service modules.
    ▸ It is easy to add/remove
    them to/from the system.

    View Slide

  13. Minimize
    Duplication
    of Effort
    13 “Most of the low-level components of
    the application that deal with application
    lifecycle and monitoring are common
    across applications.”
    ▸ By dealing with lifecycle
    management will hide and
    abstract away such
    duplications, to be
    standardization &
    operationalization.

    View Slide

  14. Thin
    Platform
    14 “We realize the emergence of the thin
    platform and try to keep squbs as
    lightweight and non-imposing as
    possible.”
    ▸ Reduce dependencies and
    Do not impose further
    requirements.
    ▸ Developers can leverage
    general knowledge.

    View Slide

  15. Conclusion
    15
    Any Good Toolkit
    (Akka, Spring, etc...)
    Your own
    Framework
    Any Good Toolkit
    (Akka, Spring, etc...)
    Your Infrastructure
    Thin Platform
    ▸ Don’t build
    framework
    ▸ Build platform

    View Slide

  16. THANKS!
    Presented by Yoshitaka Okuda
    Special Thanks @jooohn1234 !
    You can find me at @yoskhdia
    16

    View Slide

  17. Appendix
    ▸ Back-Pressure in Action: Handling High-Burst
    Workloads with Akka Streams & Kafka @PayPal
    ▸ squbs探訪 その1
    ▸ squbs探訪 その2(簡単なWebアプリケーションをつ
    くってみる)
    17

    View Slide

  18. CREDITS
    Special thanks to all the people who
    made and released these awesome
    resources for free:
    ▸ Presentation template by
    SlidesCarnival
    ▸ Photographs by Unsplash
    18

    View Slide