Search code examples
serverarchitecturemicroserviceshardware

How much hardware is needed to create a microservices demo architecture


I am estimating how much hardware I need to set up a demo microservices architecture (for example: https://github.com/microservices-demo/microservices-demo).

The architecture contains:

  • Kubernetes cluster.
  • 4 microservices, written either in java, python or golang. With redundancy.
  • 1 database per microservice.
  • 1 queue or message broker for asynchronous communication, probably Kafka.
  • 1 API gateway to connect to the outside.
  • 1 Elasticsearch for full-text search of application logs.
  • 1 Zipkin for microservices tracing.

Having in mind that it is a demo architecture to extract metric data to create a dataset and even though I intend to use virtualization, docker. How many physical servers will I need ? How much hardware do you think I will need ?


Solution

  • Not the answer to your question, but most of that stuff can be acquired "as a Service" (IaaS or PaaS), so no hardware required.

    I am estimating how much hardware I need to set up a demo microservices architecture

    Depends what you want to demo - if you only want to demo functionality, or how the architecture works in terms of the software - then as @quain says, a single PC should work.

    If it is just a pc I think I am far from building a quality dataset.

    If you have any specific qualities (such as performance, availability, etc) then you have to quantify those, and use them as inputs to your sizing calculation. Anyone helping you work out the hardware requirements would also need this. E.g. are you trying to demo solution behaviour under a specific load?

    To even begin doing a hardware sizing exercise you would need at least the following:

    • System requirements for every piece of software you'll be using, e.g., Elastic Search.
    • Data volumes & types - how many types of record do you deal with (e.g. customers, products, orders, etc) - and for each of those how many do you need for the demo? 1, 100, or 1 million? The amount of data you have drives storage requirements. The actions you perform on them also drives computational requirememts and potentially networking requirements.
    • Transaction volumes - will the demo be one user clicking around, or will you be using test harnesses to drive millions of requests at the solution?
    • Non-Functional requirements / objectives for the demo (performance, etc - if any).

    Don't forget:

    • Networking - no hardware implications if on a single PC working offline, but a bigger issue if you have multiple machines.