DevOps Mock Interviews Episode-01 | # MockInterviews | #FreeDevOpsCourse

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi kaushik so uh yeah let's start the mock interview and uh so i'll firstly try to understand your profile and then you know you can give me a brief introduction and uh we can go forward with the questions right so can you uh just brief me about your past experience and uh what is your uh you know comfort zone in devops and what are you doing day to day can you just give me a movie yeah definitely so so for the past i've been working on uh devops and cloud technologies uh so what i've been working is like working on cloud technologies like aws and azure and also on our devops as well so for git uh i've been using for uh uh jenkins for ci cd and uh airbus uh code pipelines and as well as azure repos and also uh azure devops for uh ci cd management and uh coming to containerization and orchestration i've been using uh docker and kubernetes uh okay so like this is my overview like this is uh like what i've been working on and also like for uh configuration management i've been using uh ansible and as well as uh terraform for uh like uh deploying the infrastructure so yeah awesome so i'll i'll try to keep this uh interview questions as simple as possible to understand your experience the goal is not to confuse but to you know understand what is your work experience and how familiar of you with these tools right so yeah okay as you told uh i would firstly like to understand uh can you tell me what is git so git is basically for source code management say like uh you have some developers and uh like we need to develop an application uh so what we do with kit is like you basically uh check in the code and you have all the source code and we need a distributed centralized uh version control system where we can actually track the code so so for that reason uh we use git law so for git we have like several hosting platforms like say like a bit packet we have some something like azure repos or code comment or git lab or github so so we use them as a platform uh to actually commit the code and like for a centralized system to track the changes so that is when you use git so do you know if git is a centralized or a distributed version controlling system git is a distributed version control system awesome so uh because you have vast experience like you have experience with azure and you also have experience with uh like you told that you know that there are other hosting platforms like github right so i would like to understand from you what is the difference between github and the azure repositories have you tried to understand the difference anytime yeah i mean like uh it's like it's just like a hosting platform uh it's just that the user interface would vary and there are like couple of features which would uh vary from github to like say azure repos so uh like i mean like uh it's almost the same it's just that the platform is different and you have much more better integrations with the azure repos where you can easily integrate it with azure devops so it has that flexibility so yeah so that is the main difference i can say okay so can you integrate uh azure devops with a github repository yeah definitely so so we have a concept called service connections where you actually provide the provider and you you specify a service account and its details you pass it in the service connections and then you can have your github integrated to azure devops so in that case uh what do you see is the difference between github and azure repositories because i can create a github repository for free right i don't have anything yeah exactly so so yeah i mean like you have like you can create public repositories or like private uh repositories uh for sure but uh for azure repos you need to have a subscription and you you need to have your own organization set up so it's like based on like you need to you need to make a payment for it so azure for like github you don't need to necessarily so in your organization are you using repos on github or azure so we have used like multiple projects like uh so for one project uh for the project that i'm currently in uh using uh i'm currently uh using azure repos for source management yeah okay got it yeah so uh do you use git for your day-to-day activities or yeah i do use uh get on like for a day-to-day activities like not like really complicated comments but like what what exactly is required for for the code management so do you understand the difference between git pool and git fetch yeah git pull basically pulls all the contents of a repository whereas git fetch only fetches what what exactly has been changed and uh that will be the new the new files and the new changes right yeah exactly awesome yeah so uh like i would like to understand uh a complete ci flow of your organization have you are doing uh cacd yeah definitely i can go ahead so so i can have like several use cases like let me take one example uh i would taking azure into consideration for now uh say like we use azure devops for ci cd so what we what i have done in the past is like i have created uh release pipelines in azure devops where i have integrated uh azure repos uh inside the pipeline and for this we're using uh docker and kubernetes uh where for uh micro service management so so we we containerize the application and like uh this is part of the release process uh so like we create images and we push these images to azure container registry and once we have the images pushed to azure container registry uh we fetch the images uh as a part of cacd process and then we use this kubernetes concept to uh create a release pipeline and we create a deployment uh manifest and uh uh basically fetch the image from the registry and uh so how do you do that uh deployment part like how do you fetch this from the registry and how do you deploy so this is through kubernetes manifest file so we specify in the container image and also we specify the required parameters we pass them inside the kubernetes manifest and as a part of this process uh we include this in the release pipeline and so that is how the pipeline looks like so uh do you prepare this kubernetes manifest on the fly or do you store it somewhere or how is it so this is like version control so as i mentioned earlier we use azure repos for source code management so uh we have all these files com checked into uh azure repos so from there we fetch this uh deployment file okay so using some shell script or something do you modify the container image or the port if required for the deployment yaml file before so i use visual studio code to basically uh update the images and uh so that is when i have integrated uh azure with uh uh for this visual studio code and that is how i check in the code to azure repos and uh and i create a release based on the requirement or based on what we have scheduled so awesome yeah that's that's very good to know and so coming to this uh kubernetes right so how do you ensure that there is no downtime during your uh application deployment yeah definitely so so so i do perform like a rolling update what exactly it means is making sure that we have at least two replicas running on our uh on on our kubernetes uh so this this ensures that when you create a release so then one one part goes down and meantime the other part uh still stays uh updated with the new changes so so that is how uh we do we do like a rolling update which which will ensure that the application is up and running all the time awesome awesome so uh what is the difference between a deployment and a replica so uh the replica set is deployment is where you specify the number of replicas and replica set is kind of a different concept also so replica that i'm i don't have on top of my mind but uh yeah yeah that's okay yeah and uh so you are performing this uh as a rolling updates right the deployment so uh like do you understand the concept of services in kubernetes yeah i mean like i do i do uh work on different services like so we have like a load balancer service we can say and also like uh notepod and uh also like cluster ib so these are like the circles that we uh use like based on what exactly is required so yeah awesome awesome so about the different kinds of services yeah so uh let us let us slightly uh deep dive into this kubernetes topics and um so what are the kubernetes uh i mean you understand the kubernetes control plane right so right and it is uh which kubernetes control plane services uh would deploy on the worker nodes so so basically considering to master we say like we have like a cube scheduler controller queue control manager and as well as api server which are like and also like the xcd which are part of uh the kubernetes control plane uh like uh the core components and like for kubernetes nodes i can say like we we have this cube q proxy and as well as uh cube ctl uh so basically these are like uh uh which we have on each node so this is to perform uh uh pod operations and uh uh like manage the cluster operations on the node yeah so basically uh you forgot about cubelet oh yeah yeah yeah right yeah cubelet and theta is for uh command interface right yeah so uh can you it's okay if you don't uh completely understand but uh do you know how cubelet actually works uh can you tell like if i'm creating a pod let's assume that uh i gave a request through command line something like ctl apply for dml okay so can you unders can you tell me on in a brief like what actually happens how is this request uh processed from your cube ctl from your command line to the deployment of the actual part okay so so basically here uh the cube scheduler and cube controller comes into picture so what cube scheduler does is like when we when we pass the requirements uh it makes sure that it will have that required resources allocated onto a particular part which which make sure uh that it it deploys the right number of replicas onto that particular part and inside the cluster which is so and like cube controller uh what it does is like it make sure that uh it has the right number of uh so so we have this concept called like desired state and uh yeah uh the current state so it make sure that if if for some reason the part goes down uh maybe some uh issues like uh we can say like crash crash flow back off state and the part goes down and what it does is like it creates a new part that is when a desired state it looks for that state and that is how uh the cube controller comes into picture and cubelet uh cube uh cubectl is how we we write in the commands uh so just that uh to fetch the logs if it fetches the logs through this master node so what it does is like uh we use cube ctl which which queries uh the cube api server so that is how the connection looks like uh so yeah so yeah so from cube ctl it would actually go to the cube api server cube api server then it goes to your api server yeah yeah so from the api server it would go to the scheduler and from scheduler it goes to the cubelet right and from there it also goes to lcd as well yeah and yeah probably uh sometimes uh to some of the interviewers you might have to explain that you know uh when when we are looking for more about cubelet so probably you can say that uh cubelet would talk to the container network interface right correct yeah we have the cni and the cre right container yeah runtime environment container runtime environment yeah so you need to say that it goes to the container runtime and depending on the container runtime there is a container runtime interface and from there it would get deployed yeah but you are good i mean yeah i mean like i just wanted to give an overview yeah okay so like if we go in depth it's like we have like container and an environment which basically manages this yeah yeah good so uh do you understand the concept of ingress in kubernetes yeah i do understand the concept of ingress uh can you tell me why is so it is like similar to like uh service type it is a service type where we you directly need to like uh so we use like application gateway so it doesn't need to actually communicate with intermediate interfaces like we have we can establish a direct connectivity uh with your parts and uh like for the external uh applications like which is outside of your cluster awesome awesome yeah so i think you are doing really well uh on this specific things i would like to like you know slightly jump on to uh some advanced questions that i have and uh yeah yeah you can uh you know you can ask me if there is any questions uh regarding these things or not so yeah because you already work on docker right so do you know what is a uh distro-less docker image ah destroy stalker image yeah that's okay and uh one more thing is uh have you ever worked on uh multi-stage docker deployments yeah uh i did work on multi-stage docker deployment where in like kubernetes we have like uh the pod concept where uh in each part like there are like multiple containers which is called like a sidecar container okay i have worked on that yeah okay uh no problem and so with respect to kubernetes um do you know what is a custom resource definition yeah uh the crd right so custom resource definition is like which you so for one use case which i can say is like for help there is one thing so we have this uh radish which we need to deploy so what we use like for we use like custom resource definition to basically uh pass inside the kubernetes file uh for the help deployment that which which basically packages and makes it it acts like a proxy uh so so where you can actually manage the resources so that is what the crd is actually okay okay yeah so uh yeah one last question that i have uh is like uh do you know uh what is an admission controller in kubernetes uh admission controller uh i knew but i don't i want to that's okay i mean yeah it does also yeah because we don't work anymore yeah sure so basically you know uh it's they're like similar to web hooks where uh you know probably you want to modify the behavior are you aware of uh service mesh yeah yeah so if you take example of service mesh what happens when you deploy you know when you deploy service mesh so it creates a side cut container for your uh actual container right inside it is when you use sidecar containers yeah so you know how this works uh behind is that uh kubernetes has a concept called mutating webhook so you know okay uh so whenever you create a request for the pod so the webhook gets triggered and it modifies the behavior of your port and it creates two containers instead of your actual container that you're deploying so this is the concept of admission controllers yeah that's okay yeah no you know it so yeah that's fine yeah yeah so yeah i think uh you have answered pretty well and uh that's all i have uh it was very nice talking to you and yeah it was nice talking to you as well yeah good to know about like couple of concepts like the admission controller yeah uh and also the republic assets as well thank you yeah yeah
Info
Channel: Abhishek.Veeramalla
Views: 138,340
Rating: undefined out of 5
Keywords: devops, kubernetes, azure devops, github, cicd, jenkins, aws, docker, learn devops, service mesh, gcp, python, golang, ansible, terraform
Id: NnRsdVN_yh0
Channel Id: undefined
Length: 17min 30sec (1050 seconds)
Published: Sun Apr 10 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.