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

How to be an Architect in a Microservice World

How to be an Architect in a Microservice World

This talk describes the role of software architect in modern IT organisations and which typical issues you solve as an architect. Especially if the organisation is implementing microservices architecture.

Felix Müller

March 22, 2018
Tweet

More Decks by Felix Müller

Other Decks in Technology

Transcript

  1. How to be an Architect
    in a Microservice World
    Felix Müller - @fmueller_bln

    View full-size slide

  2. About me
    Chief Architect at searchmetrics
    Founder of Predegy
    Twitter: @fmueller_bln

    View full-size slide

  3. Why do I do this talk?

    View full-size slide

  4. If I speak with developers
    there is often scepticism why I
    choose the role of an architect.

    View full-size slide

  5. Who needs architects anyway?

    View full-size slide

  6. Surprisingly, many companies.
    Especially if you introduce
    microservices.

    View full-size slide

  7. But first, let us consider what
    software architecture is.

    View full-size slide

  8. Wikipedia (on 6th Nov 2017)
    “Software architecture refers to the high level structures [...] creating such structures, and the
    documentation of these structures. [...] Each structure comprises software elements, relations among
    them, and properties of both elements and relations.
    Software architecture is about making fundamental structural choices which are costly to change once
    implemented.”

    View full-size slide

  9. Quality of software
    architecture can be measured
    by the degree it meets the
    NFRs of a system.
    (NFR = non-functional requirement)

    View full-size slide

  10. Role of an architect by definition?

    View full-size slide

  11. Ensure architecture is aligned
    with your NFRs

    View full-size slide

  12. Role of Architect
    Depends highly on context,
    for sure.
    Quality of Software Architecture
    Design
    Documentation
    Execution

    View full-size slide

  13. Companies where i’ve been an architect.

    View full-size slide

  14. Companies where i’ve been an architect.
    ~150 employees in IT
    On-premise
    Scrum
    2-5 architects
    >2000 employees in IT
    On-premise + Cloud
    Agile
    > 5 architects
    ~60 employees in IT
    On-premise + Cloud
    Agile
    1 architect + 3 lead
    developers

    View full-size slide

  15. All work with independent,
    autonomous teams that
    deliver business value
    encapsulated in microservices.

    View full-size slide

  16. Role of Architect
    Depends highly on context,
    for sure.
    Quality of Software Architecture
    Design
    Documentation
    Execution

    View full-size slide

  17. Role of Architect
    Depends highly on context,
    for sure.
    Quality of Software Architecture
    for your services, modules, libraries
    Design
    Documentation
    Execution
    Developer

    View full-size slide

  18. So what is the role of an architect
    in these companies?

    View full-size slide

  19. Own and be responsible for
    the macro architecture.

    View full-size slide

  20. Macro Architecture
    Decisions for all modules
    http://isa-principles.org

    View full-size slide

  21. Micro Architecture
    Decisions per module
    http://isa-principles.org

    View full-size slide

  22. Macro Architecture
    Decisions for all modules
    http://isa-principles.org
    All modules are part of one system
    Should be as stable as possible
    Should be as minimal as possible

    View full-size slide

  23. How to implement a macro
    architecture?

    View full-size slide

  24. You can try by guidelines and
    by organizational hacks.

    View full-size slide

  25. Macro Architecture by Guidelines

    View full-size slide

  26. Tech Guidelines You build it, your run it.
    Which tech stacks can be used?
    How to test?
    How to monitor?
    What to monitor?
    How to deploy?
    What are deployable artifacts?

    View full-size slide

  27. API Guidelines Favor REST maturity level 2
    Backward compatibility over versioning
    Common data and error objects
    Naming rules
    Syntax rules for consistency
    https://github.com/zalando/restful-api-guidelines

    View full-size slide

  28. API Guidelines

    View full-size slide

  29. Tech Radar Based on idea of ThoughtWorks Tech
    Radar
    Gives guidance for tech stack choice
    More focus in the company on tech
    stacks which fits best for context
    Increase the bar to introduce new
    technologies
    https://github.com/zalando/tech-radar

    View full-size slide

  30. Zalando’s Tech Radar

    View full-size slide

  31. Macro Architecture by
    Organizational Hacks

    View full-size slide

  32. Team Architects 1 team architect per team
    Voted by each team
    Team architect is responsible for
    cross-team alignment and macro
    architecture alignment
    Team architects inform and consult with
    dedicated architects

    View full-size slide

  33. API Guild Group of developers and dedicated
    architects
    Owned and maintained API guidelines
    and API review processes
    Bi-weekly guild meeting to decide about
    important topics
    Consensus driven decision making

    View full-size slide

  34. TAR and Lead
    Developers
    TAR = Technical Architecture Review
    Group of lead developers, dedicated
    architect and if necessary others groom
    technical topics
    Owned by dedicated architect who
    manages projects and clarifies priorities
    with stakeholders
    TAR backlog managed by Kanban board
    across teams

    View full-size slide

  35. Plans work best if those who
    execute them, made them.

    View full-size slide

  36. Architecture is done!
    Brave new world...

    View full-size slide

  37. Role of Architect
    Owns Macro Architecture
    Quality of Software Architecture
    Design
    Documentation
    Execution

    View full-size slide

  38. Keep the big picture in sync
    with your development teams
    and their changes.

    View full-size slide

  39. Pivio “Microservice documentation for your
    platform”
    Developers document locally in their
    repositories with YAML files
    YAML files are aggregated by central
    system
    Central UI and API server for retrieving
    data, e.g. for architectural overview
    http://pivio.io

    View full-size slide

  40. Pivio Overview Site

    View full-size slide

  41. Pivio Detail Site

    View full-size slide

  42. Pivio News Feed

    View full-size slide

  43. Pivio Query Interface

    View full-size slide

  44. General Advice Lower documentation barrier for devs
    Shared understanding of what should be
    documented
    Same symbols across teams
    Shared understanding of diagram types
    across teams
    Deliver templates and offer support for
    implementing documentation guidelines

    View full-size slide

  45. Role of Architect
    Owns Macro Architecture
    Quality of Software Architecture
    Design
    Documentation
    Execution

    View full-size slide

  46. Try to make yourself obsolete:
    automate everything.

    View full-size slide

  47. Technical
    Compatibility Kit
    Automates compliance check for
    technical guidelines
    Checks runtime view of service, e.g.
    - is health check resource
    implemented as expected
    - is graceful shutdown implemented
    - is monitoring working
    TCK was integrated in each deployment
    pipeline

    View full-size slide

  48. Zally - API Linter Service integration happens at Zalando
    via Restful APIs (and events)
    API First with API review for each API
    draft
    Zally automates such reviews by
    validating given Swagger file with
    Zalando’s API guidelines
    https://github.com/zalando/zally

    View full-size slide

  49. Role of Architect
    Owns Macro Architecture
    Quality of Software Architecture
    Design
    Documentation
    Execution

    View full-size slide

  50. So, how to be an architect in a
    microservice world?

    View full-size slide

  51. Own the macro architecture.

    View full-size slide

  52. Be a great communicator.

    View full-size slide

  53. Listen actively to your devs.

    View full-size slide

  54. Try to automate manual
    architecture tasks.

    View full-size slide

  55. Serve your development
    teams.

    View full-size slide

  56. Thank you.
    Questions?
    More questions or just wanna chat?
    E-Mail: [email protected]
    Twitter: @fmueller_bln

    View full-size slide