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

Microservices Means Macrocommunication — Paige Bernier

Microservices Means Macrocommunication — Paige Bernier

The tl;dr is "how microservices can better facilitate communication between team members
and from team to team".

Adopting microservices means a shift in architecture of our system and in communication.
Letting your upstream and downstream dependencies know of major changes is not just a
courtesy but required in order to keep things moving. Communicating early and often takes
shape in strategies like versioning, informative deprecation warnings, temporarily
providing backwards compatibility can all help enforce the coming changes. Treating
internal APIs on a team with the same integrity as externally facing ones makes for a
happy team.

This type of content seems straightforward so I’ll take the approach of “do this not that”
and look at realistic examples such as: during active development a team picks up your
work and suddenly becomes a dependency - how do you gracefully communicate constant
changes? Or its endpoint deprecation day and you still have active consumers - how to
provide the tools they need to migrate to the new stuff. Or the nuts and bolts of why and
how keeping documentation up to date will add to your daily productivity.

The flipside of microservices facilitate better communication is that better communication
is an absolute requirement if you want to the people side to run efficiently. After this
talk people will be excited to implement these strategies and see positive results.

DevOpsDays Zurich

May 02, 2018
Tweet

More Decks by DevOpsDays Zurich

Other Decks in Technology

Transcript

  1. Minimal Standardization • Announcements-only channel • Source of truth •

    Supported tools/technologies • Prioritized initiatives
  2. Minimal Standardization • Announcements-only channel • Source of truth •

    Supported tools/technologies • Prioritized initiatives • Team offices
  3. Treat your downstream like customers! • Complete READMEs ◦ Architecture

    diagram ◦ 1 line description ◦ Running locally
  4. Treat your downstream like customers! • Complete READMEs ◦ Architecture

    diagram ◦ 1 line description ◦ Running locally ◦ Contributing
  5. Treat your downstream like customers! • Friendly APIs ◦ Documentation

    ◦ Informative error messages ◦ Way to send test data
  6. Treat your downstream like customers! • Friendly APIs ◦ Documentation

    ◦ Informative error messages ◦ Way to send test data
  7. Being a good teammate • Assume good intent • Be

    flexible • Written culture • Expand your perspective
  8. Example #1 The hot potato service • Have a quick

    handover meeting • Celebrate unloading this awful service
  9. Example #1 The hot potato service • Have a quick

    handover meeting • Celebrate unloading this awful service
  10. Example #1 The hot potato service • Tune alerts •

    Update README • Document “gotchas”
  11. Example #1 The hot potato service • Tune alerts •

    Update README • Document “gotchas” • Codebase tour
  12. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Silently file a ticket and leave it for prioritization next week
  13. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Silently file a ticket and leave it for prioritization next week • Complain about Team X’s tight deadline
  14. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Silently file a ticket and leave it for prioritization next week • Complain about Team X’s tight deadline • Refuse saying you have too much work
  15. Example #2 To complete your feature you need Team X

    to do a thing • In the middle of your sprint ask the team to do work • File a ticket and never talk to Team X about it • Complain about Team X’s unwillingness to help
  16. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Tell your team/manager immediately
  17. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Tell your team/manager immediately • Prioritize it
  18. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Tell your team/manager immediately • Prioritize it • Determine when the work could get done
  19. Example #2 To complete their work, Team X has asked

    you to do work due next week. • Tell your team/manager immediately • Prioritize it • Determine when the work could get done • Talk to Team X about the deadline
  20. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Send 2 emails months in advance
  21. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Send 2 emails months in advance • Set a deprecation warning with no details on how to upgrade
  22. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Send 2 emails months in advance • Set a deprecation warning with no details on how to upgrade • Spam all communication channels multiple times a day
  23. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Send 2 emails months in advance • Set a deprecation warning with no details on how to upgrade • Spam all communication channels multiple times a day • Force the upgrade
  24. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Send 2 emails months in advance • Set the deprecation warning with no details on how to upgrade • Spam all communication channels multiple times a day
  25. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Provide context, “the why”
  26. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Provide context, “the why” • Proactively monitor the migration
  27. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Provide context, “the why” • Proactively monitor the migration • Generous timeline
  28. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Provide context, “the why” • Proactively monitor the migration • Generous timeline • Informative, updated deprecation warnings
  29. Example #3 Your team owns a shared library and you

    need everyone to upgrade • Provide context, “the why” • Proactively monitor the migration • Generous timeline • Informative, updated deprecation warnings • Talk to straggling teams