Remote start systems?

What are the best ways to start learning about distributed systems from a beginner's point of view?

  • Suggest resources that can give a good insight into how and why distributed systems are used in real world software engineering... or anything else that a software engineer must know. Ideally a college student with good programming experience and good web development knowledge should be able to quickly grasp the material presented. We're only talking about distributed web systems here, i.e., the type of systems employed by very high traffic sites like Facebook, Google etc.

  • Answer:

    Start by exploring http://highscalability.com/. There is an incredible wealth of articles including a lot of really interesting architectural case studies.

Benjamin Darfler at Quora Visit the source

Was this solution helpful to you?

Other answers

Google Code University has a section devoted to distributed systems – http://code.google.com/edu/parallel/index.html Edit: It seems that the above link is broken at of May 18, 2015 :( Additionally, their research papers outline much of their approaches to distributed systems (and a whole bunch of other cool stuff) – http://research.google.com/

Andrew Bonventre

I join both Benjamin Darfler and Lavi Avigdor opinion. First, you have to understand why you need distributed systems, when using them and how. You will learn a lot by  reading others experiences, http://highscalability.com/ is a good resource. Tech blogs of companies using distributed systems would be good too. I think that a very good demo of distributed computing is http://setiathome.ssl.berkeley.edu/ project and super computing in general which use distributed systems to help managing scientific problems. It's easy to understand that with a lot of computers we can make calculations faster. But there are a lot of problems about accessing resources, synchronizing, assembling results... So one of the best way to understand these problems is to practice: learning through practice. Scaling database is a good pratice and you will also learn about big data problematics. But as a developer, you can try simple applications using MPI (Message Passing Interface) and executing processes on multiple processors / machines. I believe it's a good way to start using and learning about distributed systems.

Victor Jolissaint

From an historical perspective is a good to read up on the "8 Fallacies of Distributed Computing", to understand what makes it hard. A good exposition is Rotem-Gal-Oz's paper: http://www.rgoarchitects.com/Files/fallacies.pdf

Rob Weir

For a college student (who I'm assuming has some time to experiment), the best way of learning about distributed networking is by making your own distributed network systems. If you have an easy and comfortable way of implementing distributed systems you'll have a more intimate understanding of why things are done a certain way. For this reason I will recommend ZMQ (http://www.zeromq.org/). ZMQ is a system for implementing message based distributed systems and has: - support for many languages - an easy to use API - a large amount of learning material - a great community

Willem Thiart

I'd start with a simple db based site on one server, Fill the db with large data sets, Have the site require some heavy queries, And then try spreading to two servers. First read only then write also. Then try utilizing more servers. In between read about best practices and perform load testing. Some of the things you'll find out is that handling meta data (information) is different from handling binary data (images) That heavy writes are a different (harder) ballpark than heavy reads That JOIN operations complicate the matter That backups need to be considered That there are many specific details that you need to focus on, and through them reach the best solution for your use case. There is nothing like hands on learning. Good luck.

Lavi Avigdor

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.