Software Delivery is critical in the real world of software development which was not surprising to me as I go into my senior year in university. Being a DevOps intern has allowed me to get a real world view at some of these tools such as Vagrant, AWS, Jenkins, Maven, and Nexus. Tools in the lives of most students up to this point consist your TextEditor/IDE of choice, some UNIX tools, a browser, and maybe a VM/Cloud service.
Most students can’t fathom the scale or need of tools like Jenkins, Travis, Vagrant, Otto, and Docker because development in school is normally around 1-5 developers all working in different development environments while all committing code and attempting to deploy their software. My partner and only other intern at Liatrio, Tyler, and I fell into this category but thankfully the senior staff at the company have done a great job helping us understand the need for DevOps and Software Delivery.
First Encounter: Internship Interview Process
Jenkins was part of the internship before I had the internship. The interview process for the interns included hooking up a Jenkins job to poll a Github repository and build on a commit. Liatrio had us do these tasks to see how we work and think rather than whether or not we were Jenkins masterminds. Not only did it test me but it gave me an understanding of what the interns were in for. In hindsight this is fairly simple task that takes minutes now but back before I understood Jenkins this was daunting.
Jenkins The Orchestrator, not the Operator
One of the most interesting to realize is that Jenkins doesn’t do much without the help of plugins and other tools. Week one began with breaking apart the major parts of a pipeline and understanding what Jenkins truly is — the conductor of an orchestra of tools. Within an hour of a whiteboard session we had a full pipeline diagrammed which included an SCM, Jenkins, artifact repository, code validation, testing, and various environments. Giving us interns this high level information proved Jenkins’ worth and set the foundation to begin implementation of a pipeline.
Don’t Get Too Comfortable: Jenkins’ Ability for Customization
Quickly after setting up and handling a few basic builds we moved on to deployments to Nexus. This was the first glimpse of the struggles infrastructure deals with on a regular basis. The topic of integration methods came up. Do you use plugins? Scripts? Having conversations about the pros and cons of each is important. There is no One-Size-Fits-All right now and there may never be.
Googling Everything Doesn’t Help
Google is a cure-all for programming and system errors during school. You get a seg fault compiling with C++ and there are probably 5k other students dealing with the same. We found out quickly that Jenkins issues are not so common. As mentioned above there are hundreds or thousands of possible implementations. Devops interns need to understand that asking for help is okay and getting involved in the community is important. Jenkins administration gets complicated and struggling is part of the process everyone goes through.
My advice to DevOps interns:
- Learn and Love Jenkins.
- If you don’t end up enjoying the work after a while then the work can become overwhelming and unbearable.
- Don’t be afraid.
- Jenkins is intimidating at first but shortly after the subtle sophistication will lure you in further.
- Always ask questions.
- You likely won’t learn these things on accident. Worse than that you may be doing more work than necessary (don’t reinvent the wheel).
- Look from Above.
- A high level understanding of the job you are trying to complete will help you to see and plan the way to implement your solution.
Where we need help as DevOps interns:
- Answer Questions.
- Help answer questions as thoroughly as possible. It has been incredibly important to my personal success in this company and without it I probably would have failed.
- Meet Jenkins ASAP.
- Try to introduce Jenkins in the interview. This will allow you to see the interviewer’s ability to think, communicate, and research. It also helps as a way to make sure the interviewer is interested in this sort of work.
- Be patient.
- This stuff isn’t easy and most interns will not have much background, if any, in this field or software development in general. Rushing or belittling someone will make this process very difficult and unenjoyable.
Justin is one of the first devops interns at Liatrio. We are constantly on the look out for devops engineering/consulting professionals to join our team so if this is something that interests you, please get in touch with us. Learn more about our chico internship program here.