Guide to becoming an Dev Ops Goddess

  • 14.04.2020
  • Azure Ai
  • Y.Taylor
  • London UK

Overview

Hey Beautiful people! Due to popular demand, I have created a document which will guide you to become a Dev Ops God/Goddess !

So how did I get here…

I only started to attract money after my spiritual awakening . I got closer to God and left the matrix and the finances and opportunities came .The main aim is not only financial freedom, but spiritual freedom also.Money is key

So before you read on , let’s get to the actual meaning of what Dev Ops actually is !

SO initially Dev Ops was referred to as an’ a set of practices that automates the processes between software development and IT teams, in order that they can build, test, and release software faster and more reliably. The concept of DevOps is founded on building a culture of collaboration between teams that historically functioned in relative siloes.’

For some strange reason it has now turned into a job title which means that you are likely to be doing more than one role under one title.

Being a Dev Ops God/Goddess isn’t for the weak, but if you are as crazy as I am please read on! But before we get to the exciting stuff here is a little about me :

‘’My name is Yasmin Taylor.I currently work as a Platform Engineer and Backend Engineer. I ensure that we are automating our pipelines accordingly and efficiently.

Originally I wanted to become an astronaut! So I’ve always been quite big on science.In college I studied applied science which consist of biology, physics and chemistry.I didn’t do as well academically as I thought I would have and got CCD.My parents have always supported me academically and it helped that my dad was a math genius so I learnt algebra quite early on.

My love of sci-fi movies predominantly led to my passion in tech.I saw from the movies how fun and easy having advanced tech made life seem- and it fueled my curiosity to create or imitate something similar.

My first step into tech was my course in university.I studied Artificial Intelligence and Robotics and it was during my time on this course I was introduced into the world of coding .One of the hardest things i’ve had to face during my time in tech was being the only person of color,only person from a working class background and the only female. It was very hard to convince them that I was more than capable of doing my job and it felt like I had to prove to them by going above and beyond that I deserve to be here.

I am a very spiritual person so with hard work and prayer I was able to calm myself down and understand that I am paving the way for others that look like me.’’

Goals

  1. Languages to learn
  2. Certifications to gain/Certification links
  3. Tools to learn how to use
  4. How to prepare for an Interview
  5. Where to find me
  6. References

Requirements

  1. Understanding of networking protocols
  2. Get an understanding of build and release in a development environment . Be good at source control (GIT), CI tools for building ( Jenkins, maven) and deployment.
  3. Configuration management using Puppet/Chef/Salt/Ansible
  4. Understanding of container technologies like Docker and Kubernetes is a plus.
  5. Infrastructure knowledge AWS/VMWARE
  6. Be good at Shell Scripting / Python/ Java/ C sharp

Generally, people have lots of misconceptions regarding DevOps. So let me first tell you “What DevOps is not”.

  • DevOps is not simply combining Development & Operations teams
  • DevOps is not a separate team
  • DevOps is not a product or a tool
  • DevOps is not automation

What DevOps is actually?

DevOps is a culture that is being followed by a much huge organization.

It is a continuous process and contains various stages such as :

  • Continuous Integration
  • Continuous Development
  • Continuous Testing
  • Continuous Deployment
  • Continuous Monitoring

The main role of DevOps is to increase the quality of the product to a great extent and to increase the collaboration of Development and Operation team as well so that the workflow within the organization becomes smoother.

It would be better if you know Python but any programming language such as Ruby, Javascript, C are also preferable to start with DevOps.

The DevOps job roles for which you can apply in 2020 are:

  • Software Tester
  • Security Engineer
  • Application Developers
  • Integration Specialist
  • Site Reliability Engineer
  • Platform Engineer

Languages to learn

Ruby

Java

C sharp

Certification links/Certifications to gain

If you want to build your professional career in DevOps you can click the link below to enrol yourself to DevOps Certification and Training Course provided by Edureka. Udemy, AWS, GCP And Azure also provide training.

Pluralsight is also a good base to use and is offering free training !

DevOps course from Edureka is enough for you to become an expert in the domain. The course is precisely designed keeping in mind the current industrial requirement. This course will provide you with an in-depth idea about:

  • Continuous Development, Continuous Integration, and Continuous Testing using GIT, Jenkins and Selenium
  • Configuration Management, and Continuous Deployment using Puppet, Ansible and Docker
  • Finally, you will gain insights by continuously monitoring the software using Nagios

DevOps Training & Certification Course with Live Training — Edureka

Amazon (AWS) -https://aws.amazon.com/certification/

Microsoft Azure — https://docs.microsoft.com/en-gb/learn/azure/

Tools to learn how to use

As technology advances, numerous DevOps tools have been developed to make collaboration and development easier. To help you refine your DevOps strategy, we mention top 10 DevOps tools which you should use in the year 2020:

1. Slack

2. Jenkins

3. Docker

4. Phantom

5. Nagios

6. Vagrant

7. Ansible

8. GitHub

9. Sentry

10. BitBucket

How to prepare for a tech interview

Prepare for interviews by reading through the job spec and catching up with recruiters beforehand to ensure you are fully prepped.Also ask beforehand if there is an technical test to prepare for or revise and ask for any supporting materials to help .

Another key thing to do would do is look up my potential manager on Linkedin to get a feel of their character and also their position and check the diversity in the company .

First Interview Stage:

The first interview is usually a phone call just to check if you are human and if you are technically competent.

Second Stage:

The second stage is usually a face to face and a meeting with your potential manager and sometimes the team.Sometimes you are asked to do a presentation or a test.The next stage after that is usually an offer or rejection.

Below are some extra questions you are likely to be asked!

Can you tell us the fundamental differences between DevOps & Agile?

  • Agile Approach — The agile approach is only meant for development in Agile while the agile approach is meant for both development and operations in DevOps.
  • Practices and Processes — While agile involves practices such as Agile Scrum and Agile Kanban, DevOps involves processes such as CD (Continuous Delivery), CI (Continuous Integration), and CT (Continuous Testing).
  • Priority — Agile prioritizes timeliness whereas, DevOps gives equal priority to timeliness and quality.
  • Release Cycles — DevOps offers smaller release cycles with immediate feedback while Agile offers only smaller release cycles without immediate feedback.
  • Feedback Source — Agile relies on feedback from customers while feedback from self (monitoring tools) is involved in DevOps.
  • Scope of Work — For Agile, the scope of work is agility only but for DevOps, it is agility and the need for automation.

Why do we need DevOps?

All such benefits lead to a higher level of customer satisfaction, which is the most important goal for any product development project. To do so, companies need to:

  • Increase deployment frequency
  • Lessen lead time between fixes
  • The lower failure rate of new releases
  • In case of new release crashing, have a faster mean time to recovery

DevOps helps in fulfilling all these requirements and thus, achieving seamless software delivery. Full-fledged organizations like Amazon, Etsy, and Google have adopted DevOps methodology resulting in achieving performance levels that were previously uncharted.

With the adoption of DevOps methodology, organizations are able to accomplish tens to thousands of deployments in a single day. Moreover, doing so while offering first-rate reliability, security, and stability.

What are the important business and technical benefits of using DevOps?

Business benefits

  • Enhanced operating environment stability
  • Faster delivery of features
  • More time for adding value to the product

Technical benefits

  • Continuous software delivery
  • Faster problem resolution
  • Lesser complex problems

Can you name some of the most-used DevOps tools?

  • Ansible — A configuration management and application deployment tool
  • Chef — A configuration management and application deployment tool
  • Docker — A containerization tool
  • Git — A version control system (VCS) tool
  • Jenkins — A continuous integration (CI) tool
  • Jira — An agile team collaboration tool
  • Nagios — A continuous monitoring tool
  • Puppet — A configuration management and application deployment tool
  • Selenium — A continuous testing (CT) tool

What is Selenium used for?

What do you understand by Puppet in DevOps?

System admins need to perform a lot of repetitive tasks, notably installing and configuring servers. Writing scripts for automating such tasks is an option but it becomes hectic when the infrastructure is large. Configuration management is a great workaround for this.

Puppet helps in configuring, deploying, and managing servers. Not only does it make such redundant tasks easier but also cuts a significant portion of the total work time. The mature configuration management tool:

  • Continuously checks whether the needed configuration for a host is in place or not. If altered, the configuration is automatically reverted back
  • Defines distinct configurations for every host
  • Does dynamic scaling (up and down) of machines
  • Provides control over all the configured machines so that a centralized change can automatically get propagated to all of them

What do you understand by anti-patterns of DevOps?

  • An organization needs to have a separate DevOps group
  • Agile equals DevOps
  • DevOps is a process
  • DevOps is development-driven release management
  • DevOps is not possible because the organization is unique
  • DevOps is not possible because the people available are unsuitable
  • DevOps means Developers Managing Production
  • DevOps will solve all problems
  • Failing to include all aspects of the organization in an ongoing DevOps transition
  • Not defining KPIs at the start of a DevOps transition
  • Reduce the silo-based isolation of development and operations with a new DevOps team that silos itself from other parts of the organization

DevOps has something called CI. What is it and what is its purpose?

Continuous Integration of development and testing enhances the quality of the software as well as reducing the total time required for delivery.

The developer has broken the build if a team member checking in code runs into a compilation failure. As such, other developers are not able to sync with the shared source code repository without introducing compilation errors into their own workspaces.

This disrupts the collaborative and shared development process. Hence, as soon as a CI build breaks, it’s important to identify and correct the problem immediately.

Typically, a CI process includes a suite of unit, integration, and regression tests that run each time the compilation succeeds. In case any of the aforesaid tests fail, the CI build is considered unstable (which is common during an Agile sprint when development is ongoing) and not broken.

More often than not we hear shift left in DevOps. What is it?

To shift left in DevOps simply means the necessity of taking as many tasks on the right i.e. that typically happens toward the end of the application development process and incorporates them into earlier stages of a DevOps methodology.

There are several ways of accomplishing a shit left in DevOps, most notably:

  • Create production-ready artifacts at the end of every Agile sprint
  • Incorporating static code analysis routines in every build

The level of doing the DevOps the right way is directly dependent on the degree of shifting left as much as possible.

What does CAMS in DevOps stand for?

  • Culture
  • Automation
  • Measurement
  • Sharing

What are the several KPIs used to gauge DevOps success?

  • Application performance
  • Application usage and traffic
  • The automated test pass percentage
  • Availability
  • Change volume
  • Customer tickets
  • Defect escape rate
  • Deployment frequency
  • Deployment time
  • Error rates
  • Failed deployments
  • Lead time
  • Meantime to detection (MTTD)
  • Mean time to recovery (MTTR)

In your opinion, what are the major benefits of implementing DevOps automation?

  • Removal of the possibility of human error from the CD equation (Core benefit)
  • As tasks become more predictable and repeatable, it is easy to identify and correct when something goes wrong. Hence, it results in producing more reliable and robust systems
  • Removes bottlenecks from the CI pipeline. It results in increased deployment frequency and decreased number of failed deployments. Both of them are important DevOps KPIs

What do you understand by containers?

Microservices are a core part of DevOps. Can you name any two popular Java development frameworks for creating microservices?

What do you understand by a Version Control System (VCS)? Define its uses.

  • Check what was the last modification that caused a problem
  • Compare the changes made over time
  • Identifying who introduced a new issue and at what time
  • Revert a file or files to some earlier state
  • Revert the complete project to a previous state

Git is a popular DevOps tool. Tell us how you will revert a commit that has already been pushed and made public.

  • By creating a new commit to undo all changes made by the commit that has already been pushed and made public. Following command is used for doing so:
    git revert
  • By fixing or removing the bad file in a new commit and then pushing it to the remote repository. After making necessary changes to the file, commit it to the remote repository using the command:
    git commit -m “commit message”

What are post mortem meetings?

Draw a comparison between Asset Management and Configuration Management.

Configuration Management refers to the process of controlling, identifying, planning for, and verifying the configuration items within service in support of Change Management.

Can you state and explain various key elements of continuous testing?

  • Advanced analysis — Used for forecasting and predicting unknown future events
  • Policy analysis — Meant for improving the testing process
  • Requirement traceability — Refers to the ability to describe as well as follow the life of a requirement, from its origin to deployment
  • Risk assessment — The method or process of identifying hazards and risk factors that can cause potential damage
  • Service virtualization — Allows using virtual services instead of production services. Emulates software components for simple testing
  • Test optimization — Improve the overall testing process

Please explain the core operations of DevOps in terms of development and infrastructure.

  • Application development — Developing a product that is able to meet all customer requirements and offers a remarkable level of quality
  • Code coverage — a measurement of the total number of blocks or lines or arcs of the code executed while the automated tests are running
  • Code developing — Prepare the codebase required for the product development
  • Configuration — Allowing the product to be used in an optimum way
  • Deployment — Installing the software to be used by the end-user
  • Orchestration — Arrangement of several automated tasks
  • Packaging — Activities involved when the release is ready for deployment
  • Provisioning — Ensuring that the infrastructure changes arrive just-in-time with the code that requires it
  • Unit testing — Meant for testing individual units or components

Where to find me

YouTube : https://youtu.be/KdjrWtp0Q0I

Twitter : https://twitter.com/i0sTaila

References

https://hackr.io/blog/devops-interview-questions

https://hackr.io/blog/top-devops-tools

https://www.quora.com/What-is-DevOps-Does-any-programming-language-is-required-for-this-What-are-the-coding-skills-required-What-would-be-the-future-if-a-person-is-choosing-DevOps-as-a-career

Senior Site reliability engineer, cloud enthusiast , Sci fi fan , Woman in tech :D