Hi, I’m Ekrem Ağca, a 4th-year computer engineering student at Karadeniz Technical University. If everything goes right, I will graduate soon. In this article, I’ll tell you about my internship experience at Orion Innovation company in the DevOps department.
Application and Admission Process
Like every Engineering student, I was looking for an internship within the scope of my compulsory internship. However, instead of a random internship, I wanted to do this internship at a company I follow.
Among them was Orion Innovation. After I submitted my application, I was given a date for the online interview. Frankly, I was a little surprised when I went to the interview because I had a more crowded interview than I expected. But they comforted me with their warm approach.
I first talked about myself in the interview, I explained what I have done so far and what kind of projects I have been involved in, then they asked me a few technical questions that were not very advanced, and I answered. At the end of the interview, I thought it went well, and the result was the same.
A few days later, human resources called me and said that the result was positive and I was accepted to the internship. They said I have documents to send. I edited them and sent them to human resources.
Internship Process
I had no previous experience in DevOps, it was a very new field for me. But as I researched and learned, I realized how much I enjoyed this field.
On the first day of my internship, I met my other intern friends and our manager. The next day, our manager sent us to different teams. I met our new teammates here. I learned that an OpenSearch project is run in this team. I was told to research and download Jenkins as the first task. Here is the first day I encountered Jenkins. My next days were spent researching the Jenkins tool and CI/CD processes. In this process, I learned what we do, why we need DevOps, our place in the software adventure, and what kind of needs we meet.
Jenkins is an open-source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery.
Of course, in this process, I tried to improve my Linux knowledge. I learned about basic operations such as Linux file structure commands and bash scripting. Because going forward without knowing Linux would be a big mistake for a beginner engineer in the DevOps field.
I set up a virtual machine to be able to use Linux on my computer. And I installed Ubuntu on this virtual machine. I installed Jenkins on Windows at first, but then I gave up on this decision and installed it on Ubuntu.
Despite my constant research and progress, there were moments when I could not get out of the work, these were the most important moments for my development, and in these situations, I proceeded by consulting my teammates as a higher mind.
During my internship, I met with my teammates and manager in scrum meetings, discussing the latest updates and new tasks daily.
In cases where I could not get out of the work I mentioned above, I had the opportunity to ask questions sometimes in these scrum meetings and sometimes later.
Approaching the end of my internship. I was asked to make a presentation in light of my internship experience and expectations. In this presentation, I needed to automate an OpenSearch Cluster with Jenkins.
Simply put, I installed Jenkins with Docker, then I installed Docker inside Jenkins. I created a Jenkins pipeline, cloned my GitHub repository to that pipeline, and then saved it and started the pipeline, this repo contained a YAML file with an open source Cluster in it and a Jenkins file. The Jenkins file is the file that contains the scripts designed for Pipeline. Jenkins file contents are here.
pipeline {
agent any
stages {
stage("verify tooling") {
steps {
sh '''
docker version
docker info
'''
}
}
stage('Prune Docker data') {
steps {
sh 'docker system prune -a --volumes -f'
}
}
stage('Start container') {
steps {
sh 'docker-compose up -d'
sh 'docker-compose ps'
}
}
}
post {
always {
sh 'docker-compose down --remove-orphans -v'
sh 'docker-compose ps'
}
}
}
In this line, we can examine the logs that are formed in stages. For example, if we look at the log result for the verify tooling stage;
This way I can briefly summarize my experience with Jenkins. Doesn’t it look easy? :) The main purpose of DevOps is to simplify things. If Jenkins is like exploring a new continent, I think DevOps is a solar system. I think there is much more to discover and learn.
I was happy with the feedback from this Demo presentation and got rid of the thought that I couldn’t do it anymore. I want to continue this journey that I started with DevOps in my career.
My Impressions
I met a new culture, a new field, and new people in Orion. I would like to thank the entire Orion family, especially my team and manager, for their contributions and support. I hope I left good thoughts about myself.
I hope that this process I have described will help those who want to do an internship at Orion Innovation.
Thanks for everything.