Some quick tips for getting ahead

Do you want to get ahead in this field?  In my experience in the industry, there are a lot of great ways to improve yourself and to put yourself in position to get ahead.  One of the best ways is to show that you are interested in your craft.  There are numerous ways to demonstrate this desire, and dedication; a simple yet great way to do so is by attending industry related conferences and networking events.  Pay for these events as well as certification courses out of pocket if your employer is unwilling to do so.  Paying for your own career betterment out of your own pocket shows your level of commitment to those around you that you may meet at these events as well as those that you work with.  I guarantee you people will notice this.  I would also like to mention that if you are interested in training, certification, or anything the will help you do your job better and employers aren’t willing to help pay for any of these opportunities then often times it is a sign that you have outgrown your current position or will be in the not so distant future.

Another great area to focus on is to never stop learning.  This applies not only to IT but to everything that you do in your life.  Taking the time to learn something new is a great way to help boost your career.  Interested in business?  Take a business class or at least start researching different aspects of business and find what interests you.  Then leverage that newly found knowledge in every day aspects of your life.  I am a firm believer in education overlapping and translating skills from one area to contribute to others.  If you learn a seemingly unrelated skill you never know when and where it will be applicable and it will all contribute to furthering your education and improving your knowledge.  It can be devotion to skills like Documentation, attention to detail, writing, programming, whatever it may be will help to improve and strengthen your IT skills, I promise.  Many of these skills are things that I work on improving outside of my life in IT but certainly they contribute to the success I have experienced in my career.

The final tip I’d like to mention is doing things that others either aren’t willing to do or are not aware of doing.  This is a more subtle point but I believe it is something that will separate people that want to be good at something from those that are content with where they are at in life.  For example, many individuals in IT don’t like to leave their comfort zone for many things.  Learn how to talk to people and network with others in the industry who have already discovered how to get ahead.  They will give you so many great pieces of information and can potentially help you get into new positions as well.  We all know that social skills are not a strong suit for many that are in the IT profession so learning how to talk to people is incredibly valuable.  Yes it will feel awkward and unnatural at first but the more you do it and the more you practice it (just like anything else) the better you will get at it.  And since it is so uncomfortable for many individuals they simply won’t attempt it because it is out of their comfort zone.  There are many other examples of simple ways to get ahead but just by knowing how to leverage and utilize things like networking and being social will help your career more than you might realize.

I am taking a different approach from the usual subject matter, I have just found it difficult recently to find anything technically interesting enough to write about.  I would love to cover more of these areas if there is any interest in the future, I think its an oft missed subject in the IT profession and I happen to like writing about it so hopefully I can get some positive feedback.  As always, if you have anything that you find interesting or think would be a positive contribution let me know, I’m always looking for guest posters and guest content and I welcome the fresh perspective and ideas.

Read More

OpenFlow and the Future of Networking

OpenFlow is all the rage right now and since I just got done doing a product overview of it and its relation to the HP product line we just recently purchased, I thought I would get in a quick post about all of it while the topics and ideas are still fresh in my mind.  So this post will be less of a technical post than usual and more of a detour about my thoughts on networking and the effect OpenFlow is having on it.

I am still trying to wrap my head around some of the key concepts and applications that OpenFlow has to offer but I think I am beginning to understand the core concepts behind it, and honestly I don’t understand all the OpenFlow hate and SDN bashing from other network professionals.

Even thought OpenFlow is a fresh concept for me I can already see potential benefits and possible use cases and I think that there is some great potential with SDN in general.  There must be some interesting value here, otherwise there wouldn’t be so much interest by all of the heavy hitting networking industry leaders like IBM, Cisco, HP, Google, etc. collaborating and working on projects like OpenDaylight and Floodlight. Since the concepts and ideas behind OpenFlow are so new and are largely unexplored there is a very mysterious and exciting quality behind the technology and because of this I believe that creativity can help drive its development and adoption.  The other nice part about OpenFlow is that it is an open standard so it can be developed and extended by whomever feels like participating or contributing (Cisco and its OnePK API and other vendor specific API’s are a different story) to the project and the code base.  I am a huge proponent of Open Source and I feel like having an open standard creates better code and more opportunities for everybody involved, it doesn’t benefit one but rather the collective.

I also want to touch briefly on the technical side of OpenFlow for all the IT pros.  Technology evolves and changes all the time, we’ve seen it time and again in our industry.  If you are stubborn to the point that you won’t dedicate the time to learn something new just because its not what you are familiar with then you probably won’t have much of a future in IT and ops or at least a future going forward in the networking world.  Sure you’ve built a career on your niche ability and skill set to solve complex and challenging networking problems, but that is not a unique quality.  All IT professionals build their careers on their ability to do this (at least the good ones I’ve seen so far), and every other area of IT is subject to these same types of issues that new technology brings.  In my opinion the haters just need to grow up and accept the fact that they will need to remodel their skills from time to time.  It’s not that big of a deal.  And besides, OpenFlow actually looks promising and looks like it will be a great tool for IT pros to utilize to solve interesting problems.

Rather than complain and find fault, embrace OpenFlow, because whether you like it or not, it will have its place in the networking world moving forward.

Read More

A Git Primer for Sysadmins

I am writing this post with the intention of giving readers (and other sysadmins) that are unfamiliar with Git a brief introduction to get up and running as quickly as possible.  There are numerous guides out there but none I have found so far with the spin of getting things working quickly for system administrators.  I recently went through the process of submitting some work of mine to an Open Source project and went through all of the work myself and thought I would write up a little guide to getting started, just in case anyone is interested.  Because of this experience, I thought the process could be streamlined if I presented a simple set of steps and examples for other sysadmins so that they can get started and get comfortable using Git as quickly as possible.  By no means am I advocating that I am a Git expert, I simply know enough to “do stuff” so take this guide for what it is, a simple introduction.  Hopefully it is enough to get the ball rolling and get you hooked on revision control!

Step 1:  If you haven’t already, head over to github and set yourself up with a free account.  The steps are trivial, just like setting up any other account.  You will need to install Git on you machine locally so that you can do everything, sudo apt-get install git in Ubuntu, or, with a little more legwork if you are using Windows.

Step 2:  Once you are all set up and running you can either create a new repository or fork off of somebody else’s repo, which will essentially make a copy of their work to your user account in github.  Since I was contributing to a public project I forked their repo.  This is typically (for beginners at least) done through the website by browsing to the project you are interested in and then clicking the fork button at the top right.

Fork a repo

Once you have copied or forked the project you want, you can begin working on making your own changes and updates to the project.  This is where much of the initial confusion came in for me.  I should make a note here; there are a few things that must be done through the website and others that should be done with the git tool you downloaded and installed earlier.

Step 3:  Clone the repo down to your machine locally to begin making changes.  This is done via command line with the following:

git clone https://github.com/$username/repository.git
git clone https://github.com/jmreicha/curriculum.git

Once you have the repo cloned down to your machine, let’s create a branch which we will use to work on the specific piece of the project we are working on.  There are a few more common commands that are used for working with repos.  In some scenarios the public project may change or get updated while you are working on it so you might want to pull in the most recent changes to your own fork.  The following commands are used to work with public repos and forks.

Fetch new changes from original repo:

git fetch upstream

Merge the fetched changes into your working files:

git merge upstream/master

Pull newest updates and changes from a for or repo:

git pull

Okay, let’s assume that our repository is all up to date and we are ready to start working on the new changes that we want to make.  First, we need to create a local branch to make the changes on.  The command for creating a branch is:

git checkout -b $topic
git checkout -b my_topic

Where $topic is the specific change you will be working on.  Then go ahead and make your changes and/or updates with your favorite text editor.  If you have multiple changes to make it may be a good idea to create a few different branches using the command above.  To switch between branches use the following:

git checkout $branchname
git checkout my_topic

If you are working on a branch and either don’t want to commit the changes or the branch becomes obsolete, you can delete the branch with either of the following commands:

git reset --hard
git branch -d $branchname
git branch -d my_topic

Step 4:  Assuming you are all done with your branches and are finished making your changes the next step is to commit the changes.  This will basically record a snapshot of (the state) the files.  Typically for a commit you will want to do one thing at a time to keep track of things more easily.  So you will make one change and then commit and then repeat if there are numerous changes that need to be made.  The command is:

git commit -am "update goes in here"

Now that we have created a branch, made our changes, written our changes so that git knows about them and can keep track of them, we are ready to go ahead and merge the code that we have changed locally back up to github.  Start by pushing the branch up to the github repo.

git push $remote $branchname
git push origin my_topic

Next, merge your changes.  This is done by changing to the “master” branch and then issuing a merge command on the branch that was created to make changes into.  So here is what this process would look like:

git checkout master
git merge $branchname
git merge my_topic

alternatively if you just want to quickly push out a change to the master branch you can issue a git commit locally and then a git push to update the master branch without merging the items first.

git commit -am "updated message"
git push

I like to use this for local repositories where I just need to get things up quickly.

Step 5:  At this point everything should be accurate on your own personal github page.  You can double check your commit history or look at the last update time to make sure your changes worked their way into your public fork or repo.  If you are contributing to a public project the final step is to issue a pull request on the github site.  Once this is done, wait to hear back from a moderator of the project if your changes need to be fixed before they accept them or wait for a response saying that your changes were good and get merged to the project.

Git, to me, was a little bit confusing at first.  Like I said earlier, I still only have a generic and basic understanding but I think it is important for system administrators to know how to commit code to projects and how to keep track of their own code and projects as well.  Even if the code is only small scripting projects it is still beneficial to publish since github is a public site.  Potential colleagues and employers can browse through your work, which increases your visibility and can even lead to job offers.

If you’re interested in learning more, I found this site to be a great resource.

Read More

Cisco Live! 2013

The Cisco Live! 2013 Experience

I recently returned from my trip to Orlando and the Cisco Live! 2013 conference this year, so I thought I would take some time to reflect and go over the experience and report on some key highlights I was able to take away from this years conference.  This year was my first Cisco Live! event and I have to say I was really impressed with the experience as a whole.  There were maybe a few gripes here and there but overall the event in its entirety was pretty awesome.  So in this post I just want to discuss some of the details of the event further.  I don’t have a lot else to report on so I will go ahead and get get going, and begin by going over some of the Cisco specific trends that I noticed.  Of course this is all a subjective experience and some may disagree but here is what I felt to be generally true throughout much of the event.

 Technological takeaways (in my personal experience).

  • Cisco is hedging a huge bet that SDN is going to take off in the immediate future.
  • Mobility is going to continue to explode and increase the diversity of networks so we need to prepare and build our network infrastructures to handle the drive towards mobility.
  • Cisco really drove home the concept of the future connectedness of devices by pushing their idea of “the internet of everything”.  This is the concept that technological experiences will converge and be tightly coupled.  One example that was presented was a seamless experience at a hotel.  The real chunk of info to take away is that as technology continues to evolve we will need to adapt networks to suit these needs.

In general, I felt these were the main drivers and ideas for a lot of what will be happening in the future of networking, at Cisco and abroad.  Obviously Cisco was there to push their products so I will go ahead and cover a few of the key ideas and products that Cisco believes will help drive these future changes

  • The maturation of the ISE platform.  This will be the convergence of a number of disparate technologies Cisco currently offers into a unified identity and access platform, this will correlate with the increase of mobile and the BYOD movement.
  • The SDN components.  Essentially this is Cisco One line of products focused on the evolving SDN space.  This includes the OnePK toolkit for OpenFlow development, the One controller for OpenFlow traffic control.  There were more SDN components, I just can’t think of them right now.
  • New product introductions and evolutions.  The Nexus 7710 and 7718 for scaling out the data center, the 6800 series to augment the capabilities of the 6500 series, improving performance, scale and speed.

There were many more announcements and products covered but to me, these aforementioned products were the main focus and effort.  If I missed anything you thought was important let me know.  Now that I have the big announcements covered I’d like to cover some of the other key highlights from the event.

The Good

  • Organization.  Everything from hotel shuttles, information kiosks, to a very helpful event staff.  I must say the event planners and organizers really thought things through (for the most part).
  • Deep dive sessions.  The presenters were often the people who helped create the RFC’s or were responsible for writing the code.  You can’t get much closer to the source than that.  The few presenters I spoke with were all super nice people as well.
  • Free certification tests.  This ranged all the way from CCNA all the way up to CCIE tests.
  • Universal Studios.  Free food, amazing rides, it was just a great all around experience.  Plus free booze, so you know, that was pretty awesome.
  • Journey.  Do I even need to say more?
  • World of Solutions.  This was their product and demo floor.  Other than the fact that I sold my sole, I learned a lot here and was introduced to a ton of new products I otherwise would not have known about, plus I got about 20 t-shirts.  Also free booze here as well.
  • Keynote speech by sir Richard Branson.  It took on the format of a question/answer type interview, it was really cool to hear Branson talk and answer questions so candidly.  No free booze but I gained some respect for him.

The Bad

  • The mobile apps.  It almost seemed like this was an afterthought because much of the functionality either didn’t work at all or was crippled.  It was a good idea but the execution was lacking, I’m sure this will get fixed next year.
  • The website was down the first day, due to a load balancer that broke.  This caused a lot of confusion and problems, but I was able to print my schedule out at a kiosk so it wasn’t a huge issue for me.
  • The shuttle to and from Universal was a disaster for me.  Many others didn’t experience this issue but it took about 45 minutes to get to the theme park and at least an hour to get back to my hotel.  I can’t really complain looking back but it was frustrating at the time.

I would definitely recommend that anybody responsible for supporting their network at any capacity to attend this event at least one time.  One nice thing about this event is that it doesn’t matter what skill level you are at, all ranges were covered and represented.  I am lucky that I was able to attend this year and am very thankful.  This was a great experience, it was incredibly eye opening and the positive effect it had on my own thought process can’t be overstated.  I think that it will benefit me throughout my career and hopefully can be used to create opportunities for myself in the future.

Read More

8 Golden Rules for Sysadmins

Getting the most out of your career can be rewarding.  Today I feel like taking a minute to slow down and reflect on a few of the things that I have observed in my time as a system administrator that I believe lead to success.  The following are some general rules that I have found to be true both in my work and more generally, many of these rules are just attitudes which can be applied to life as well.  Hopefully these come as common sense to you but it is always good to take time to reflect on good things.  I hope this isn’t too cliche or too much of a time waste for many of you but rather an opportunity to take a moment and analyze your current situation and potentially reevaluate anything you feel to be a weak area or area that could use improvement.

1. ) Always have a backup. Good backups are an invaluable asset to you as a system administrator, and can be a great bargaining piece if necessary in political battle.  Often times backups are overlooked by IT staff, so by ensuring you have good backups (you must always test them!) you are covering your own ass and are able to deflect blame if something out of your control occurs.   As a bonus, you look like a hero when the CEO or president of the company needs files from a month ago and have no idea where to turn, you will look like a magician and could potentially strengthen their view of IT.

2.)  Be likable. It can be a sad truth but many promotions hinge on whether or not people like you. You may be far and away the smartest, most technical or most talented person on your team but it is not going to get you very far if you are an asshole, and people don’t like you.  In this profession it is the case more often than not I see colleagues take the “holier than thou” approach which just perpetuates the stereotype that IT people are jerks.  If you can manage to be smart and not an asshole in IT you will go far.

3.)  Learn how to write. This doesn’t mean you have be able to produce enough volume for a novel, just use writing to develop your own voice, and use it as a way to communicate things effectively.  The great thing about writing is, the more you do it, the easier and more impactful it becomes.  Use your writing as an opportunity to help position yourself for success in the future.

4.)  Learn to program. Again, following up on the last point; this doesn’t mean that you need to become a software engineer, this is just the ability to quickly patch some code together to automate something that you are doing every day or having the ability to look at some process and say, “hey, I bet I could write a script to make this work better”.  It will make you more productive and efficient and will free up your time for other important tasks.

5.)  Patience. In this line of work the number one virtue any Sysadmins can have is patience. Being able to be pulled away from your work multiple times a day to help with completely unrelated issues can quickly become frustrating so having patience to deal with these things is incredibly helpful. And if you can deal with distractions well, people will like you more. Reference rule #2 for more on that.

6.)  Never stop learning.  System administration changes considerably quickly, which in my opinion is great, if you embrace it.  New technologies are always are always on the horizon, companies get bought and integrated into other companies all the time and technology strategies change all the time.  It is a never ending game of catch up for the sysadmins, so if you become content with where you are at and don’t keep up on your studies and on your technologies you will surely fall by the way side sooner than later.

7.) Attention to detail.  This one can be a real difference maker.  There is something to be said for tidiness and orderliness in system administration. Not only does it make things much easier to fix when everything is in a specific place, but it just makes you look better and in all reality doesn’t take much time to do things correctly. We all know the reckless admin who pays no attention to the mess they are making, and in turn it reflects poorly on their character.  Even if they are a genius and amazingly talented, it makes that person look sloppy and lazy to me.

8.) Balance your life.  This helps prevent stress and burnout.  Work and everything associated can get stressful at times so finding a balance becomes a great benefit when you learn how to manage it correctly.  Being able to leave work at work when you need to is crucial in keeping your sanity, but that’s not the only thing that’s important in balancing your life.  It is also helpful to find things outside of work that you enjoy doing.  Whether that be a hobby, interests outside of work, exercise, an interest group, vacations, whatever.  When you spend time focusing on the things that make you happy outside of work it will recharge your spirit more quickly and ultimately help keep you happy as well as productive at work.

Did I miss anything?  Have any other helpful tips that you’d like others to know about?  If so, let me know.

Read More