Answers: <p>You mention that you are demonstrating this for a customer. The first question you should ask yourself (or, more pertinently, the customer) is :</p>
  
  <blockquote>
    <p>what does this customer really want?</p>
  </blockquote>
  
  <p>Why have they come to you for this work? What is the pain they are currently feeling, what value are you providing to them.</p>
  
  <p>Then, compare and contrast - show them the delta that your solution brings to them.</p>
  
  <ul>
  <li>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.</li>
  <li>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.</li>
  <li>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.</li>
  <li>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.</li>
  </ul>
  
  <p>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.</p>
  
Answers: CC BY-SA 4.0
Answers: 2018-12-04T09:11:15.077Z
Answers: 2018-12-04T09:11:15.077Z
Answers: Bruce Becker
Body: <p>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?</p>
  
  <p>Edit response to comments: </p>
  
  <ul>
  <li>Firstly, it is not a laptop :), It is just a VM on Azure(32GB and 4 CPU),
  actually, yes,  it's like laptop :(</li>
  <li>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 "<em>your main web app is running on <a href="http://somehost:someport" rel="nofollow noreferrer">http://somehost:someport</a>, you can use it now!</em>"</li>
  <li>Currently, I can perform the situation mentioned above, and someone who wants to use my app can use it. But it is not efficient.(???)</li>
  <li>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?</li>
  </ul>
  
  <p>Now I will search on how to make my own SaaS system:)</p>
  
Comments: CC BY-SA 4.0
Comments: 2018-12-04T09:26:54.457Z
Comments: 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?
Comments: simbo1905
Comments: CC BY-SA 4.0
Comments: 2018-12-04T09:29:25.217Z
Comments: 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.
Comments: simbo1905
Comments: CC BY-SA 4.0
Comments: 2018-12-04T09:31:20.810Z
Comments: 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?
Comments: simbo1905
Comments: CC BY-SA 4.0
Comments: 2018-12-04T09:33:54.937Z
Comments: 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.
Comments: simbo1905
Comments: CC BY-SA 4.0
Comments: 2018-12-04T09:36:43.393Z
Comments: 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 :-)
Comments: simbo1905
Tags: <docker><kubernetes><provisioning>
Title: Proper way to showcase multi-container web app to customers
UserDisplayName: agit
ThreadText: # Proper way to showcase multi-container web app to customers
  
  (Asked by: username_0 on 2018-12-04)
  
  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:)
  
  **Tags:** docker, kubernetes, provisioning
  
  > **Comments:**
  > **username_1**: 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?  
  > **username_1**: 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.  
  > **username_1**: 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?  
  > **username_1**: 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.  
  > **username_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 :-)  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2018-12-04. Score: 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.
  
  
  ---
  
  