Domanda

What's the cleanest approach for a development environment if you were implementing a service oriented architecture?

How would you manage launching service X when you want to develop service Y?

There seems to be a lot of talk about the theoretical aspects of SoA, but how would this work in the real world when building out a multi-service app in Rails/Express/Etc?

Wouldn't it be hard to manage an application with numerous external services as dependencies?

È stato utile?

Soluzione

Wouldn't it be hard to manage an application with numerous external services as dependencies?

It depends what you mean by manage. To my mind this means coordinating all the activities associated with delivering new functionality for a service into production, including planning, development, build, deployment, and operational support.

Management of a physically separated service with no binary dependencies with other services and no enforced referential integrity at the storage level with other services is relatively simple, and becomes and exercise in dependency management with the other services. Because these dependencies generally manifest as API contracts, contract versioning becomes a large consideration for system-level development and intra-team workflow. (Many strategies exist for this - as does a whole massive discussion on it's own).

However, I would put to you that you need to consider the difficulty of management when faced with the alternative. Well, what is the alternative to this approach? The alternative is the monolith application approach, and so you see why I highlighted the word "relative" in the previous paragraph.

I would urge you to read (or re-read) the opening paragraphs of James Lewis & Martin Fowler's microservices article here, where they do a much better job than I of explaining this.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top