DevOps Employed II Flashcards
Tell me about yourself and what was your role?
I worked on a team of 6 people which included team leads, consultants, managers, scrum masters etc. On the team, I managed the AWS part and automation part of it.
Talk about any Infrastructure deployment scripts that you’ve written. It can also include any Configuration management that you’ve done and any deployment automation you have done
So, it will includes setting up a monitoring system, setting up the entire thing on the cloud. Collaborating with teams. (Maybe add what your code review process is)
(Whatever I do in my Team)
How good are you at programming?
I have not written a full-fledged application such as Java or Ruby on Rails, but I am good at Ruby, Python, Shell and Perl from a scripting language perspective. I’m not a full fledged programmer, but I know the ins and outs of scripts.
Are you from the Dev-side with the Ops-side?
I’m from the Ops-side, but you have a good hold on the programming languages which are used for scripting and configuration management, and whatever code is required, I can write that easily.
How quickly can you learn, given a chance can you architect an application?
Yes. I have been working with architects recently, and that you’ve been contributing to the architecture from a DevOps perspective, and giving your input so that the application could be developed in a more easily deployable manner.
Given the chance to lead a team can you do that?
Yes, definitely. I have more than five years experience. Typically, this is true for people who have at least five years experience leading a team because less than that would really not be meaningful.
What is the command to view the CRONTAB?
The command is CRONTAB hyphen L.
What is an alias in Linux?
An alias in Linux is something that tells you the shortcuts on that system, these are defined in the ect/bashrc file.
What does the CHMOD command do?
The CHMOD command basically allows you to change the permission of a file in Linux. It can be changed from rewrite in executable mode, so it can be changed from read to rewrite or to read, write, execute depending on the use case,
What is SSH port forwarding?
It’s a way to actually forward your ports through SSH protocols, so it allows you to bypass firewalls and also tunnel ports through strictly guarded environments. It’ss one of the ways in which you can connect to instances or services in your private subnets in AWS or your data center.
What is a Zombie Process?
Zombie process is a process which is in a terminated state, but which has not yet released the resources. So basically it’s most commonly a child process where the parent has exited, but the child is still there.
What is a Bluegreen deployment?
A BlueGreen deployment is something where you have X number of resources running your application, and say, that number is 10, so you have 10 servers and a web farm. With a bluegreen deployment, what you do is you take out half of those from the actual production state, you deploy the new code on those. In the meantime, the other 5 are the other half would be serving the production traffic, and these 5 would not be hindered or hampered in any way. Now, the first five, on which you complete the deployment, which you’ve taken out of the actual production load, you put those back in, and you wait for those to come back into service. And then you take the other five out of the actual load and you start deploying on those. So in a bluegreen deployment, what happens is you never let the end user see the downtime. It’s an always up environment.
A web farm is a group of two or more web servers (or nodes) that host multiple instances of an app. When requests from users arrive to a web farm, a load balancer distributes the requests to the web farm’s nodes. Web farms improve: … Capacity/performance: Multiple nodes can process more requests than a single server
How do you do a hot deployment?
This is just a rephrasing of the previous question really a hot deployment can be done either by having two environments of the same size, and then you redirect traffic through a Load Balancer or a proxy service to one of the environments deployed on the other, and then redirect to the first one and apply it to the second, and just like a bluegreen deployment you never show the end user the downtime.
What is your rollback strategy?
This is something you need to be very confident about because every deployment should have a rollback associated with it.
So let’s say your deployment fails, how do you roll back the system. It has to be linked to a bluegreen or a deployment. So you have to say that you have a Jenkins job or a script, which basically does a bluegreen deployment. And in the middle of that bluegreen deployment, it checks to see whether or not services are up and running, and at the least the SGTP endpoints of your application are running or not.
Have you used Jenkins for deployment?
Yes, I’ve used it, and you’ve used it using a couple of strategies, you’ve used it with plugins, and I’ve used it with my script so my plugins used to deploy code on the environment using build or publish or SSH, and I have also had my Ansible or Chef or Puppet code, which used to do the deployment for me. So we used to use Jenkins as an orchestrator and puppet and chef and Ansible for the actual deployment of the target service.
What Jenkins plugins have you used?
I have used Maven and Gradle. I’ve used Cobertura for testing, PMD for programmatic mistake detection as text for Ruby on Rails testing karma for Angular j s testing and integration with S3. I’ve also used Git plugin for checking out code SVM plugin for checking out SPN repositories upstream downstream plugin for connecting the builds. In addition to this, I’ve also used archive artifacts plugin publish HTML reports plugin to publish test reports.