Devops Flashcards

1
Q

What is git branching for?

A

Git branching is a tool for development that assist when working with a team. A branch can be made for a specific person to work in and push code to without affecting the main branch. From there the code can be reviewed before merging into the main branch. This allows an easy way to attempt new features or updates to make sure they are working and tested before actually affecting the main branch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is git merging for?

A

Merging is Git’s way of putting a forked history back together again. The git merge command lets you take the independent lines of development created by git branch and integrate them into a single branch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a pull request?

A

Pull requests let you tell others about changes you’ve pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does a gitignore do?

A

The purpose of gitignore files is to ensure that certain files not tracked by Git remain untracked. The .gitignore file tells Git which files to ignore when committing your project to the GitHub repository. gitignore is located in the root directory of your repo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why would a developer leverage cloud computing rather than running their applications off of their own server?

A

The cloud offers businesses more flexibility overall versus hosting on a local server. And, if you need extra bandwidth, a cloud-based service can meet that demand instantly, rather than undergoing a complex (and expensive) update to your IT infrastructure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are regions and availability zones?

A

AWS region is a physical location where data centers are clustered around the globe. Groups of these data centers are called AZ’s. Each region consists of 3 isolated, and physically separated AZ’s which lets the user operate on production apps and databases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is autoscaling?

A

AWS Auto Scaling lets you build scaling plans that automate how groups of different resources respond to changes in demand. You can optimize availability, costs, or a balance of both.

Creates all of the scaling policies and sets targets for you based on your preference.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a security group for?

A

Controls the traffic that is allowed to reach and leave the resources that it is associated with.

For example, after you associate a security group with an EC2 instance, it controls the inbound and outbound traffic for the instance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is EC2?

A

Ec2 stands for elastic compute cloud. It is a web service provided by amazon web services that allows users to rent virtual servers in the cloud. These can be accessed and managed remotely over the internet. Ec2 instances are designed to provide scalable computing capacity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is an RDS?

A

Relational Database Service: it is a database instance running with Amazon RDS encryption to easily set up, operate, and scale relational databases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is an S3?

A

S3 stands for simple storage service. It is a cloud-based object storage service provided by amazon web services. Key benefits of s3 are its scalability and reliability. It is designed to automatically scale to accommodate changing needs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is an AMI?

A

AMI stands for amazon machine image. It is a preconfigured virtual machine image used to create ec2 instances on the aws cloud. Amis also provide a way to back up and restore ec2 instances. Users can create an ami of an existing ec2 instance and use it to launch a new instance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is an EBC for?

A

Amazon Enhanced Brand Content (EBC) is a premium content feature that enables sellers to showcase their products through enhanced image and text placements on Amazon.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What do we use SSH for?

A

SSH connections have mostly been used to secure different types of communications between a local machine and a remote host, including:

Secure remote access to resources

Remote execution of commands

Delivery of software patches and updates

Interactive and automated file transfers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is docker and why would a developer use it?

A

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization technology. Developers use Docker to ensure consistent environments across development, testing, and production stages, simplify deployment, and improve application isolation and security.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a container?

A

A container is a lightweight, stand-alone, and executable software unit that bundles an application along with its dependencies and runtime environment. Containers allow applications to run reliably across different computing environments, by isolating them from the host system and other containers.

17
Q

How is a container different from a virtual machine?

A

A container is different from a virtual machine (VM) in that it shares the host’s operating system kernel and resources, while a VM runs a full operating system on emulated hardware. Containers are more lightweight, start faster, and require fewer resources than VMs.

18
Q

What is an image? How are images related to containers?

A

An image is a snapshot of a container’s filesystem and includes everything needed to run the application (code, libraries, environment variables, etc.). Images are the basis for creating containers. When a container is launched, it is instantiated from a specific image, with a read-write layer added on top of the image’s read-only layers.

19
Q

What is a dockerfile? How is a dockerfile related to images?

A

A Dockerfile is a script containing instructions to build a Docker image. It specifies the base image, application code, dependencies, environment variables, and configurations needed to create a custom image. The Dockerfile is used by the docker build command to generate an image.

20
Q

What does it mean to “containerize” my application?

A

To “containerize” an application means to package it as a container, ensuring that it can run consistently and reliably across different environments.

21
Q

What is a docker volume, and why would a developer use one?

A

A Docker volume is a mechanism for persisting data generated by and used by Docker containers. It provides an abstraction layer for storing data outside the container’s filesystem. Developers use Docker volumes to manage data, share data between containers, and ensure data persistence even when containers are removed or updated.

22
Q

What is dockerhub, and why would a developer use it?

A

Docker Hub is a cloud-based registry service for sharing and distributing Docker images. Developers use Docker Hub to store and share their custom images, as well as to find and use pre-built images created by others. This simplifies the process of deploying applications and managing dependencies.

23
Q

What are some of the common docker commands used for?

A

docker build: Builds an image from a Dockerfile.

docker pull: Downloads an image from a registry (e.g., Docker Hub).

docker push: Uploads an image to a registry.

docker run: Creates and starts a new container from an image.

docker ps: Lists running containers.

docker stop: Stops a running container.

docker rm: Removes a stopped container.

24
Q

What is devops for?

A

DevOps is a set of practices, tools, and a cultural philosophy that automated and integrate the process between software development and IT teams.

25
Q

What is Continuous Integration?

A

Continuous Integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project. (It is a primary DevOps best practice, allowing developers to frequently merge code changes into a central repository where builds and tests then run)

26
Q

What is Continuous Delivery?

A

Continuous delivery is an extension of continuous integration since it automatically deploys all the code changes to a testing and/or production environment after the build stage. (This means that on top of automated testing, we will have an automated release process, and we can deploy our application any time by clicking a button)

27
Q

What is Continuous Deployment?

A

A strategy in software development where code changes to an application are released automatically into the production environment.

28
Q

How does Devops relate to Agile?

A

Agile and DevOps are associated with one other because they both improve teamwork among individual software developers. They provide a way for accelerating the development lifecycle without the difficulties that result from engineers working on various aspects.

29
Q

What is Jenkins and why would a developer use it?

A

Jenkins is an open-source continuous integration/delivery and deployment automation software DevOps tool written in the Java programming language. It is used to implement CI/CD workflows, called pipelines.

Advantages:

Free and fully open-source

Rich Plugin Ecosystem to enhance the functionalities

Easy Integration to EC2

30
Q

What is a pipeline?

A

A suite of plugins which supports implementing and integrating continuous delivery pipelines into Jenkins.

A continuous delivery pipeline is an automated expression of your process for getting software from version control right through to your users and customers.

31
Q

What is a job?

A

A given set of tasks that runs sequentially as defined by the user. Any automation implemented in Jenkins is a Jenkins Job. We can create and build Jenkins jobs to test our application or project

32
Q

What is a github webhook?

A

Used to trigger the action whenever Developers commit something into the repository. It can automatically compile or deploy applications if there are no errors detected.

33
Q

What is linting / static code analysis and why would a developer use it?

A

Linting is the automated process of the checking the source code of a program.

It is used to write better code with features similar to spellchecking, issue detection, and the differences between issues.

It also allows several developers to adhere to the same coding guidelines.

34
Q

What is SonarCloud?

A

SonarCloud is a cloud-based code analysis service to detect code quality issues such as unused variables/imports and security issues, to maintain security, reliability, and maintainability