Devops Flashcards
What is git branching for?
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.
What is git merging for?
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.
What is a pull request?
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.
What does a gitignore do?
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.
Why would a developer leverage cloud computing rather than running their applications off of their own server?
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.
What are regions and availability zones?
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.
What is autoscaling?
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.
What is a security group for?
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.
What is EC2?
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.
What is an RDS?
Relational Database Service: it is a database instance running with Amazon RDS encryption to easily set up, operate, and scale relational databases.
What is an S3?
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.
What is an AMI?
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.
What is an EBC for?
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.
What do we use SSH for?
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
What is docker and why would a developer use it?
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.
What is a container?
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.
How is a container different from a virtual machine?
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.
What is an image? How are images related to containers?
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.
What is a dockerfile? How is a dockerfile related to images?
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.
What does it mean to “containerize” my application?
To “containerize” an application means to package it as a container, ensuring that it can run consistently and reliably across different environments.
What is a docker volume, and why would a developer use one?
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.
What is dockerhub, and why would a developer use it?
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.
What are some of the common docker commands used for?
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.
What is devops for?
DevOps is a set of practices, tools, and a cultural philosophy that automated and integrate the process between software development and IT teams.