<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Racker Hacker &#187; general advice</title>
	<atom:link href="http://rackerhacker.com/tag/general-advice/feed/" rel="self" type="application/rss+xml" />
	<link>http://rackerhacker.com</link>
	<description>Words of wisdom from a server administrator</description>
	<lastBuildDate>Fri, 03 Feb 2012 04:29:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to write e-mails to nerds (that they will actually read)</title>
		<link>http://rackerhacker.com/2011/08/26/how-to-write-e-mails-to-nerds-that-they-will-actually-read/</link>
		<comments>http://rackerhacker.com/2011/08/26/how-to-write-e-mails-to-nerds-that-they-will-actually-read/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 13:00:06 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2469</guid>
		<description><![CDATA[Standard e-mail etiquette is pretty obvious to most of us and if you're good at it, you'll get your point across more often without stepping on toes or causing unneeded confusion. Simple things like identifying yourself well, avoiding sarcasm and adding context to statements are all extremely beneficial. However, writing e-mails to highly technical developers, [...]<p><a href="http://rackerhacker.com/2011/08/26/how-to-write-e-mails-to-nerds-that-they-will-actually-read/">How to write e-mails to nerds (that they will actually read)</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>Standard e-mail etiquette is pretty obvious to most of us and if you're good at it, you'll get your point across more often without stepping on toes or causing unneeded confusion.  Simple things like identifying yourself well, avoiding sarcasm and adding context to statements are all extremely beneficial.  However, writing e-mails to highly technical developers, system administrators, and engineers is a little trickier.  These types of e-mail recipients don't really enjoy handling e-mail (inbound or outbound) and most find that e-mail is just a speed bump which interrupts their productivity.</p>
<p>If you're not technical, you might be asking yourself: <em>"I need to e-mail technical people and they need to take what I say seriously?  How do I do it?"</em>  It's not impossible, but the rest of this blog post should help.</p>
<h3>Brevity is key</h3>
<p>There are some people who thrive on receiving e-mail, sending e-mail, and talking about e-mail that they've sent or received.  Most nerds don't feel this way.</p>
<p>You need to get your point across concisely and succinctly so that your e-mail is seen as less of a distraction.  Avoid adding a lot of context where it isn't needed and try to summarize business needs and processes unless details are absolutely critical.  If you need to send your e-mail to multiple recipients and some of those recipients need additional details, provide an abstract at the beginning of the e-mail.</p>
<h3>Learn the ways of TL;DR</h3>
<p>I've heard quite a few conversations like these around the office:</p>
<blockquote><p>
Nerd 1: "Did you get that e-mail from [name here]?"<br />
Nerd 2: "The six page one with four PDF files attached?"<br />
Nerd 1: "Yeah. That one."<br />
Nerd 2: "TL;DR dude, seriously. Did you read it?"<br />
Nerd 1: "Nah. I might read it later."
</p></blockquote>
<p>If someone's ever mentioned "TL;DR" (too long; didn't read) when your e-mail was mentioned, don't fret.  It's a quick fix.  Just add a quick summary to the top of your e-mail prefaced with "TL;DR".  Provide a really brief summary (bulleted lists are a plus) of your e-mail in the section and then start your e-mail right afterwards.  Here's an example:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">TL;DR
  * next software release deploys Monday
  * two bugs remaining to fix
  * we will get started at 8AM Saturday, yeaaaaah</pre></div></div>

<p><em>Missed the joke? <a href="http://en.wikipedia.org/wiki/Bill_Lumbergh">Head over to Wikipedia</a>.</em></p>
<p>If one of the summary points interests a recipient, they'll scan your e-mail for the pertinent sections.  Some recipients may only need to see what's in the summary and they won't bother reading the remainder.  Either way, the effectiveness of your e-mail increases by leaps and bounds.</p>
<h3>Plain text</h3>
<p><div id="attachment_2483" class="wp-caption alignright" style="width: 310px"><a href="http://rackerhacker.com/wp-content/uploads/2011/08/mutt-screenshots_001.jpg"><img src="http://rackerhacker.com/wp-content/uploads/2011/08/mutt-screenshots_001-300x195.jpg" alt="" title="mutt-screenshots_001" width="300" height="195" class="size-medium wp-image-2483" /></a><p class="wp-caption-text">Users of mutt prefer plain text e-mails</p></div>If you only take away one thing from this entire post, let it be this section.  Writing e-mails in plain text is *highly recommended* if you want a technical person to take your e-mail seriously.  Many system administrators I know use <a href="http://www.mutt.org/">mutt</a>, a text-based console-only e-mail reader.  Click the thumbnail at the right and imagine what your e-mails would look like if they're full of images, stylesheets and background images.  Better yet, imagine if your entire e-mail was in an image and the e-mail itself had no text.</p>
<p>Here are a few more tips under this category:</p>
<ul>
<li>Don't use Outlook stationery.</li>
<li>Never send e-mails with an image as the e-mail itself.</li>
<li><strong>No Comic Sans at any time. Period.</strong></li>
<li>Avoid graphical e-mail signatures (more on that in a moment).</li>
</ul>
<h3>E-mail signatures</h3>
<p>Brevity can definitely be applied to e-mail signatures, too.  How many times have you seen e-mails that end like this:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">Frank Frankelton MCSE, RHCSA, RHCE, CCNA, RHCA, LPIC-3, Ph.D., M.D., Esq., CMDBA
Systems Adminstrator Extraordinaire, Database Administrator, All-around great guy
Office: 210-555-1212
Mobile: 210-555-1213
Other Mobile: 210-555-1214
Fax: 210-555-1215
VOIP: 210-555-1216
AIM: frankeltonia
Twitter: @frankyfrank
Jabber: frankfurter@frankeltonisinthehouse.com
Big Company, Inc</pre></div></div>

<p>You might think that nobody would ever send out e-mails with a signature like the one above, but I've seen some that are actually worse.  Keep the signature short and only put in the information that people really need to know.  Generally, your name and title or department is sufficient for e-mail signatures (unless your local/federal laws require otherwise).  Always preface it with a double dash "--" on a line by itself to signify that the remainder of the e-mail is the signature.</p>
<h3>Summary</h3>
<p>Keep it simple, keep it brief, and keep it relevant.  While the suggestions above might not apply to every business or every person, following the suggestions will increase the effectiveness of your e-mails and ensure that your voice is heard on the other end.</p>
<p>I'm really interested to hear your comments.  Are there some suggestions you have that I missed in the post?  Did I make some suggestions which didn't make sense or don't apply to you?  Let me know!</p>
<p><a href="http://rackerhacker.com/2011/08/26/how-to-write-e-mails-to-nerds-that-they-will-actually-read/">How to write e-mails to nerds (that they will actually read)</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/08/26/how-to-write-e-mails-to-nerds-that-they-will-actually-read/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Contest winners from the &quot;Inspire a sysadmin&quot; contest</title>
		<link>http://rackerhacker.com/2011/08/22/contest-winners-from-the-inspire-a-sysadmin-contest/</link>
		<comments>http://rackerhacker.com/2011/08/22/contest-winners-from-the-inspire-a-sysadmin-contest/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 12:43:53 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2442</guid>
		<description><![CDATA[Before I get started, I'd like to give a big thanks to all of the visitors who dropped by and participated in the contest last week. Also, thanks to ThinkGeek for offering to pay for (and double) one of the prizes! Here are the list of winners: Grand Prize ($50 at ThinkGeek): Dan Udey Runners-Up [...]<p><a href="http://rackerhacker.com/2011/08/22/contest-winners-from-the-inspire-a-sysadmin-contest/">Contest winners from the "Inspire a sysadmin" contest</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>Before I get started, I'd like to give a big thanks to all of the visitors who dropped by and <a href="http://rackerhacker.com/2011/08/17/inspire-a-sysadmin-get-a-thinkgeek-gift-certificate/">participated in the contest</a> last week.  Also, thanks to <a href="http://thinkgeek.com/">ThinkGeek</a> for offering to pay for (and double) one of the prizes!</p>
<p>Here are the list of winners:</p>
<ul>
<li>Grand Prize ($50 at ThinkGeek): <strong>Dan Udey</strong></li>
<li>Runners-Up ($25 at ThinkGeek): <strong>Joe Wright, Susan Price, and Giovanni Tirloni</strong></li>
</ul>
<p><a href="http://rackerhacker.com/2011/08/17/inspire-a-sysadmin-get-a-thinkgeek-gift-certificate/#comment-23915">Dan's comment rang true</a> with me since much of a sysadmin's job involves responding to crises regardless of how much planning you put forth:</p>
<blockquote><p>Keep a cool head. Focus. Work methodically. Figure out what to do and get it done, and people will remember you as the person who performs under pressure. Once you can do that, you're a sysadmin.</p></blockquote>
<p><a href="http://rackerhacker.com/2011/08/17/inspire-a-sysadmin-get-a-thinkgeek-gift-certificate/#comment-23911">Joe touched on a critical point</a> about system administration:</p>
<blockquote><p>Tell the truth. If you break something, 'fess up and fix it. If you don't know how to do something, admit it and learn how to do the task. Create your own culture of honesty on the job; others will respect and follow your example.</p></blockquote>
<p><a href="http://rackerhacker.com/2011/08/17/inspire-a-sysadmin-get-a-thinkgeek-gift-certificate/#comment-23921">Susan offered some inspiration</a> for system administrators stuck in frustrating situations:</p>
<blockquote><p>I know, I know - dumb users, RTFM. Believe me, I've been there. In fact - one of your strategies should be to establish a trusted community where you can VENT about these issues, and get support for yourself. Ask for answers when you don't know them. Restock on the compassion and patience.</p></blockquote>
<p><a href="http://rackerhacker.com/2011/08/17/inspire-a-sysadmin-get-a-thinkgeek-gift-certificate/#comment-23907">Giovanni talked about the basics</a> and what every system administrator should know to get started in a career.  We probably take this for granted, but this is critical to keep in mind:</p>
<blockquote><p>If you are starting in the system administration area, don't praise yourself only because you (blindly?) fixed an issue or helped that friend with his/her server. Ask yourself: Why what I did fixed the issue? Why that was happening in the first place? And more importantly, how to avoid it for all eternity? You won't but it doesn't hurt to aim high.</p></blockquote>
<p><a href="http://rackerhacker.com/wp-content/uploads/2011/08/giftcert-preview.png"><img src="http://rackerhacker.com/wp-content/uploads/2011/08/giftcert-preview.png" alt="ThinkGeek Gift Certificate" title="ThinkGeek Gift Certificate" width="186" height="120" class="alignleft size-full wp-image-2430" /></a>Even though it isn't a runner-up, <a href="http://rackerhacker.com/2011/08/17/inspire-a-sysadmin-get-a-thinkgeek-gift-certificate/#comment-23919">Paul's comment</a> certainly deserves an honorable mention.  His comment is actually a true story (with a slight amount of embellishment, of course) and it serves as a reminder that system administrators and developers must stand up for their beliefs even if it goes against the beliefs of their superiors.  If your managers don't value the feedback, it might be a sign that a career change is in order.</p>
<p>Once again, <strong>a big thanks</strong> goes out to everyone who submitted a comment.  I'll reach out to the winners today and get the gift certificates sent out to them.</p>
<p><a href="http://rackerhacker.com/2011/08/22/contest-winners-from-the-inspire-a-sysadmin-contest/">Contest winners from the "Inspire a sysadmin" contest</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/08/22/contest-winners-from-the-inspire-a-sysadmin-contest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Success with stress</title>
		<link>http://rackerhacker.com/2011/07/21/success-with-stress/</link>
		<comments>http://rackerhacker.com/2011/07/21/success-with-stress/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 01:50:34 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2353</guid>
		<description><![CDATA[This is a copy of a post I wrote for the Rackspace Talent blog. Much of it probably applies to the job of a system administrator, so I figured it would be a good idea to post it here as well. Let me know what you think! Although Rackspace has one of the best work [...]<p><a href="http://rackerhacker.com/2011/07/21/success-with-stress/">Success with stress</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p><em>This is a <a href="http://rackertalent.com/rackers/success-with-stress/">copy of a post</a> I wrote for the <a href="http://rackertalent.com/rackers/">Rackspace Talent</a> blog.  Much of it probably applies to the job of a system administrator, so I figured it would be a good idea to post it here as well.  Let me know what you think!</em></p>
<hr />
<a href="http://rackerhacker.com/wp-content/uploads/2011/07/BustTheKeyboard.jpg"><img src="http://rackerhacker.com/wp-content/uploads/2011/07/BustTheKeyboard-199x300.jpg" alt="sledgehammer hitting a keyboard" title="success with stress" width="199" height="300" class="alignright size-medium wp-image-2356" /></a>Although Rackspace has one of the best work environments of any company I’ve worked for, there are plenty of opportunities to become stressed.</p>
<p>Stress can come from a variety of sources. Some of the obvious ones involve dealing with outages or tight deadlines, but there are some that aren’t so obvious, such as maintaining the customers’ trust and interpersonal issues.</p>
<p>There’s one thing you must remember: stress doesn’t have to rule your life. I’ve learned (and sometimes stumbled upon) some good techniques to prevent many of the negative effects of stressful situations at work and they’re definitely worth a try.</p>
<p><strong>Know what you’re up against</strong><br />
It’s hard to battle a source of stress if you don’t know why it’s bothering you. Take the problem you’re facing and break it down into pieces. There are going to be some things you can and can’t change. Put the things you can’t change aside and focus on the things you’re able to change. As you tackle the list of things you can change, you might find ways to work around the things you can’t.</p>
<p><strong>Interpersonal issues are easy</strong><br />
Stress that comes from dealing with coworkers may seem insurmountable at times. However, this type of stress is easily fixed and it normally stems from insufficient communication or conflicting goals. There’s an informal policy I’ve had on most of my teams called “Take it to the Racker” and it’s been quite successful. The basic idea is that if you have problems with another Racker, whether it’s something personal or work-related, take the grievance to them directly (in private, of course) and find common ground.</p>
<p>More often than not, this process leads to a good work relationship. It also improves communication drastically in the short term and it generally lasts if the people involved keep up the communication over time. I’ve seen Rackers who are so upset that they refuse to sit next to each other and after this process, they’re eating lunch together and working on the same projects.</p>
<p><strong>Don’t fight your battles alone</strong><br />
Your best resources for fighting stress are all around you. Lean on your manager or your coworkers for help. Remember what your mother always told you: a trouble shared is a trouble halved. Your coworker might have a solution to a particular problem which frees up an hour for you each day and allows you to work on other projects. Your manager might not know that a particular task doesn’t fit your strengths and they might be able to provide you with another project that plays to your strengths.</p>
<p>Is it possible to reduce your stress level to zero at work? I don’t think so. However, you should always have a goal to reduce it when it makes sense.</p>
<p>As always, I’m interested to hear your comments. Which stress-reduction strategies work best for you? What is the source of most of your stress?</p>
<p><a href="http://rackerhacker.com/2011/07/21/success-with-stress/">Success with stress</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/07/21/success-with-stress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Do your homework before a technical interview</title>
		<link>http://rackerhacker.com/2011/05/02/do-your-homework-before-a-technical-interview/</link>
		<comments>http://rackerhacker.com/2011/05/02/do-your-homework-before-a-technical-interview/#comments</comments>
		<pubDate>Tue, 03 May 2011 02:05:05 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[rackspace]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2284</guid>
		<description><![CDATA[If you work for a growing company like I do, it's inevitable that you'll have to do your fair share of interviewing. I love it when I leave an interview with a good feeling about the candidate. That "wow, they really nailed it" feeling is always great to have when you need to fill a [...]<p><a href="http://rackerhacker.com/2011/05/02/do-your-homework-before-a-technical-interview/">Do your homework before a technical interview</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>If you work for a growing company like I do, it's inevitable that you'll have to do your fair share of interviewing.  I love it when I leave an interview with a good feeling about the candidate.  That "wow, they really nailed it" feeling is always great to have when you need to fill a critical role.  Most often, the successful candidates are the ones who do their homework before they ever walk in our office doors.</p>
<p>What do I mean by "do your homework?"  Here are some bullet points to get you on your way:</p>
<p><strong>Know what the company does.</strong><br />
This one is critical and it should be easy.  However, make sure to do thorough research first.  For example, if you interviewed at a company like Apple, becoming familiar with their hardware lineup should be a no-brainer.  That's their bread and butter.  On the other hand, remember that Apple isn't solely a hardware company; they write lots of software, provide online productivity services, and they distribute music, movies, and other entertainment media.</p>
<p>While you're doing this research, try to discover what makes the company unique.  Sure, <a href="http://www.apple.com/">Apple</a> sells laptops and desktops (just like a lot of other companies), but what makes their particular products unique?  Is there something unique about the way they provide their services?  Have they cornered a certain market segment by providing a combination of products and services to that group of consumers?  Answering these simple questions may help you tip the scales in the interview process.</p>
<p><strong>Try one or more of the company's products.</strong><br />
The feasibility of trying a company's product before an interview could be debatable.  For example, if you wanted to interview at <a href="http://cray.com/">Cray</a>, you probably don't need to drop $2M USD on your own <a href="http://www.cray.com/Products/XE/Systems.aspx">XE6</a> before walking in the door.  For companies where the barrier to entry for purchasing a product is much lower, such as cloud computing companies, there's no excuse to not try things out first.  Amazon has a <a href="http://aws.amazon.com/free/">free tier</a> and a Rackspace Cloud Server could cost you <a href="http://www.rackspace.com/cloud/cloud_hosting_products/servers/pricing/">as little as $2.50 per week</a>.</p>
<p>It's concerning when I talk to an applicant about a job working with Rackspace's Cloud Servers and they haven't tried out any cloud products from any provider.  How can I take a candidate's interest seriously when they haven't shown interest in any portion of my group's market segment?</p>
<p><strong>Know what the company's competitors do.</strong><br />
It's often more impressive to an interviewer to know what a company's competitors are doing and how it compares to what that company is doing in the market.  For example, if you can walk into an interview and say "I like the way your company makes these widgets, but Company X is able to make them more lightweight, and I value that more than the added customer service your company offers."  This shows the interviewer that you're familiar with various products in the segment and you've used them enough to understand what makes them different.</p>
<p>Some of you might be thinking: "Why would I say something like that to the interviewer? They'll think I'm being too negative about their product."  That's always possible, but you can guard against it by wording everything carefully.  Make sure you have a solid reason for the way you feel that is based on something substantial (usability, price, features, etc).  I've had candidates talk for five to ten minutes about why one of our product is inferior to one of our competitors' products and I was very impressed.</p>
<p>One quick gotcha: your interviewer might turn your comments back on you and ask you how you would improve one of the inferior products (I do this regularly).  Make sure that you're prepared for that question and consider offering up a suggestion before the question is presented to you.</p>
<p><strong>Can't get the information you need? Ask!</strong><br />
When you reach the end of the interview and the interviewer asks if you have questions, be sure to ask any questions about topics you had trouble researching.  Going back to the Cray example, compare what you know about an XE6 to servers you've used before.  You could mention a problem you had with the density of your previous configurations and ask how they overcame that hurdle at Cray.  If it's a proprietary trade secret, you might not get an answer, but they'll know that you did some serious research ahead of time.  If they can share the answer, they might still be impressed, and you might end up learning something you didn't know prior to the interview.</p>
<p><strong>Conclusion</strong><br />
In summary, doing your homework and learning about the company shows the interviewers that you not only have what it takes to do the work, but that the work interests you as well.  I've interviewed folks in the past who lacked on technical ability but had plenty of desire and drive.  More often than not, those people are now Rackers.</p>
<p><a href="http://rackerhacker.com/2011/05/02/do-your-homework-before-a-technical-interview/">Do your homework before a technical interview</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/05/02/do-your-homework-before-a-technical-interview/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to survive as a technical manager</title>
		<link>http://rackerhacker.com/2011/03/29/how-to-survive-as-a-technical-manager/</link>
		<comments>http://rackerhacker.com/2011/03/29/how-to-survive-as-a-technical-manager/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 14:25:59 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[rackspace]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2234</guid>
		<description><![CDATA[Anyone who says management is easy obviously hasn't done it for very long or they're not doing their job very well. Coordinating the activities and personal development of each person on the team is always a challenge and it introduces an unbelievable number of variables into an already difficult job. However, watching members of the [...]<p><a href="http://rackerhacker.com/2011/03/29/how-to-survive-as-a-technical-manager/">How to survive as a technical manager</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>Anyone who says management is easy obviously hasn't done it for very long or they're not doing their job very well.  Coordinating the activities and personal development of each person on the team is always a challenge and it introduces an unbelievable number of variables into an already difficult job.  However, watching members of the team grow and succeed in their work is tremendously rewarding.</p>
<p>Taking on the job of a technical manager presents its own unique challenges.  It's easy for a technical manager to lose focus and get down in the weeds of daily work.  It's also very difficult to let go of the reins and resign to the fact that the direct involvement in technical work will have to be reduced.</p>
<p>These problems resonate with me as I've recently taken on another technical management role at Rackspace.  My previous experience involved managing a team of technicians at various skill levels who were working on customer environments made up of dedicated servers and network equipment.  The current position has quite a few differences.  I'm now managing a small group of highly technical and extremely dedicated Linux engineers and we're responsible for maintaining the systems and networks which run the Cloud Servers product.</p>
<p>One of my goals of this blog is to help others learn things much more easily than I have.  Here are some things I've had to learn the hard way while working as a technical manager:</p>
<p><strong>Get out of the mindset of an individual contributor</strong><br />
When you're a system administrator on a team (or by yourself), you're often judged on your personal job performance.  Team interaction is important for some companies (especially at Rackspace), but not for others.  Breaking the mindset of being an individual contributor was extremely difficult for me to do.</p>
<p>Managers are judged on the success of the team as a whole.  Encouraging your team members to succeed and playing an active role in their personal and professional development is key.  Each time you find yourself buried in the weeds of a problem rather than facilitating your team's work on the problem is when your performance as a manager will drop.  If you do it more often, you may find that your team members aren't getting the support they need.</p>
<p><strong>Don't be afraid of your team becoming smarter than you</strong><br />
One of the biggest things I've heard from my team is: "Aren't you worried about losing your technical skills when you're a manager?"  My answer: "Of course."  Anyone who has technical abilities will always be afraid of watching those abilities wane over time.  However, as your team becomes stronger, you should be able to continue learning not through your own work, but through theirs.  When your team members see that you're still interested in learning and you're now able to learn from them, they'll become more energized about their own work.</p>
<p>If you find yourself thinking negatively about a potential job candidate because they're smarter than you, step back and think for a moment.  Put your own ego aside and consider what's best for you, your team, and your company.  Your goal is to build a strong and successful team, not to pad your own ego.  If your managers are judging you (as a technical manager) on your technical ability, then you need to solve that problem first.</p>
<p><strong>Inspire instead of direct</strong><br />
Every manager faces the challenge of working with team members who disagree with a particular company policy or with the direction of their particular infrastructure.  Keep in mind that your team members are probably not intending to be insubordinate and they might have something useful to contribute.</p>
<p>When you find yourself locking horns with your team members, inspire a discussion about the problem.  Break out the disagreement onto a whiteboard and let the team make suggestions for improvements.  Even if the entire discussion leads back to the fact that the original problem is inevitable, fostering that feedback loop is critical.  You'll learn more about your team while they find ways to express their opinions and feel empowered.</p>
<p>The really tough part is when your team comes up with an alternative plan and you find yourself presenting to your leadership team.  Always remember to take it seriously and know that you may need to refine the plan many times over before you find something acceptable for your team and the business.</p>
<p><strong>De-stress by staying on task</strong><br />
If you're anything like me, you need some way to keep tabs on action items coming from meetings, e-mails, phone calls, and walk-ups.  I've heard great things about applications like <a href="http://www.omnigroup.com/products/omnifocus/">OmniFocus</a> and <a href="http://culturedcode.com/things/">Things</a>, but I settled on <a href="http://2doapp.com/">2Do</a>.  I really enjoy a strong to-do list which allows me to set priorities, due dates, and write extended notes about a particular task.</p>
<p>The best way to tackle a wall of tasks is to keep them organized into a concise list.  Even if it's a small task, get it into your list so it's on your radar and you won't forget it.  Work through the simple tasks and the high priority ones first but watch out for tasks with due dates.</p>
<p><strong>Conclusion</strong><br />
All of these processes get easier over time and although your job will surely have challenges and pitfalls, the enjoyment will greatly increase.  I feel privileged to lead a team of talented people who work on a complex and ever-expanding product.</p>
<p>Also, I'd like to mention that I'm not an expert on management!  There are probably much better ways to do much of this than I've outlined in this post.  Be sure to share your ideas in the comments section below.</p>
<p><a href="http://rackerhacker.com/2011/03/29/how-to-survive-as-a-technical-manager/">How to survive as a technical manager</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/03/29/how-to-survive-as-a-technical-manager/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Strategies for detecting a compromised Linux server</title>
		<link>http://rackerhacker.com/2011/03/09/strategies-for-detecting-a-compromised-linux-server/</link>
		<comments>http://rackerhacker.com/2011/03/09/strategies-for-detecting-a-compromised-linux-server/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 02:52:16 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=1273</guid>
		<description><![CDATA[There are few things which will rattle systems administrators more than a compromised server. It gives you the same feeling that you would have if someone broke into your house or car, except that it's much more difficult (with a server) to determine how to clean up the compromise and found out how the attacker [...]<p><a href="http://rackerhacker.com/2011/03/09/strategies-for-detecting-a-compromised-linux-server/">Strategies for detecting a compromised Linux server</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>There are few things which will rattle systems administrators more than a compromised server.  It gives you the same feeling that you would have if someone broke into your house or car, except that it's much more difficult (with a server) to determine how to clean up the compromise and found out how the attacker gained access.  In addition, leaving a compromise in place for an extended period can lead to other problems:</p>
<ul>
<li>your server could be used to gain access other servers</li>
<li>data could be stolen from your server's databases or storage devices</li>
<li>an attacker could capture data from your server's local network</li>
<li>denial of service attacks could be launched using your server as an active participant</li>
</ul>
<p>The best ways to limit your server's attack surface are pretty obvious: limit network access, keep your OS packages up to date, and regularly audit any code which is accessible externally or internally.  As we all know, your server can still become compromised even with all of these preventative measures in place.</p>
<p>Here are some tips which will allow you to rapidly detect a compromise on your servers:</p>
<p><strong>Abnormal network usage patterns and atypical bandwidth consumption</strong><br />
Most sites will have a fairly normal traffic pattern which repeats itself daily.  If your traffic graph suddenly has a plateau or spikes drastically during different parts of the day, that could signify that there is something worth reviewing.  Also, if your site normally consumes about 2TB of traffic per month and you're at the 1.5TB mark on the fifth day of the month, you might want to examine the server more closely.</p>
<p>On the flip side, look for dips in network traffic as well.  This may mean that a compromise is interfering with the operation of a particular daemon, or there may be a rogue daemon listening on a trusted port during certain periods.</p>
<p>Many compromises consist of simple scripts which scan for other servers to infect or participate in large denial of service attacks.  The scans may show up as a large amount of packets, but the denial of service attacks will usually consume a large amount of bandwidth.  Keeping tabs on network traffic is easily done with open source software like <a href="http://munin-monitoring.org/">munin</a>, <a href="http://www.cacti.net/">cacti</a>, or <a href="http://oss.oetiker.ch/mrtg/">MRTG</a>.</p>
<p><strong>Unusual open ports</strong><br />
If you run a web server on port 80, but <code>netstat -ntlp</code> shows something listening on various ports over 1024, those processes are worth reviewing.  Use commands like <code>lsof</code> to probe the system for the files and network ports held open by the processes.  You can also check within <code>/proc/[pid]</code> to find the directory where the processes were originally launched.</p>
<p>Watch out for processes started within directories like <code>/dev/shm</code>, <code>/tmp</code> or any directories in which your daemons have write access.  You might see that some processes were started in a user's home directory.  If that's the case, it might be a good time to reset that user's password or clear out their ssh key.  Review the output from <code>last</code> authentication logs to see if there are account logins from peculiar locations.  If you know the user lives in the US, but there are logins from various other countries over a short period, you've got a serious problem.</p>
<p>I've used applications like <a href="http://www.chkrootkit.org/">chkrootkit</a> and <a href="http://www.rootkit.nl/projects/rootkit_hunter.html">rkhunter</a> in the past, but I still prefer a keen eye and <code>netstat</code> on most occasions. </p>
<p><strong>Command output is unusual</strong><br />
I've seen compromises in the past where the attacker actually took the time to replace integral applications like <code>ps</code>, <code>top</code> and <code>lsof</code> to hide the evidence of the ongoing compromise.  However, a quick peek in <code>/proc</code> revealed that there was a lot more going on.</p>
<p>If you suspect a compromise like this one, you may want to use the functionality provided by <code>rpm</code> to verify the integrity of the packages currently installed.  You can quickly hunt for changed files by running <code>rpm -Va | grep ^..5</code>.</p>
<p>Keeping tabs on changing files can be a challenge, but applications like <a href="http://www.tripwire.org/">tripwire</a> and good ol' <a href="http://www.logwatch.org/">logwatch</a> can save you in a pinch.</p>
<p><strong>Summary</strong><br />
We can all agree that the best way to prevent a compromise is to take precautions before putting anything into production.  In real life, something will always be forgotten, so detection is a must.  It's critical to keep in mind that <em>monitoring a server means more than keeping track on uptime</em>.  Keeping tabs on performance anomalies will allow you to find the compromise sooner and that keeps the damage done to a minimum.</p>
<p><a href="http://rackerhacker.com/2011/03/09/strategies-for-detecting-a-compromised-linux-server/">Strategies for detecting a compromised Linux server</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/03/09/strategies-for-detecting-a-compromised-linux-server/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Strategies for storing backups</title>
		<link>http://rackerhacker.com/2011/01/09/strategies-for-storing-backups/</link>
		<comments>http://rackerhacker.com/2011/01/09/strategies-for-storing-backups/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 01:20:44 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[emergency]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2123</guid>
		<description><![CDATA[Although it's not a glamorous subject for system administrators, backups are necessary for any production environment. Those who run their systems without backups generally learn from their errors in a very painful way. However, the way you store your backups may sometimes prove to be just as vital as the methods you use to backup [...]<p><a href="http://rackerhacker.com/2011/01/09/strategies-for-storing-backups/">Strategies for storing backups</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>Although it's not a glamorous subject for system administrators, backups are necessary for any production environment.  Those who run their systems without backups generally learn from their errors in a very painful way.  However, the way you store your backups may sometimes prove to be just as vital as the methods you use to backup your data.</p>
<p>For my environments, I follow a strategy like this: I have some backups immediately accessible, others that are accessible very quickly (but not instantly), and others that are offsite and may take a bit more time to access.</p>
<p><strong>Immediately accessible backups</strong><br />
One of the easiest way to have an immediately accessible backup is to have multiple machines online running the same versions of code or databases in a high availability group.  If you have a node which fails, the remaining nodes should be able to handle the requests immediately.  You may not consider this to be a backup under the traditional definition of what a backup should be, but it's functionally similar.</p>
<p><strong>Backups that are accessible quickly</strong><br />
This second level of backups should be stored very close to your environment or within the environment itself.  If you have multiple database and web server nodes, you could consider storing your web backups on the database servers and vice versa.  For those who run very sensitive applications, this may violate the provisions of different certifications and regulations.  A server dedicated to holding backups may be a viable alternative for additional security.</p>
<p><strong>Offsite backup storage</strong><br />
These are the backups that need to be geographically distant from your main environment.  Also, you should always consider storing these backups on more than one medium with more than one company.</p>
<p>For example, if your hosting providers offers a storage service, it's fine to store one set of your backups there, but consider storing them with a competitor as well.  If you store your backups with your hosting provider in multiple places, you could be caught be a provider issue and lose access to your backups entirely.  Hosting with multiple providers will allow you to access at least one copy of your backups even if there are billing or technical issues with a particular provider.</p>
<p>Another thing to keep in mind with offsite backup storage is how long it will take to transfer the backups to your hosting environment in case of an emergency.  If your hosting environment is in Texas, but your backups are stored in Australia, you're going to have a longer wait when you transfer your data back.</p>
<p><strong>A specific example</strong><br />
My environments are all in Dallas, Texas and I have a highly available environment with multiple instances.  My second layer of backups are stored within the environment as well as in Rackspace's Cloud Files in Dallas.  My third layer of backups are stored with Amazon S3 via Jungle Disk and at my home on a RAID array.</p>
<p>While I hope you never need to access your backups under duress, these tips should help to reduce your stress if you need to restore data in a hurry.</p>
<p><a href="http://rackerhacker.com/2011/01/09/strategies-for-storing-backups/">Strategies for storing backups</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/01/09/strategies-for-storing-backups/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>One RHCA exam down, five to go</title>
		<link>http://rackerhacker.com/2011/01/06/one-rhca-exam-down-five-to-go/</link>
		<comments>http://rackerhacker.com/2011/01/06/one-rhca-exam-down-five-to-go/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 02:24:49 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[rhca]]></category>
		<category><![CDATA[rhce]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=2107</guid>
		<description><![CDATA[While I'm not the biggest proponent of certifications, I still think you can learn some valuable information while studying for some certification tests. A good example of that is Red Hat's System Monitoring and Performance Tuning Expertise Exam. It's one test out of five in the Red Hat Certified Architect (RHCA) track of exams. I [...]<p><a href="http://rackerhacker.com/2011/01/06/one-rhca-exam-down-five-to-go/">One RHCA exam down, five to go</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://rackerhacker.com/wp-content/uploads/2011/01/Major_Hayden_EX442.jpg"><img src="http://rackerhacker.com/wp-content/uploads/2011/01/Major_Hayden_EX442-300x231.jpg" alt="EX442" title="EX442" width="300" height="231" class="alignright size-medium wp-image-2115" /></a>While I'm not the biggest proponent of certifications, I still think you can learn some valuable information while studying for some certification tests.  A good example of that is Red Hat's <a href="https://www.redhat.com/courses/ex442_red_hat_enterprise_system_monitoring_and_performance_tuning_expertise_exam/">System Monitoring and Performance Tuning Expertise Exam</a>.  It's one test out of five in the <a href="http://www.redhat.com/certification/rhca/">Red Hat Certified Architect (RHCA)</a> track of exams.  I passed the exam this week and it's definitely one of the most difficult certification exams I've ever taken.</p>
<p>Many of the <a href="https://www.redhat.com/courses/rh442_red_hat_enterprise_system_monitoring_and_performance_tuning/details/">topics covered on the EX442 exam</a> are really handy for Linux system administrators.  The advanced filesystem configuration, software RAID optimization, and process scheduling knowledge can provide some tangible performance gains on just about any Linux server.</p>
<p>I especially enjoyed learning about <a href="http://sourceware.org/systemtap/">SystemTap</a>.  I'd heard about it before, but I never really understood what it did and how much power it can give a system administrator on a server.  You can <a href="http://sourceware.org/systemtap/examples/keyword-index.html">sample a wide variety of system events</a> quickly with relative ease and you're not bound to the hardware dependencies of <a href="http://oprofile.sourceforge.net/news/">OProfile</a>.</p>
<p>Bear in mind that you'll need a valid <a href="http://www.redhat.com/certification/rhce/">RHCE</a> to get started with the RHCA exams.  That's another certification that I'd definitely recommend as it helps you learn a wide variety of administration topics that can be applied to almost any Linux distribution available today.</p>
<p><a href="http://rackerhacker.com/2011/01/06/one-rhca-exam-down-five-to-go/">One RHCA exam down, five to go</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2011/01/06/one-rhca-exam-down-five-to-go/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Happy Thanksgiving</title>
		<link>http://rackerhacker.com/2010/11/25/happy-thanksgiving-2010/</link>
		<comments>http://rackerhacker.com/2010/11/25/happy-thanksgiving-2010/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 16:00:18 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[holiday]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=1972</guid>
		<description><![CDATA[For those of us in the United States, we celebrate Thanksgiving today. Although it means different things for different people, I consider it to be a good day to remember those who have helped us and count the blessings that we all take for granted. Without a doubt, I'm most thankful for my family. They're [...]<p><a href="http://rackerhacker.com/2010/11/25/happy-thanksgiving-2010/">Happy Thanksgiving</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>For those of us in the United States, we celebrate <a href="http://en.wikipedia.org/wiki/Thanksgiving">Thanksgiving</a> today.  Although it means different things for different people, I consider it to be a good day to remember those who have helped us and count the blessings that we all take for granted.</p>
<p>Without a doubt, I'm most thankful for my family.  They're my support base and I couldn't get through my days without them.</p>
<p>I wish I could thank my coworkers, mentors, and close friends individually, but this blog post would get rather lengthy.  To everyone who has had taken the time to teach me something: I thank you.  You've inspired me to continue learning and inspire others to do the same.</p>
<p>Happy Thanksgiving to you and your families.  Please travel safely and take some time to relax.</p>
<p><a href="http://rackerhacker.com/2010/11/25/happy-thanksgiving-2010/">Happy Thanksgiving</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2010/11/25/happy-thanksgiving-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>400th post: Looking back at where this blog started</title>
		<link>http://rackerhacker.com/2010/11/13/400th-post-looking-back-at-where-this-blog-started/</link>
		<comments>http://rackerhacker.com/2010/11/13/400th-post-looking-back-at-where-this-blog-started/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 02:06:00 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[rackspace]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=1871</guid>
		<description><![CDATA[Last night's post about my charity drive for the Movember Foundation was the 400th post on my blog! I started posting on rackerhacker.com way back in the spring of 2007 shortly after I was hired by Rackspace in December of 2006. My main purpose for the blog at the beginning was to create a place [...]<p><a href="http://rackerhacker.com/2010/11/13/400th-post-looking-back-at-where-this-blog-started/">400th post: Looking back at where this blog started</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>Last night's <a href="/2010/11/12/raising-money-for-prostate-cancer-research-and-survivor-support/">post</a> about my charity drive for the <a href="http://us.movember.com/">Movember Foundation</a> was the 400th post on my blog!  I started posting on rackerhacker.com way back in the spring of 2007 shortly after I was hired by <a href="http://rackspace.com/">Rackspace</a> in December of 2006.</p>
<p>My main purpose for the blog at the beginning was to create a place where I could write quick articles about problems I found and how to fix them.  Most of the people around me were using their own handy systems to store notes (Stickies on the Mac, Tomboy notes on Linux, or just simple text files), but they weren't able to share them easily.  I wanted a way to write up a solution and instantly share it with someone.  I also wanted that person to be able to pass along the fix to someone else if they wanted.</p>
<p>Needless to say, it took off from there.</p>
<p>It's important to note that I couldn't have done this by myself.  I've learned some efficient strategies for managing large systems and troubleshooting complex issues from my peers, my managers, and colleagues outside of Rackspace.  There have been many triumphs and there have been quite a few failures.  </p>
<p>The <em>failures</em> have taught me the most.  I've made some pretty large mistakes and here are a few:</p>
<ul>
<li>inserted data into a MySQL slave in an active replication pair</li>
<li>run a fsck on an online ext3 partition</li>
<li>marked a failed drive online in a hardware RAID array</li>
<li>mangled Plesk installations in ways that you can't comprehend</li>
<li>typed 'reboot' into a terminal and pressed enter, only to realize I was in the wrong terminal</li>
<li>ran UPDATE statements without a WHERE clause in MySQL (well, I only did this one twice)</li>
</ul>
<p>Even after all that, people occasionally tell me that I'm very good at what I do.  I don't know if that's true or not, but I'm glad some people think so!  Many of those folks end up asking me this question:</p>
<blockquote><p>How do I learn how to be a successful Linux systems administrator?</p></blockquote>
<p>My answer is this: Be humble. Always be thirsty for knowledge. Don't be afraid to make mistakes. Love what you do and the people you serve.</p>
<p><a href="http://rackerhacker.com/2010/11/13/400th-post-looking-back-at-where-this-blog-started/">400th post: Looking back at where this blog started</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2010/11/13/400th-post-looking-back-at-where-this-blog-started/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A modern implementation and explanation of Linux Virtual Server (LVS)</title>
		<link>http://rackerhacker.com/2010/06/27/modern-implementation-and-explanation-of-linux-virtual-server-lvs/</link>
		<comments>http://rackerhacker.com/2010/06/27/modern-implementation-and-explanation-of-linux-virtual-server-lvs/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 16:03:27 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[high availability]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=1529</guid>
		<description><![CDATA[A typical load balancing configuration using hardware devices or software implementations will be organized such that they resemble the diagram at the right. I usually call this a proxy-type load balancing solution since the load balancer proxies your request to some other nodes. The standard order of operations looks like this: client makes a request [...]<p><a href="http://rackerhacker.com/2010/06/27/modern-implementation-and-explanation-of-linux-virtual-server-lvs/">A modern implementation and explanation of Linux Virtual Server (LVS)</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1533" class="wp-caption alignright" style="width: 207px"><a href="http://rackerhacker.com/wp-content/uploads/2010/06/loadbalancer-viaproxy.png"><img src="http://rackerhacker.com/wp-content/uploads/2010/06/loadbalancer-viaproxy.png" alt="Load balancing via proxy" title="Load balancing via proxy" width="197" height="206" class="size-full wp-image-1533" /></a><p class="wp-caption-text">Typical configuration for a <br />proxy-type load balancer</p></div>A typical load balancing configuration using hardware devices or software implementations will be organized such that they resemble the diagram at the right.  I usually call this a proxy-type load balancing solution since the load balancer proxies your request to some other nodes.  The standard order of operations looks like this:</p>
<ul>
<li>client makes a request</li>
<li>load balancer receives the request</li>
<li>load balancer sends request to a web node</li>
<li>the web server sends content back to the load balancer</li>
<li>the load balancer responds to the client</li>
</ul>
<p>If you're not familiar with load balancing, here's an analogy.  Consider a fast food restaurant.  When you walk up to the counter and place an order, you're asking the person at the counter (the load balancer) for a hamburger.  The person at the counter is going to submit your order, and then a group of people (web nodes) are going to work on it.  Once your hamburger (web request) is ready, your order will be given to the person at the counter and then back to you.</p>
<p>This style of organization can become a problem as your web nodes begin to scale.  It requires you to ensure that your load balancers can keep up with the requests and sustain higher transfer rates that come from having more web nodes serving a greater number of requests.  Imagine the fast food restaurant where you have one person taking the orders but you have 30 people working on the food.  The person at the counter may be able to take orders very quickly, but they may not be able to keep up with the orders coming out of the kitchen.</p>
<p><div id="attachment_1532" class="wp-caption alignright" style="width: 226px"><a href="http://rackerhacker.com/wp-content/uploads/2010/06/loadbalancer-ipvs.png"><img src="http://rackerhacker.com/wp-content/uploads/2010/06/loadbalancer-ipvs.png" alt="Load balancing via Linux Virtual Server" title="Load balancing via Linux Virtual Server" width="216" height="206" class="size-full wp-image-1532" /></a><p class="wp-caption-text">LVS allows for application servers<br /> to respond to clients directly</p></div><br />
This is where <a href="http://en.wikipedia.org/wiki/Linux_Virtual_Server">Linux Virtual Server (LVS)</a> really shines.  LVS operates a bit differently:</p>
<ul>
<li>client makes a request</li>
<li>load balancer receives the request</li>
<li>load balancer sends request to a web node</li>
<li>the web server sends the response <strong>directly to the client</strong></li>
</ul>
<p>The key difference is that the load balancer sends the unaltered request to the web server and the web server responds <em>directly to the client</em>.  Here's the fast food analogy again.  If you ask the person at the counter (the load balancer) for a hamburger, that person is going to take your order and give it to the kitchen staff (the web nodes) to work on it.  This time around, the person at the counter is going to advise the kitchen staff that the order needs to go directly to you once it's complete.  When your hamburger is ready, a member of the kitchen staff will walk to the counter and give it directly to you.</p>
<p>In the fast food analogy, what are the benefits?  As the number of orders and kitchen staff increases, the job of the person at the counter doesn't drastically increase in difficulty.  While that person will have to handle more orders and keep tabs on which of the kitchen staff is working on the least amount of orders, they don't have to worry about returning food to customers.  Also, the kitchen staff doesn't need to waste time handing orders to the person at the counter.  Instead, they can pass these orders directly to the customer that ordered them.</p>
<p>In the world of servers, this is a large benefit.  Since the web servers' responses no longer pass through the load balancer, they can spend more time on what they do best -- balancing traffic.  This allows for smaller, lower-powered load balancing servers from the beginning.  It also allows for increases in web nodes without big changes for the load balancers.</p>
<p>There are three main implementations of LVS to consider:</p>
<p><a href="http://rackerhacker.com/wp-content/uploads/2010/06/Lvslogo.png"><img src="http://rackerhacker.com/wp-content/uploads/2010/06/Lvslogo.png" alt="Linux Virtual Server Logo" title="Linux Virtual Server Logo" width="206" height="206" class="alignright size-full wp-image-1559" /></a><strong>LVS-DR: Direct Routing</strong><br />
The load balancer receives the request and sends the packet directly to a waiting real server to process.  LVS-DR has the best performance, but all of your servers must be on the same network subnet and they have to be able to share the same router (with no other routing devices in between them).</p>
<p><strong>LVS-TUN: Tunneling</strong><br />
This is very similar to the direct routing approach, but the packets are <a href="http://en.wikipedia.org/wiki/IP_tunnel">encapsulated</a> and sent directly to the real servers once the load balancer receives them.  This removes the restriction that all of the devices must be on the same network.  Thanks to encapsulation, you can use this method to load balance between multiple datacenters.</p>
<p><strong>LVS-NAT: Network Address Translation</strong><br />
Using NAT for LVS yields the least performance and scaling of all of the implementation options.  In this configuration, the incoming requests are rewritten so that they will be transported correctly in a NAT environment.  This puts a bigger burden on the load balancer as it must rewrite the requests quickly while still keeping up with how much work is being done by each web server.</p>
<hr />
<strong>Looking for a Linux Virtual Server HOWTO?</strong> Stay tuned.  I'm preparing one for my next post.</p>
<p><a href="http://rackerhacker.com/2010/06/27/modern-implementation-and-explanation-of-linux-virtual-server-lvs/">A modern implementation and explanation of Linux Virtual Server (LVS)</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2010/06/27/modern-implementation-and-explanation-of-linux-virtual-server-lvs/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A New Year System Administrator Inspiration</title>
		<link>http://rackerhacker.com/2010/01/03/a-new-year-system-administrator-inspiration/</link>
		<comments>http://rackerhacker.com/2010/01/03/a-new-year-system-administrator-inspiration/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 02:53:53 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=1104</guid>
		<description><![CDATA[Happy New Year! I certainly hope it's a great one for you, your family, and your business. As the new year begins, I figured it would be a good time to sit down and answer a question that I hear very often: How do I become a better systems administrator? The best way to become [...]<p><a href="http://rackerhacker.com/2010/01/03/a-new-year-system-administrator-inspiration/">A New Year System Administrator Inspiration</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>Happy New Year!  I certainly hope it's a great one for you, your family, and your business.  As the new year begins, I figured it would be a good time to sit down and answer a question that I hear very often:</p>
<p><em>How do I become a better systems administrator?</em></p>
<p>The best way to become a better systems administrator is to <strong>fully understand the theory</strong> of what's happening in your server's environment.</p>
<p>What do I mean by that?  Learn why things aren't happening as you expected and think about all of the factors that could possibly be involved.  Instead of thinking purely about cause and effect, you'll find it much easier and rewarding to consider everything inside and outside your environment before you make any changes.</p>
<p>This still may be a little difficult to fully understand, so he's an example.  Let's say you're handling an issue where a customer can't reach a website hosted on their server.  When you ask them for more details, they might give you the dreaded reply: "It's not coming up."  Start by making a mental list of the problems that are easiest to check:</p>
<ul>
<li>Is the web server daemon running?</li>
<li>If a database server is being used, is it running and accessible?</li>
<li>Is there a software/hardware firewall blocking port 80?</li>
<li>Is a script stuck on the server tying up resources?</li>
<li>Could there be a DNS resolution problem?</li>
<li>Is the server up?</li>
<li>Did a switch fail?</li>
<li>Is the server's hard disk out of space?</li>
<li>Can the customer reach other websites like Google or Yahoo?</li>
<li>If SELinux is involved, have the appropriate contexts been set?</li>
<li>Could the site be a target of a denial of service attack?</li>
<li>Has the server reached its connection tracking limit?</li>
</ul>
<p>Of course, this is a relatively short list, but these are all easy to check.  If you're thinking about cause and effect, you might only consider the web server daemon and some basic network issues.  By considering all of the other factors that may be related, you've ensured that all of the basics are covered before you consider more complex problems.</p>
<p>Most systems administrators have taken an error message and tossed it in en masse into Google before.  Occasionally, no results will appear for the search.  If you find yourself in this situation, try to understand the individual parts of the error message.  Work outward from what you know already.  You should know which daemon said it, and you may have an idea of what the application was doing when the error occurred.  Take time to consider what the daemon is trying to tell you within the context of what it was doing at the time.</p>
<p>One of the easiest ways to force yourself to be immersed into this way of thinking is to host applications for non-technical people.  You'll find that many customers want things done differently, and they're all at different levels of technical aptitude.  Some may find it a frustrating experience at first, but you'll think yourself later.  It will force you to consider all aspects of how a server operates since you might not always know what's happening within a customer's application.</p>
<p>As always, if you find yourself stumbling, remember to ask your peers and colleagues.  Even if they haven't seen the particular issue, they will probably be able to guide you closer to the solution you seek.</p>
<p><a href="http://rackerhacker.com/2010/01/03/a-new-year-system-administrator-inspiration/">A New Year System Administrator Inspiration</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2010/01/03/a-new-year-system-administrator-inspiration/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Upgraded to WordPress 2.5.1</title>
		<link>http://rackerhacker.com/2008/04/28/upgraded-to-wordpress-251/</link>
		<comments>http://rackerhacker.com/2008/04/28/upgraded-to-wordpress-251/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 03:15:39 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[general advice]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=295</guid>
		<description><![CDATA[I've just upgraded RackerHacker to WordPress 2.5.1. If you haven't upgraded your own blog installation yet, I'd recommend doing so soon! Download It Upgrade It Upgraded to WordPress 2.5.1 is a post from: Major Hayden's Racker Hacker blog. Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions [...]<p><a href="http://rackerhacker.com/2008/04/28/upgraded-to-wordpress-251/">Upgraded to WordPress 2.5.1</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p>I've just upgraded RackerHacker to WordPress 2.5.1.  If you haven't upgraded your own blog installation yet, I'd recommend doing so soon!</p>
<p><a href="http://wordpress.org/download/">Download It</a><br />
<a href="http://codex.wordpress.org/Upgrading_WordPress">Upgrade It</a></p>
<p><a href="http://rackerhacker.com/2008/04/28/upgraded-to-wordpress-251/">Upgraded to WordPress 2.5.1</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2008/04/28/upgraded-to-wordpress-251/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small Companies: How to hire and fire a technical person</title>
		<link>http://rackerhacker.com/2008/04/02/small-companies-how-to-hire-and-fire-a-technical-person/</link>
		<comments>http://rackerhacker.com/2008/04/02/small-companies-how-to-hire-and-fire-a-technical-person/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 18:00:06 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[general advice]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=286</guid>
		<description><![CDATA[DISCLAIMER: Okay, technical folks - I'm doing this as a favor to the general community of people that aren't very technical, but they need to know some tips for ridding themselves of a technical person that is harming their business. If you look at it this way, there's a 50/50 chance that this article might [...]<p><a href="http://rackerhacker.com/2008/04/02/small-companies-how-to-hire-and-fire-a-technical-person/">Small Companies: How to hire and fire a technical person</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
			<content:encoded><![CDATA[<p><strong>DISCLAIMER:</strong> Okay, technical folks - I'm doing this as a favor to the general community of people that aren't very technical, but they need to know some tips for ridding themselves of a technical person that is harming their business.  If you look at it this way, there's a 50/50 chance that this article might get you hired instead of fired.</p>
<p>No one has every really asked me "hey, if I want to fire my technical guy and get a new one, how do I do it?" So, how can I answer this question with any authority?  Simple.  I used to run my own company doing technical work for homes and businesses, I was hired and fired by people (much more hiring than firing), and I've learned a lot from being "the tech guy".  Also, from working at Rackspace, and a previous job, I've seen many situations in which a company lets their technical person go without any plan in place.  You never realize how valuable your IT staff are until they're not in the office, and your e-mail server falls apart.</p>
<p><strong>Firing your technician</strong></p>
<p>I'll start with how to fire your current technical person.  It should go without saying, but be sure that you're firing this person for a substantial and legal reason.  If you're firing this person for something trivial or petty, <strong>stop right here and re-evaluate</strong>.  But, if this is the kind of person that ignores your phone calls, takes down services to increase job security, or prints pornography on the office laserjet, then it's time for them to go.</p>
<p>First, create a plan.  How much does this technical person know about the company that could be detrimental if they were fired abruptly?  You'll need to consider things like their access to your buildings, computers, corporate credit cards, cars, and colocated/dedicated servers.  Take an inventory of the access that they have, and also how they access these items.  For example, if they have multiple user accounts on your computer network, then make sure that all of those accounts are accounted for.  If you have secret passwords with any of your service providers, be sure those are documented as well.</p>
<p>If you don't know some of these items, but your technical person does, you might want to get this information from them in a careful manner.  I'd recommend against going in and saying something like "we need to inventory all of our user accounts before you're canned".  You need to find a plausible excuse for you to have a list of this information, and it needs to be something that the technical person won't argue with.  Some good ones I've heard are PCI, SOX or SAS/70 compliance.  Let your employee know that compliance with these standards requires that you keep all of the access to all of these services in a safe place.</p>
<p>By the time you reach this stage, you really should have a new technician in mind.  Interview them after work, or at night time so that the current technical person doesn't become suspicious.  I'll talk more about how to find a new technical person a little later.</p>
<p>At this point, if you can trust your technical person, you should have a proper list of their entry points into your infrastructure.  It's more likely that you don't trust this person at this point since you're firing them after all.  Some might argue with me here, I'd recommend bringing in some other technical person that you undoubtedly trust.  The reason for this is that your technical person may have given you a partial list, or they may have left "backdoors" so that they can access your infrastructure after they leave.  A trusted tech can review your company for any possible issues and can give you a heads up if they find any red flags.  Of course, if your current technical person has set up traps to know when someone logs in, then you may have blown your cover entirely.  I would certainly hope that your situation wouldn't end this badly.</p>
<p>Now that you have a complete list of everything to which your former tech had access, you have an idea of what will be involved in changing everything over.  Most people like to fire employees on Fridays to reduce the chance of violence or uncomfortable moments, so here's my recommendation.  If anything financial needs to be taken care of, get it done late on Thursday or early on Friday.  Then, on Friday, set a time with your current technical person to have a short meeting.  Coordinate this time with your trusted technical person so they can begin changing passwords on accounts which the current tech has access to.  Change the most sensitive passwords first, like the passwords on database servers.  Also, change the root passwords as a high priority, but make sure you eventually change them all since you can be bitten by sudo or SSH keys.</p>
<p>When your current technical person exits the meeting, you're covered.  If the meeting goes well, and the current technical person is amicable, then you're going to be covered since their access is revoked.  If the meeting goes badly, your still covered in case they try to do something nasty.  Their access to your network and corporate infrastructure should be eliminated or minimized before they can do anything destructive.</p>
<p><strong>Hiring your technician</strong></p>
<p>Luckily, hiring a new technical person is a bit easier than firing one.  However, if you do a bad job on the hiring, you'll be referring to the beginning of this article fairly soon.</p>
<p>The best way to find a new technical person is via recommendations from another person.  They've probably had interactions with the tech, and they can give you an idea of their technical prowess and social skills (yes, these are important).  If you can't find any techs through recommendations, you can always check big job sites like Monster, LinkedIn, or Dice.  <strong>Whichever route you choose, be sure to meet the technician in person.</strong> Don't hire someone based on the initials after their name, their previous job experience, or how they sound over the phone.  Your technical person is like a central pillar in your organization, and this needs to be a responsible, sensible, and practical person.</p>
<p>Once you've found one or more technicians that you'd like to hire, you need to test them just a little.  I'd recommend contacting them late in the evening (8-10PM) or early/late on the weekend.  See how receptive and cordial they are at these times, because when something explodes later, you'll probably be calling them after business hours.  You don't want to pick up the phone at 4AM on Saturday when your Exchange server dies only to hear your tech tell you that he'll be in on Monday to fix it for you, and that it can wait until then.  When you talk to the technician on the phone, ask them to do something that forces them to go use the computer.  For example, send them an e-mail for something reasonable that they need to respond to.  Or, tell them that you discovered some neat product or service, and you want to know if they could start working at your company and maintain that product or service.  If they respond quickly and they don't give you the vibe that you've just inconvenienced them horribly, then that's a good sign that you've found a worthy technician.</p>
<p>It's up to you when you bring them on at your company.  Some people might want to hold off until the current technician is out of the way, but some might want to bring the technician in a little early to help with the cleanup of the last technician.  Either way is good in my opinion.  However, I would recommend against having both of them employed at your company simultaneously.  If your old technician is upset about something, that could rub off on the new guy, and you may be returning to the top part of this article sooner rather than later.</p>
<p>Also, don't expect the new technician to be knee-deep in your problems immediately.  They will need some time to figure out your network, review your vital services, and get an idea how everything works together.  If you have the giant list your previous tech made, be sure to furnish it to the new technician so they have an idea of where to go to fix a certain problem.</p>
<p>I certainly hope this article helps!  If you have any questions, drop me a comment and I'll be happy to give additional recommendations.</p>
<p><a href="http://rackerhacker.com/2008/04/02/small-companies-how-to-hire-and-fire-a-technical-person/">Small Companies: How to hire and fire a technical person</a> is a post from: Major Hayden's <a href="http://rackerhacker.com">Racker Hacker</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://rackerhacker.com/2008/04/02/small-companies-how-to-hire-and-fire-a-technical-person/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

