Answers: <p>I argue that K8s+docker is a good approach even for a non tech person. For k8s you can use microk8s which is available on linux, windows and macos. It creates a local, single-node k8s cluster for you. You can write a script (if the target OS is linux or mac) and automate the installation of kubectl, microk8s, enable addons and install your component k8s yaml file. If the target OS is windows you have to see how they automate stuff and use that method.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-10-24T17:19:29.587Z
Answers: I agree with you. In case I am able to automate everything in a way the user won't need any other action than running an installer. I basically was and still am hoping for some very easy and simple solution due to I am talking about an very old application that is just used by few people. Probably two nested VMs are the easiest thing to do.
Answers: Bee
Answers: CC BY-SA 4.0
Answers: 2019-10-24T09:37:26.427Z
Answers: 2019-10-24T09:37:26.427Z
Answers: AVarf
Body: <h1>About</h1>
  
  <p>I am developing a piece of software which consists of a Node.js application which controls a virtual machine that runs Android-x86. Also there are some pieces of the Android SDK like ADB the software depends on.</p>
  
  <h1>My current approach</h1>
  
  <p>Currently there is no smart way of deployment whatsoever at all. Everything has to be installed manually. Depending on the system I also get issues regarding networking and so on from time to time. I also created another question <a href="https://devops.stackexchange.com/questions/9466/deploying-software-that-depends-on-a-virtual-machine-using-docker">here</a> where I first thought about using Docker.</p>
  
  <h1>My problem</h1>
  
  <p>While researching if I can solve this using Docker I came up with solutions that require Kubernetes as well. I want to deploy the software to non-tech savvy users as well. So I cannot afford to have Docker and Kubernetes as dependencies due to the complexity of the installation process.</p>
  
  <h1>My question</h1>
  
  <p>Is there any technology that I am not aware of that can simplify the setup process for the end user? The perfect scenario would be a virtual machine or container containing the whole environment that can somehow be converted to a single binary which can be installed/executed.</p>
  
Comments: CC BY-SA 4.0
Comments: 2019-10-24T06:40:21.360Z
Comments: Can this be deployed on a public cloud? Then simply pack it into an AMI on AWS marketplace
Comments: jdog
Comments: CC BY-SA 4.0
Comments: 2019-10-24T17:15:12.707Z
Comments: That would definitely be the best solution in my opinion but it would require internet connection which I cannot ensure. Also internal servers hosting such a service are not an option unfortunately.
Comments: Bee
Tags: <deployment><virtualbox>
Title: Deploying software that depends on a virtual machine for non-tech savvy users
UserDisplayName: Bee
ThreadText: # Deploying software that depends on a virtual machine for non-tech savvy users
  
  (Asked by: username_0 on 2019-10-23)
  
  # About
  
  I am developing a piece of software which consists of a Node.js application which controls a virtual machine that runs Android-x86. Also there are some pieces of the Android SDK like ADB the software depends on.
  
  # My current approach
  
  Currently there is no smart way of deployment whatsoever at all. Everything has to be installed manually. Depending on the system I also get issues regarding networking and so on from time to time. I also created another question [here](https://devops.stackexchange.com/questions/9466/deploying-software-that-depends-on-a-virtual-machine-using-docker) where I first thought about using Docker.
  
  # My problem
  
  While researching if I can solve this using Docker I came up with solutions that require Kubernetes as well. I want to deploy the software to non-tech savvy users as well. So I cannot afford to have Docker and Kubernetes as dependencies due to the complexity of the installation process.
  
  # My question
  
  Is there any technology that I am not aware of that can simplify the setup process for the end user? The perfect scenario would be a virtual machine or container containing the whole environment that can somehow be converted to a single binary which can be installed/executed.
  
  **Tags:** deployment, virtualbox
  
  > **Comments:**
  > **username_1**: Can this be deployed on a public cloud? Then simply pack it into an AMI on AWS marketplace  
  > **username_0**: That would definitely be the best solution in my opinion but it would require internet connection which I cannot ensure. Also internal servers hosting such a service are not an option unfortunately.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2019-10-24. Score: 2
  
  I argue that K8s+docker is a good approach even for a non tech person. For k8s you can use microk8s which is available on linux, windows and macos. It creates a local, single-node k8s cluster for you. You can write a script (if the target OS is linux or mac) and automate the installation of kubectl, microk8s, enable addons and install your component k8s yaml file. If the target OS is windows you have to see how they automate stuff and use that method.
  
  > **Comments:**
  > **username_0**: I agree with you. In case I am able to automate everything in a way the user won't need any other action than running an installer. I basically was and still am hoping for some very easy and simple solution due to I am talking about an very old application that is just used by few people. Probably two nested VMs are the easiest thing to do.  
  
  ---
  
  