Moving into the Cloud and DevOps world
Before getting to the heart of the matter, I will start by introducing myself, who am I, and where I come from. I work today as a Cloud DevOps engineer at Ippon Technologies. But as you might have guessed from the title, this post is quite recent.
Indeed, I graduated from a university in the UK with my computer engineering degree 2 years ago. Like most of my classmates, when I left school, I very quickly moved into the world of development. This is certainly the path taken by a large number of engineers leaving computer school. My first experience in the professional world was therefore a position as a full stack developer (more focused on the backend all the same) on technologies of the moment: Java with SpringBoot sprinkled with Angular for the front-end part. I was also in an ecosystem that I knew little or nothing about:
- Gitlab CI/CD — I obviously knew about Gitlab, but I had hardly ever heard of CI/CD.
- Ansible, unknown to the battalion.
- Microservice architecture? Someone must have told me about it…
2 years pass. My upskilling is going pretty well. At the same time, I talk a lot with my roommate who also works in IT, but not at all in the world of development. He works as a Cloud/DevOps Engineer. Over the course of the discussions, he talks to me about automation, resilience, the Cloud, and the fact of being able to write and version your infrastructure, and the more he talks to me about it, the more I’m interested.
During this article, I will therefore rely on my personal experience, but not only: I took the initiative to survey my colleagues within Ippon to find out about their backgrounds. I will be able through these different stories, to try to give all the necessary tools to be able to succeed in this transition.
First, maybe people are asking the question, what are Cloud and DevOps?
- DevOps is a set of practices that emphasizes collaboration and communication between software developers and ops, automating the process of software delivery and infrastructure changes.
- The Cloud corresponds to the use of infrastructures and services hosted by third-party entities.
By reading the responses to this survey, we quickly realize that the main reasons why developers are moving towards the Cloud/DevOps are:
- Curiosity. It’s one of the traits that define a lot of people. It is also thanks to this curiosity that one can, in my opinion, improve one’s skills.
- The concept of the canvas. Toil is a word coined by Google for ops tasks that are: manual, repetitive, automatable, tactical, with no lasting value, and increasingly difficult to maintain as the number of users grows. Periodically having to perform these kinds of tasks leads us to want to think more and more as DevOps.
- The desire to understand all of what makes up an application. To have an ecosystem that evolves rapidly, where many things remain to be created (like the java ecosystem in the 2000s).
At first, I sought to know the extent of the cloud offer by trying to understand the basic concepts, then I decided to link its concepts with a Cloud Provider. So I turned to train.
This is the most important step. The easiest for this step is to set yourself a certification to obtain. For example, whether for AWS, GCP, AZURE, Kubernetes, or Terraform, aiming for certification allows you to always have a course towards which to go. For me, it was the AWS Solution Architect Associate. I absolutely do not regret this choice, the certification allows me to know the essential services of AWS with a good basis on the specificities of these. In addition, it gave me knowledge of the concepts behind these services (for example, it is good to know that there are several types of Load Balancer, but it is better to know what it is for ).
Once this certification was in my pocket, I wondered how to manipulate its resources. So I naturally turned to Terraform, an Infrastructure As Code tool. So I was able to pass the HashiCorp Certified Terraform Associate certification. Interesting if you have no base on Terraform. It remains very basic and less relevant if you already have some experience on the subject, unfortunately.
The second step is practice, I very quickly started a mission to be able to put my new skills into practice. For me, the practice allowed me to finally be able to manipulate services that I had heard about for almost 2 months. As it is often said, it is by forging that one becomes a blacksmith.
The third step involves code reviews. It’s a very good way to build skills, you shouldn’t be afraid as a “junior” to do code reviews. Chances are, I have content to teach others through the training I’ve taken. We all know it, IT moves every day, and so do cloud provider services. To cite a concrete example, at the beginning of my first mission, we wanted to have a purge system on a DynamoDB table. A light went on directly in my head. I remembered that during my training, I was told about a TTL (Time To Live). This field made it possible to manage the lifetime of a document in DynamoDB natively (no need to make a purge system anymore). I, therefore, proposed to
The amelioration keeps going
The fourth and final step is part of a continuous improvement mechanism. You should never rest on your achievements. Always be open to the opinion of others, do not hold back, but rather focus on the debate. One important thing, if you’re lucky enough to have experienced people on your side, don’t hesitate to ask questions. Again, we come back to curiosity. These people are mines of knowledge, it would be a shame to deprive yourself of them. On top of that, chances are, what I’m doing, they’ve already done it.
Always in continuous improvement, monitoring is for me the key element to becoming a good Cloud/DevOps engineer. There are a whole bunch of ways to do it the day before.
At Ippon, we have the excellent BlackBelt program allowing employees to learn about things that interest them. In addition to that, there is the whole mentoring part (the fact of having a mentor and also being one) which is very interesting.
There are also a whole bunch of meetup groups for monitoring. I am personally on the Nantes AWS user group as well as Cloud Finops France (on the meetup application). Events are organized from time to time on subjects that are usually very interesting (whether it is feedback on a service, the presentation of a new tool or the sharing of good practices).
Finally, there are a whole bunch of platforms with super interesting content. This is the subject of the next chapter of this article.
I will divide this chapter as needed. I will try to be as exhaustive as possible on the most important tools to have in your toolbox to start well.
Let’s start with AWS (Amazon Web Services):
- Stéphane Marek Ultimate AWS Certified Solutions Architect Associate training . This is the one that is the most cited in my survey. It is also the one I followed to obtain my certification. With this training plus a package of mock exams, you will be ready to pass the certifications without a doubt.
- In the FAQs of the different services, most of the exam questions relate to questions that are answered in the FAQ.
- YouTube and especially the AWS Summit conferences which present AWS news, best practices, popular architectures, and so on. But again, on the novelty part and especially the Woah effect, certainly one of the most talked about conferences about AWS: https://www.youtube.com/watch?v=8vQmTZTq7nw&pp=ugMICgJmchABGAE%3D
Let’s talk a bit about GCP (Google Cloud Platform) now (I have less information about this Cloud Provider):
- Google’s official book to pass the GCP Cloud Engineer certification. Be careful on the other hand on the novelties, the book starts to date a little. On the other hand, for the Architect certification, an edition has just been released.
- The Google Cloud Developer group on meetup.
- Google Cloud Platform documentation.
- A training made by Google on Coursera .
- Google Cloud Platform podcast, which is as its name suggests a podcast talking about GCP.
How not to quote Azure, Microsoft’s Cloud Provider (also less information about this Cloud Provider):
- Microsoft’s official documentation.
- Whizlabs for everything that will be mock exams.
- On the podcast side: The Azure Podcast with short programs (about 30 minutes) on different topics.
What if I tell you Kubernetes?
- The official Kubernetes documentation.
- On YouTube several names came back: Techworld With Nana, That Devops Guy, and Xavki.
- On Kubernetes even more than others, practice, practice and practice. Indeed, certifications on the Kubernetes side are only practical exams and not theoretical ones. It is, therefore, necessary to practice a lot before being able to pass this kind of certification.
Regarding practice, small rather practical tools: Minikube (which allows you to deploy a cluster locally), K9s which is a cluster management tool.
- On the podcast side: the Castcodeurs and the official Kubernetes podcast (it’s English though).
On the Terraform side :
- A great video from FreeCodeCamp that helps to understand how Terraform works (excellent to prepare for the HashiCorp Terraform Associate Certification).
- The official Terraform documentation.
- Do mini-projects to get started with the tools, integrate terraform into a continuous deployment chain,…
More generally, in the world of DevOps :
- https://roadmap.sh/devops: a mindmap with the tools and their uses
- Three books: The phoenix project, The unicorn project and Accelerate.
- For podcasts: Compagnons du DevOps, No Limit Secu, Les Rendez-vous Tech.
- A course on OpenClassRoom
Please note that this list is neither exhaustive nor to be followed to the letter. Rather, she is here to guide you. The Internet is vast and there are great training courses as well as less good ones. One of the most important things is getting the basics right. What’s the point of knowing all the services of a Cloud Provider at your fingertips if you don’t know how to explain the usefulness of each? When should I use one rather than the other?
Be careful also not to embark on a relentless quest for knowledge by wanting to learn too much. Personally, what works well for me is to take a subject, delve into it as much as possible, and then choose another one.
Now that you have all the information you need, I would like to conclude this article with some tips for a successful transition. Indeed, at Ippon, we have a whole bunch of profile types, and each person has their own story. I found that out with my survey. In particular, I asked the question: “What would be the most important advice you would give to someone wishing to make this transition?” I will now make a summary of the answers that I could have had to this question.
- The number one tip, the one that came up almost every time: never stop learning. Curiosity is the main tool of a Cloud/DevOps consultant. That’s good, the tools we use every day are only evolving. Not a day goes by without a new version of a service from a Cloud Provider seeing new releases, a new version of Terraform, or a new LTS from SonarQube. Without this curiosity, we find ourselves very quickly overwhelmed by the speed at which technology is advancing.
- Know how to question yourself. Do not be afraid to ask questions to our colleagues. Chat with people from different backgrounds. Always tell yourself that what you are doing today, someone has already done it another day. This person certainly has something to say to you, things they regret or, on the contrary, things they are quite proud of.
- Before taking the plunge, ask yourself if you think we will miss the code (in the sense of developing product features). If it’s easy, or at least not too complicated, to backtrack if we ever realize that we don’t like it.
Do not hesitate if it is possible to take on small tasks in relation to what you could do all day long afterward. We can quickly realize that in the end, it looks nice but we prefer to do it periodically.
- Practice. It is by practicing that we will really improve our skills. Do not hesitate to make personal projects. Do a small project in your spare time with a CI/CD allowing you to deploy your infrastructure on a Cloud Provider using an IaC tool for example. At Ippon, we are lucky to have an AWS sandbox available to be able to do this kind of project, it’s super useful.
You now have all the tools you need to be able to move into the Cloud/DevOps world. Or did you perhaps realize that this world interested you? I will be glad about this!
Please note, that I am not saying that this transition will be easy, it depends on each person. On the other hand, after reading this article, you will have at your disposal a collection which, according to my great colleagues and myself, summarizes how to put yourself in the best conditions to get there.
To end this article, I wanted to thank Ippon. Thank you for trusting me, I arrived as a junior (spoiler: I still am), but I see that I have evolved and am in the right direction. I feel much more comfortable day by day. And all that is possible thanks to the training time allocated by Ippon before I go on a mission, to the availability and expertise of the colleagues with whom I am currently on a mission, but not only. We must not forget the Cloud & DevOps practice, to which I was able to turn when a question tormented me.