Learning Target

  1. Understand Virtual Box / any other Hypervisor software
  2. Learn how to start a VM and play around with VMs
  3. Understand how Computers communicates within a network
  4. How to host web applications and servers
  5. How to test the connections
  6. Implement the whole thing with Docker to make life much easier

Pratically understanding Virtualization:

We will understand virtualization at a high level by creating VM’s on my computer.

  1. Create 3 VM’s using Virtual Box and Ubuntu (You can use Ubuntu Server or Ubuntu Desktop)
    1. Web Server - Hosts the Web application
    2. DB Server - Hosts the Database
    3. Client - To test network
  2. Create/Take a pre existing Full stack project. I have used Express in the BE, React in the FE and MongoDB as database. The tech stack is immaterial
  3. Set up the DB Server
    1. Initialize the Server Network as a bridged adapter
      1. Check the IP using ifconfig
      2. Ping and Check if DB server is accessible from host using ping <ip-address>
    2. Host the Database in the DB server
      1. Run the Database in the DB Server
      2. Download Studio 3T (Mongo DB client)
      3. Test connection to the DB from host
  4. Set up Web Server
    1. Install Ubuntu Desktop in Virtual Box
    2. Run the web application in the VM
    3. Try to pint the DB server from the web server to test connection
    4. Point the Web Server to the IP of the DB server.

Achieving the same with DOCKER

  1. Install Docker on your host machine
  2. Write a Dockerfile for FE Server
  3. Write a Dockerfile for BE Server
  4. Write a Docker Compose file that packs the FE, BE and DB in one image
  5. Run the Docker Compose file
  6. Test the running application.