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.

A7e499800d9008d62830dfe431bd8ddb?s=128

Felix Müller

March 22, 2018
Tweet

Transcript

  1. How to be an Architect in a Microservice World Felix

    Müller - @fmueller_bln
  2. About me Chief Architect at searchmetrics Founder of Predegy Twitter:

    @fmueller_bln
  3. Why do I do this talk?

  4. If I speak with developers there is often scepticism why

    I choose the role of an architect.
  5. Who needs architects anyway?

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

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

  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.”
  9. Quality of software architecture can be measured by the degree

    it meets the NFRs of a system. (NFR = non-functional requirement)
  10. Role of an architect by definition?

  11. Ensure architecture is aligned with your NFRs

  12. Role of Architect Depends highly on context, for sure. Quality

    of Software Architecture Design Documentation Execution
  13. Companies where i’ve been an architect.

  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
  15. All work with independent, autonomous teams that deliver business value

    encapsulated in microservices.
  16. Role of Architect Depends highly on context, for sure. Quality

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

    of Software Architecture for your services, modules, libraries Design Documentation Execution Developer
  18. So what is the role of an architect in these

    companies?
  19. Own and be responsible for the macro architecture.

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

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

  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
  23. How to implement a macro architecture?

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

  25. Macro Architecture by Guidelines

  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?
  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
  28. API Guidelines

  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
  30. Zalando’s Tech Radar

  31. Macro Architecture by Organizational Hacks

  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
  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
  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
  35. Plans work best if those who execute them, made them.

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

  37. Role of Architect Owns Macro Architecture Quality of Software Architecture

    Design Documentation Execution
  38. Keep the big picture in sync with your development teams

    and their changes.
  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
  40. Pivio Overview Site

  41. Pivio Detail Site

  42. Pivio News Feed

  43. Pivio Query Interface

  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
  45. Role of Architect Owns Macro Architecture Quality of Software Architecture

    Design Documentation Execution
  46. Try to make yourself obsolete: automate everything.

  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
  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
  49. Role of Architect Owns Macro Architecture Quality of Software Architecture

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

  51. Own the macro architecture.

  52. Be a great communicator.

  53. Listen actively to your devs.

  54. Try to automate manual architecture tasks.

  55. Serve your development teams.

  56. Thank you. Questions? More questions or just wanna chat? E-Mail:

    felix@predegy.com Twitter: @fmueller_bln