Hacker News new | ask | show | jobs
Ask HN: Best resources for a web developer to dive into server admin?
3 points by ycombasks 4466 days ago
I'm a proficient PHP developer, but thus far have not dealt with anything that requires scalability or requiring to know the system--everything has been taken care of by managed hosting. Now I want to dive right in and learn everything from load balancing and web server administration to server security, scaling, performance, and troubleshooting everything when things stop working.

I know the basics of Linux (even my desktop is Ubuntu), and I've messed a lot with Apache config files, ufw firewall setup, etc, so I don't have to completely start from scratch. But I'm not sure where to go to when it comes to scaling my application (like with nginx or haproxy), performance, security. I'm looking for book recommendations or other resources that can give me the whole picture.

What I've found so far:

UNIX and Linux System Administration - seems popular on Amazon, but not sure if it'll cover everything I need as a web developer, such as scaling.

The Official Ubuntu Server Handbook (3rd Edition) - Claims to cover server setup, clustering, cloud, troubleshooting, etc, but I'm not sure if having it only Ubuntu-oriented is good.

All advice is appreciated!

3 comments

If what you're really after is designing a scalable website - which is very different from system admin stuff - I think the "Building Scalable Websites" book is a great place to start: http://shop.oreilly.com/product/9780596102357.do

Perhaps a bit dated (2006), but most of it would still be relevant.

Would I need to know how to do a lot of administration tasks? For example, when getting an ec2 instance, I pretty much have to build the whole server myself. That means I need to know how to secure it properly from hacking, as well as set up clusters, all the software (apache, nginx, haproxy, etc) with the right configuration, etc.

Additionally, when something breaks in the middle of the night, I'm going to need to know how to troubleshoot it. What do you think?

go for Redhat certificate . they are best in it
Do they provide only the certification, or training too?
You are right to ask here for direction, and you are right to be skeptical of single vendor approaches. My advice is definitely don't go for formal qualifications.

I would say do something yourself, but make it public enough that you are guilted in to continuing to the bitter end: start a blog! Write yourself a challenge that uses a different type of technology on unix (various classes of database, various web technologies, various server availability models, directory services, cluster filesystems, fault-tolerant storage systems, message queues, virtualization paradigms, load balancing systems, snapshots, network intrusion detection systems, firewalls, digital telephony, each of a few major formal kernel security policy models, diskless workstations, clusters, etc.) then go solve it using as many different Linux distributions (especially source-based or minimalist distributions that force you to understand software dependencies) or flavors of unix as you can find.

For each challenge, write about how you approached the problem, what tools you found, how you evaluated them across areas like security, functionality, resource efficiency, technical trajectory (community, maturity, adaptability, etc.) and why you chose a certain approach, how your solution solved the original challenge, and how it might be improved upon in future.

After five challenges, every second challenge must be to go back and modify one of your earlier systems to do something extra (the "how it might be improved upon" part), use less resources, scale better, function in Arabic, or similar. This is a more realistic means of gaining experience as maintenance is actually most of the life of a software project.

If you do a challenge per week, after 25 challenges which will be six months, spend another week or two writing about the common patterns in the problems you have been solving, what you feel is repetitive, how you feel this represents the state of the industry, and what might be coming next.

Bonus challenge: Linux from scratch.

Many people should then offer to hire you... that education will be technologically broader and also more current than most people in the industry. Remember that with experience comes ... experience, ie. understanding the tools is different to knowing how and when to apply them, what their strengths and weaknesses are. That's why you write about it on the way, to maintain some perspective and think at a higher level about the efficacy of the overall system you are putting in place.

Thanks a lot for the advice, I may just do this!

Cheers!