CPS 512 (Duke University) Distributed Systems
home calendar topics work resources
Google's Lizard Book has a good overview of Google's mega-services infrastructure in Chapter 2, and distributed service performance in Chapters 4 and 6.

For the labs, you need a standard Java environment. We use git and github. Please let us know if you need assistance (try the docs first).

The DSLabs handouts are formatted in Markdown, which is standard for use in github projects. You can read them in any text editor, but they look better when formatted. The github web interface formats them for display in a web browser, or you can install an application. For example, MacDown is pretty good on MacOS.

Git resources We use the git revision control system with github. We use a simple centralized workflow: group members share a central code repository (repo) stored on github, clone local copies on laptops and virtual machines (or wherever you want), make changes locally, and merge/commit/push code changes back to the central repository, where other group members (and the autograder) can access it. But git is capable of much more. It is worth taking time to learn some lingo and commands to get you through. Fortunately there is an authoritative git book online. Recommended: Chapters 1, 2.1-2.5, 3.1, 3.2, 3.5, 6, 7.7. Also useful: Chapters 2.7, 2.8, 3.3, 3.4, 3.6, 3.7, 5, 7. Suggestion: select and download a git cheat sheet via Google Images.