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
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
Related Q & A:
- What are the best ways to find a job with a social entrepreneurial company?Best solution by answers.yahoo.com
- What is the best website to start a business online?Best solution by Yahoo! Answers
- What are the best ways to drive traffic to a website?Best solution by Quora
- What is the best way to start up a local IT business?Best solution by Yahoo! Answers
- What is the best way to start a blog?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
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.