0

I'm sorry if this post is too vague but I don't even know what topics to start looking at. I need a server that has the ability to share large amounts of data with potentially very high traffic, and the ability for users to upload photos quickly. It also has to have a large database..I guess I'd use MySQL to be able to keep track of which files belong to which users.

What am I looking at here in terms of options. I want something secure. What books should I be buying and reading about? I'm a novice programmer at best and my knowledge of systems programming is pretty limited. I need a fairly simple to learn but still robust and secure. If this catches on it could get very very big.

If there is a better place for this question please let me know.

JoshDG
  • 101
  • 1
    Are you talking about creating this service from scratch? If so, I need to preface this conversation with the question: Do you know ANYTHING about these technologies? Not meant to be offensive, I just want to gauge what your knowledge of what you're jumping into is. – JohnThePro Apr 19 '12 at 18:08
  • Not offended. I know how to use SQL and how to navigate around a UNIX based system..and how to ssh and ftp and stuff. That's about it. – JoshDG Apr 19 '12 at 18:10
  • And I can program a bit in perl and I shouldn't have too much of a problem learning any other scripting language. – JoshDG Apr 19 '12 at 18:10
  • I'm thinking that you might want to look at using Amazon's AWS to help you with the testing. You can spin up cluster servers or high-performance standalones to test on (not the cheapest, but cheaper than buying them yourself). – JohnThePro Apr 19 '12 at 18:13
  • Awesome. I'll read into it. Thanks! Really just needed that push in any direction...I was standing in the middle of a map..without a map or shoes – JoshDG Apr 19 '12 at 18:15
  • As far as the DB goes, there are all kinds of DB technologies outside of MSSQL and MySQL to use (MongoDB, Hypertable), and linux distros that specialize in things like that (http://distrowatch.com/search.php?ostype=All&category=High+Performance+Computing&origin=All&basedon=All&notbasedon=None&desktop=All&architecture=All&status=Active) – JohnThePro Apr 19 '12 at 18:19

2 Answers2

1

Basically, my take on it is this: There are already major players in this space (Instagram?) and usually the best place to start is take a page out of their books. Do a little research and see what websites like Instagram and Facebook are using to manage their databases, their failover, things like that.

If you were a computer science doctor, you could probably cook up something out of nothing, but I could probably save your life (and your hairline) by giving you a few recommendations (filtered from the comments):

  1. Find a high performance DB technology. MongoDB and Hypertable come to mind.
  2. Decide which technology you want to build your platform on.
  3. Find a hosting provider that will allow you to create machines, test code, and kill machines as needed (Amazon AWS stands out in my mind).
  4. Learn, learn, learn.

It sounds like you know some things, and you have an idea. That's great. A great idea can be the passion required to jump you into something like this, just remember to pack flippers and sunscreen, as it's a deep jump, and you're likely to suffer some burns.

JohnThePro
  • 2,595
  • 14
  • 23
0

Couple of good beginner starting points.

  • If you have the hardware and public IP already. Download vmware appliance for gallery3.

    https://solutionexchange.vmware.com/store/products/7085

  • Buy one of those reserved amazon EC2 instance. Deploy the linux+gallery template. Beware you end up in big bills on data transfers.

Chakri
  • 1,070
  • 6
  • 8