1

I have a web app consisting of multiple services (authentication service, database, main web app..), and each of these services can run in container. Currently, when a customer ask for a demo, I am creating and running new instance of these containers on new open ports. But, it seems like this is not the right way to do, because each container is just consuming 1 GB RAM of my host machine (currently total 32 GB), even it is not used by anyone. What is your suggestions and is there any on hand solutions for this scenario? What should I research to find a solution for my need?

Edit response to comments:

  • Firstly, it is not a laptop :), It is just a VM on Azure(32GB and 4 CPU), actually, yes, it's like laptop :(
  • My customers want to (actually I want) test/evaluate my app without any installation, just filling a demo request form and then I will send them a mail to say "your main web app is running on http://somehost:someport, you can use it now!"
  • Currently, I can perform the situation mentioned above, and someone who wants to use my app can use it. But it is not efficient.(???)
  • You mention swarm/kubernates, So my main question is that; Is solution for my need is should be using swarm? If yes, How? is there an best practice approach you can share with me?

Now I will search on how to make my own SaaS system:)

  • If you have 32 services, each allocated 1G as say java heap, then it’s not possible to run in less space. Please he explicit in why you think it should take less than 32G to run your system? – simbo1905 Dec 4 '18 at 9:26
  • Why would you demo on a laptop no customers will run a real system on a laptop. Why wouldn’t you demo it on a public cloud and if customers are likely to deploy on-prem be sure to document and explain that to works in containers or in VMs or on bare metal due to the language and frameworks you use. – simbo1905 Dec 4 '18 at 9:29
  • Is it required that all your apps must run on one host as they cannot run as a distributed system? Or is it that they can run across multiple host and be scaled independently? In which case why are you not demoing it running in docket swarm or kubernetes to show of how parts can be independently upgraded or independently scaled? – simbo1905 Dec 4 '18 at 9:31
  • With all the uncertainty on what you are trying to do it’s not clear what’s a good answer. Is it that you just think demoing on a laptop should need a smaller laptop or is it that you are trying to demo a full blown microservices solution and so you want to pick which one to use to impress customers. In which case “know your customers “ to know what container orchestrators they are likely to be using and demo with that on your laptop. – simbo1905 Dec 4 '18 at 9:33
  • 1
    you would impress people here by deploying using helmfile to minikube on a laptop with automated scaling et al then do a live deployment to AWS from scratch as a demo. Yet as one of the answers below points out we are not the people buying your software so it’s not clear that what we think looks good is the right answer :-) – simbo1905 Dec 4 '18 at 9:36
2

You mention that you are demonstrating this for a customer. The first question you should ask yourself (or, more pertinently, the customer) is :

what does this customer really want?

Why have they come to you for this work? What is the pain they are currently feeling, what value are you providing to them.

Then, compare and contrast - show them the delta that your solution brings to them.

  • It may be for example that they want to maintain a legacy application, but upgrade the hardware or underlying components ? In that case, show them how you have contained them with no negative experience to their users.
  • It may be that they need to scale the capacity for usage of their application - they want to be able to meet demand elastically. Show them how by deploying in a container setup, you can scale out.
  • It may be that they need four nines reliability - show them that you can have an easier HA setup - knock out one of the instances and prove that the application still works.
  • It may be that they want faster delivery with no little impact on quality. Show that your delivery pipeline works smoothly with some automated tests and QA, with delivery and deployment.

TL;DR : Find out what your customer wants. Demonstrate the existing way of doing things. Compare it with the "new" way, and highlight the delta.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.