Introducing Helloworld Microservice

Goal

  • To build a helloworld microservice and run it on a single instance.

Discussion

Large technology organizations and problems involve “planet-scale” engineering and infrastructure. To solve scalable / distributed problems in such organizations, they need to consistently and rapidly deliver complex applications. Microservices architecture is an approach that constructs such applications as a collection of services that are:

  • loosely coupled
  • cohesive
  • independently deployable
  • reliable (fault tolerant)
  • scalable (cope with load)
  • maintainable
  • observable (telemetry)
  • independently evolvable

In this series of “lab exercises”, my hope is to be able to explore each of these tenets with concrete implemented examples.

To understand, appreciate and learn microservices architecture, a good starting point is to just build a simple barebones microservice, without the above-said tenets.

Read more

What's this about?

Hi! I am hoping to document some exercises and experiments in scalable and distributed systems design and development in a series of posts.

My intent is to run these on my home lab, which at this point is a single machine running a simple VM setup. Since I have a decent Windows machine (i7-6700k with 4 cores and 32 gigs of RAM), I think I can manage a simple VM cluster of at least 3 VMs (we will see!). In the future, I hope to be able to set up a dedicated homelab server with more chops.

There are a few free or inexpensive options to run a VM setup like this. I am using Hyper-V since it comes built in with Windows 10 (just had to upgrade to Win10 Pro). VirtualBox, VMWare Player etc. are also good options.

Many of these posts could be trivial set up documentation, as I intend to treat them as my notes as well. But, through the process, I hope to find a few useful nuggets that I or someone else may benefit from.

Let’s see where/how far this goes. You are welcome to tag along!


Creative Commons License

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