Microservices: Difference between revisions

From Devguid
No edit summary
No edit summary
Line 37: Line 37:


== Deploy ==
== Deploy ==
= How to =
== Avoid upgrade issues ==
* Split up team ownership of microservices
** First add new features
** Then deploy updated microservice
** Later update clients
* Automated tests
** Ensure that older clients are supported
** Run as part of CI build process
* Beware of shared code


[[Category:Architecture]] [[Category:Designpatterns]]
[[Category:Architecture]] [[Category:Designpatterns]]

Revision as of 19:15, 25 April 2023

Rules

  • Can be upgraded without clients need to be upgraded
  • Define a clear public interface/contract
    • Make additivie changes
    • Create new endpoints
    • New properties on DTOs
    • Publish new version of it, previous version must still be supported

About

  • Autonomous
  • Single responsibility principle
    • Do one thing and do it well
  • Should be able to deploy on it's own
  • Public interface should be defined clearly
  • Perform well
  • Resilience to error
  • Secure
  • Own their own data
  • Independently deployable
  • Within specific boundaries

When do you need one

  • When scaling

Size of a microservice

Resilience

Securing

Deploy

How to

Avoid upgrade issues

  • Split up team ownership of microservices
    • First add new features
    • Then deploy updated microservice
    • Later update clients
  • Automated tests
    • Ensure that older clients are supported
    • Run as part of CI build process
  • Beware of shared code