1

If we simplify the "cloud computing" concept to its most basic form, we could say that:

Cloud computing is nothing more than to be able to run applications and access data from a computer (server) in one place from another place through the internet (with a web browser or an application developed to be used as the "front end", though impractical, possible).

So my question is, what do I need to do to be able to run programs and access data in my server machine at home from anywhere on the world? (just one user so I think no virtualization would be required)

I don't want to become a cloud computing expert by a question in StackExchange, just fully understand the principles behind cloud computing and possibly configure my own cloud at home.

Please do not recommend things like AWS, Azure, Dropbox, google drive, etc. I'm not trying to use cloud file storage or cloud services from 3rd parties. I'm trying to understand how cloud computing works not looking for recommendations on 3rd party solutions.

I have some understanding of front-end and back-end development so I could write my own very basic and reduced versions of dropbox and/or whatever is needed to access files and run applications, I just don't know what else would be needed to create a cloud at home that fulfills the definition of "cloud computing" as complete as possible. For this exercise, the applications I want to run are C and C++ applications on my home server.

3
  • To keep documents available, the home solutions are Drop Box, One Drive, or Google Drive. What apps do you need to run?
    – anon
    Commented Jan 3, 2020 at 21:58
  • @John sorry for the confusion. I have added more details to the question to ilustrate better what I'm trying to achieve. I'm not looking for already-existing cloud file storage or cloud computing solutions, I'm trying to understand how does cloud computing work by potentially creating my own very basic cloud at home.
    – m4l490n
    Commented Jan 3, 2020 at 22:14
  • Most of the flexible cloud vendors cost money for access to a cloud server for computing and like. Look at the minimal offerings for Azure, Amazon Web Services and Google Cloud
    – anon
    Commented Jan 3, 2020 at 22:23

2 Answers 2

1

Not comparable

The definition of cloud seems to be evolving into a subjective view. It seems what are wanting is, a remote machine that I can access anywhere in the world that has my files on it.

From my position, you can't create a cloud at home but you can setup a workstation that you can access from anywhere that has your files on it.

The real idea behind the cloud is virtualization. A substrate of hardware consisting of compute, storage and newtork that advertises that hardware to advertise a platform to create custom virtual solutions. The way in which this hardware is configured and advertised for use makes a comparable home solution out of financial reach. Clouds from providers have built in a considerable amount of fault tolerance. The tolerance to faults is essentially the ability to have hardware fail (fault) in the substrate of the platform and have the platform continue to function as normal. That essentially means that there are multiple switches, routers, servers and storage devices advertising the platform so it can experience multiple hardware failures and continue to function.

Essentially, what you are wanting is a PC on the internet with your data on it that you can access from any Internet connection. That's a big difference.

To accomplish that access:

  1. Enable Remote Access on your PC/Server

    • RDP (Remote Desktop Protocol is built into Windows Operating Systems
    • RDP uses port 3389
  2. Log into your home router

  3. Create a TCP rule for your home machine
    • Map your Public IP address to your Private IP Address, make note of your public IP address
    • Your private IP address is the IP on your home machine
  4. Save the configuration
  5. Test the configuration.
    • From an Internet connection other your home, open the Remote Desktop Client, put the public IP address in the available field and try and connect to the home machine.

There are other issue to take under consideration such as security and availability of the home machine. I can say that I would NOT do this for multiple reasons. I prefer the commercial tools and features for security of a vetted cloud solution.

1
  • I get that virtualization and fault tolerance are a big part of a commercial and robust cloud and that if I try to create a cloud at home that would be similar to a commercial solution then it would be "out of financial reach" as you say. But virtualization and fault tolerance are not necessary if I'm not "partitioning" my hardware and I don't care about faults. I'm not looking just on how to have a remotely accessible computer with all my files, I'm looking to reproduce a simplified version of "cloud computing" at home
    – m4l490n
    Commented Jan 7, 2020 at 18:51
0
  • Have a broadband connection

  • Setup a dynamic DNS so you can reach your home server by DNS and not by a constantly changing residential ISP

  • Have a server (always on computer) running applications connected to your ISP facing router

    • The traditional LAMP stack has numerous open-source applications for cloud use

    • Your applications will likely be delivered via HTTPS. This is 2019, don't use HTTP. Configure and install a Lets Encrypt certificate.

    • Non HTTP applications should be secured with encryption and certificates.

  • Configure and harden server appropriately against security and drive-failure issues

  • Port forward appropriate ports from your ISP-facing router to your server

  • Harden router configuration to prevent attackers from interfering with your applications or home Internet

8
  • 1
    You can do as above. But you should use IPsec VPN or like. I do this and have ready access to my home computer from anywhere in the world
    – anon
    Commented Jan 3, 2020 at 22:03
  • I have all that already. I have a always-on machine at home in which I have configured nginx webserver and I'm serving a very simple webpage. I access my webpage using https because I have generated the certs with letsencrypt and I'm using dynu DNS instead of a public IP. But I still don't understand how are files accessed and run applications in the server.
    – m4l490n
    Commented Jan 3, 2020 at 22:26
  • You can install Radmin Server on the home machine (I use this) and then use Radmin Viewer (free) to access the home machine. I can run things on my home machine. I keep my documents synchronized so I use my laptop local documents while travelling
    – anon
    Commented Jan 3, 2020 at 22:30
  • @m4l490n - Now you need PHP and mySQL/PostgreSQL. Once those are installed and working you can install, configure, and run open-source PHP apps. For example, Nextcloud.
    – LawrenceC
    Commented Jan 3, 2020 at 22:36
  • @John what do you mean by "I can run things on my home machine"? Does that mean just like ssh into your home machine and then run something with ./my_program? Or is this achieved in a different way?
    – m4l490n
    Commented Jan 7, 2020 at 18:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .