Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Why do I do this talk?

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Who needs architects anyway?

Slide 6

Slide 6 text

Surprisingly, many companies. Especially if you introduce microservices.

Slide 7

Slide 7 text

But first, let us consider what software architecture is.

Slide 8

Slide 8 text

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.”

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Role of an architect by definition?

Slide 11

Slide 11 text

Ensure architecture is aligned with your NFRs

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Companies where i’ve been an architect.

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Own and be responsible for the macro architecture.

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

How to implement a macro architecture?

Slide 24

Slide 24 text

You can try by guidelines and by organizational hacks.

Slide 25

Slide 25 text

Macro Architecture by Guidelines

Slide 26

Slide 26 text

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?

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

API Guidelines

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Zalando’s Tech Radar

Slide 31

Slide 31 text

Macro Architecture by Organizational Hacks

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Architecture is done! Brave new world...

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

Pivio Overview Site

Slide 41

Slide 41 text

Pivio Detail Site

Slide 42

Slide 42 text

Pivio News Feed

Slide 43

Slide 43 text

Pivio Query Interface

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

Try to make yourself obsolete: automate everything.

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

Own the macro architecture.

Slide 52

Slide 52 text

Be a great communicator.

Slide 53

Slide 53 text

Listen actively to your devs.

Slide 54

Slide 54 text

Try to automate manual architecture tasks.

Slide 55

Slide 55 text

Serve your development teams.

Slide 56

Slide 56 text

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