Hello-world Problems

Goal

  • To review our helloworld microservice against the tenets of microservice architecture, and see where and how it falls short.

Discussion

Here is a quick review of where our little microservice stands, in terms of the “microservician” utopia:

Tenet State Observation
Loosely coupled Neutral N/A? We just have one service. Nothing to couple yet. We will get there :)
Cohesive Neutral Not a lot of cohesion to discuss with helloworld. So, same as above.
Deployable Bad Sure, it is deployable, but if we were to deploy this across a bunch of VMs, it quickly becomes a chore. On complex applications with a lot of dependencies, it is a disaster waiting to happen.
Reliable Bad Well, if our VM goes down, we don’t have anywhere to get our hello, do we?
Scalable Bad If a lot of people want our precious hello service, my puny little 2-core 2GB RAM VM will surely buckle down and choke. Now, see Reliable.
Maintainable Bad How do I deploy patches to my code or dependencies? How do I roll out the inevitable security update that needs to go out yesterday? Bring down my service, take an outage and perform maintainance?
Observable Bad I know next to nothing about how my service is being used. I don’t have any logs, metrics or end-to-end tracing.
Evolvable Neutral Same as coupling and cohesiveness, we can discuss evolvability only after adding more complexity to our setup.

Summary

Before building further, we did a quick review of our service and convinced ourselves that we have a long way to go.


Creative Commons License

Unless otherwise specified, this work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.