1

I have a certain setup on my local Linux machine and I wonder how can I convert it to a web service platform.

What I have is:

  • Command line Perl application which periodically downloads certain data and saves it in text files.
  • Some Perl based data handling tools (command line as well).
  • Very basic web based interface which gives access to the command line tools to for easier access (in development).

What I want:

  • Make the command line tools run 24/7.
  • The web interface to be available through regular domain name.
  • I don't want it to run on my PC just because I'll have to keep it on all the time.

What I want to know:

  • Is what I need to accomplish the above is a cloud server? Initially I have considered to use my old GoDaddy account but it doesn't seem like it's possible to upload and run my own Perl scripts (and other stuff) there, just HTML pages.
  • I was looking at services like AWS(Amazon Web Services), where it is possible to create a virtual Linux/Windows machine and have full root access to it. If I set up my platform on this machine, will it be similar to having regular web server?
  • If I do want to use something like AWS to host my web interface there, how do I assign it a proper domain name so it won't be accessible only through IP?

I hope my question is clear enough. If not, please comment and I will edit.

2 Answers 2

4

What you want is a VPS, not a cloud. When you start having so much processing and people accessing your website, then you'd want a cloud. For what you describe, just a server where you can run processes on the net is enough.

VPSes are shared between many people so it can be really cheap. Some go as low as $4/mo.

As for domain names, you'd have to purchase one, I like GoDaddy, but you have 1,000's of places where you can get your domain name. Also a place like GoDaddy would give you access to a server too. Just make sure to turn off the FTP access if you are to use that (anywhere!), that's totally not secure. Use SSH with a key.

Can you please emphasize? Why do you think it won't work as is?

Unless your process can be duplicated on each computer of a cloud and produce the output as expected, it is very likely that you'll need a source of data (a database, a Cassandra cluster, etc.) which you need to access dynamically. This source of data needs to be elastic as well because otherwise increasing the number of front end computers will generally be useless.

So... say you create a web page in perl, that perl script will need to appear on each cloud computer. That perl script needs data, it has to query a computer for said data. If that computer is the only one answering to all the front end web pages, you have not resolve the problem: 1 million hits per second on the backend will kill the backend.

So... now you have to duplicate the perl script + the data + keep the data in sync. on all the computers forming your cloud. That's not something you do overnight... You have to remember that a cloud is formed of distinct computers, not just additional processors, NICs, hard drives, etc. in one computer.

If you're interested about such things, the Cassandra website has interesting documentation in that regard.

3
  • Thank you for your answer. However I do want people to have access to this website as well as perform some data processing (using the web interface), so will the VPS be enough? Will I have command line access to the VPS?
    – Eugene S
    May 1, 2013 at 8:45
  • 1
    You have to shop around to find a VPS that does offer an SSH access... As for the number of people, if you foresee 1,000's per seconds, yes, you may want a cloud, but you need to program specifically for a cloud. What you're doing is not going to work as is in such an environment. A VPS will support a few connections every seconds all day long without a problem, especially if you don't run a database like MySQL. May 1, 2013 at 8:53
  • Thanks again. Can you please emphasize? Why do you think it won't work as is?
    – Eugene S
    May 1, 2013 at 8:56
1

The terms mean different things to different people, but generally speaking "cloud" hosting implies that there is an elastic component: machine instances that automatically provision and scale as load changes.

That's almost certainly overkill for what you want, which is just a plain-vanilla server in the sky you can run scripts on. There are literally thousands of web hosting companies that will offer you this, including GoDaddy - just look for one step beyond simple web-hosting: their VPS plan explicitly allows: "Admin access: Install and run virtually anything on the server."

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.