If you’re wondering what DevOps is all about, you’ve come to the right place.
Today we’re interviewing the DevOps mover and shaker behind TechWorld with Nana, a YouTube channel and education platform.
You’ll get answers to pressing questions such as:
What exactly is DevOps anyway?
What the heck is site reliability engineering?
How do Docker and Kubernetes come into play?
And more.
TechWorld with Nana Interview
Now let’s dive in and get the DevOps scoop from Nana herself.
Note: Some answers have been edited for clarity.
1. Tell us about yourself.
I’m Nana Janashia, a DevOps engineer and tech educator on the YouTube channel TechWorld With Nana.
I have taught DevOps technologies to 100s of thousands of people through YouTube, online courses and our 6-month DevOps bootcamp.
2. What exactly is DevOps and why is it important?
DevOps is everything that lets you remove roadblocks and streamline the process of delivering your code changes and application releases to the end user.
DevOps was created as a concept, a combination of workflows that lets you achieve the smooth delivery in the most efficient way, meaning with minimal errors and minimal manual work.
3. What are some good DevOps learning resources (courses, books, etc.)?
If you want to learn the high level concepts of DevOps, such as Infrastructure as Code, automation, CI/CD pipelines etc, I believe there are good resources on YouTube.
If you want to learn individual DevOps technologies, then online courses are probably the best choice.
And since there are so many technologies in DevOps, you should pick just a few and focus on that, instead of trying to learn everything at once.
However, there is 1 interesting aspect about learning DevOps:
Generally a challenge specifically in the DevOps area is that as a DevOps engineer you don’t just learn and use 1 or 2 technologies, like in programming for example.
You need to know 5 to 10 technologies and know how to combine them in the best way and use the right tool for the right task and basically put together the complete DevOps processes using these tools.
And that means, you need to learn how to integrate and combine these tools and I believe that’s the most interesting and challenging part of learning DevOps.
That’s why we decided our YouTube videos and online courses were not enough to get a real full picture of DevOps and really feel prepared for a DevOps job.
So, we created the complete DevOps educational program, a bootcamp which guides you and shows you how to build the complete DevOps pipelines and workflows step by step.
4. What are some common struggles you see with aspiring DevOps engineers?
The most challenging thing, which I know from comments and messages that many people starting out have, is what I mentioned in the previous answer.
Which is: how do I learn and understand all the concepts and tools in such a way that I’m able to look at a task of building a DevOps workflow… And know which tools and concepts apply to it… And how to implement it with the right combination of tools.
And in addition to being a challenge, it’s also a great opportunity, because if you can do this, you will be super valuable in any project.
Another common thing I’ve heard from our viewers and students, is how stressful and overwhelming the number of tools can be.
5. How hard is it to transition from software development to DevOps?
Having a software development background is probably the best pre-requisite for transitioning into DevOps, since you already understand most of the concepts that DevOps is based on.
So with a proper roadmap, I believe you can achieve that pretty easily.
One way is through online learning, however it’s important to use “learning by doing” approach, by actually building DevOps processes.
Theoretically learning things won’t be very helpful.
Another great way is to start taking on some DevOps tasks at work if you are a software engineer and slowly learn.
Maybe first the CI/CD pipeline configuration, later move to understanding the deployment environment, like Kubernetes, and doing some tasks there.
And eventually, once you have learnt what the usual DevOps tasks are and how to do them, find ways to make these tasks more efficient using automation tools.
6. What’s the difference between Docker and Kubernetes?
Docker is the container technology that popularized containers and its usage in projects.
So Docker changed the way we deploy and run applications and made it much more consistent.
And since this was a huge improvement, it made it possible to easily run 10s and 100s of services as part of an application.
So it was a great fit for microservices.
And since now running microservices became so much easier through Docker, we suddenly had 100s of microservices running, and it became unmanageable only with Docker.
So some kind of orchestration was needed for these microservices, a higher level and more central way to manage these containers, their configuration and deployment.
And that’s where the container orchestration tool, like Kubernetes was needed.
So we can say that Docker itself created the need for Kubernetes.
Kubernetes was the continuation of what Docker started and initially K8s integrated directly with Docker as its underlying container runtime.
However, fast forward to now, K8s pretty much made Docker redundant as a container runtime.
And since the creation of Docker, there have been other container runtimes, more lightweight ones that emerged, which are currently used in place of Docker runtime, for most K8s clusters, especially on cloud platforms.
However it’s also important to note that, Docker is more than just a container runtime.
One of its main features is actually building the images that can run as a container.
And it remains one of the most common tools for building container images.
7. And now our final TechWorld with Nana interview question… DevOps vs. SRE – Break it down for us.
DevOps and SRE have the same goals, which is making the software release process:
1️⃣ as fast as possible (what developers want)
2️⃣ with as little issues as possible (what operations want)
And these 2 components of the goal are a bit contradictory, because the faster you release, the more issues may slip through.
And the more you work on making sure a release happens with no issues, the slower the process gets.
So these 2 are pulling in different directions, which means a perfect balance needs to happen to achieve both parts.
And Devs and Ops are supposed to work to achieve this balance.
So on this level it seems like DevOps and SRE are the same, because they have the same goal and both focus on helping Devs and Ops working together towards this goal.
The difference starts when we go a level deeper.
First of all, DevOps was created as a concept, defining ideas and high level workflows, while SRE is a more specific implementation defining tools to implement these ideas and workflows.
And that’s the theoretical difference. However in practice things often look different.
DevOps also evolved into a specific implementation with its own set of tools. However with more focus on the fast release (the first part of the goal), SRE is the counterpart focusing on the stability (the second part).
So in practice, we often see the combination of DevOps and SRE used to accomplish that original goal.
Therefore I like the comparison that, DevOps and SRE are 2 sides of the same coin.
TechWorld with Nana: Conclusion
A big shout out to Nana for this interview!
Be sure to check out Nana’s YouTube channel TechWorld With Nana, and DevOps education platform.