DevOps Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

Application Server Setup…

A
Backup System - required for prod
Recovery Plans - required for prod
Load Balancing
Monitoring
Centralized Logging
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Server environment for a web application

A

Consists of the hardware, software, data, operational plans, and personnel that are necessary to keep the application working.

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

Availability

A

The ability for the application to be usable by its intended users during advertised hours. Availability can be disrupted by any failure that affects a critical component severely enough.

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

Recoverability

A

The ability to recover an application environment in the event of system failure or data loss. If a critical component fails, and is not recoverable, availability will become non-existent. Improving maintainability, a related concept, reduces the time needed to perform a given recovery process in the event of a failure, and therefore can improve availability in the event of a failure.

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

Performance

A

The application performs as expected under average or peak load (e.g. it is reasonably responsive). While very important to your users, performance only matters if the application is available

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

Single Point of Failure

A

Critical components that do not have an automatic failover mechanism.

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

High Availability (HA) setup

A

An infrastructure without a single point of failure.

That can be achieved by adding redundancy to the entry point, or gateway, to your servers. Achieving a complete HA setup also requires redundancy at every layer of your infrastructure, such as your application and database servers, which is often difficult to implement but can prove to be invaluable for reducing downtime and maintaining a happy user base.

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

Common Server Setups are …

A
Everything On One Server
Separate Database Server
Load Balancer (Reverse Proxy)
HTTP Accelerator (Caching Reverse Proxy)
Master-Slave Database Replication
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Active Server

A

The server that receives user traffic that is forwarded from the Floating IP. Typically, this is a load balancer that forwards the traffic to a backend of web application servers.

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

Passive Server

A

A standby server that is usually configured identically to the active server. It only will receive traffic during a failover event—i.e. if the active server becomes unavailable, and the Floating IP is remapped to the standby server.

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

Floating IP

A

The IP address that points to one of the servers, and can be remapped in the event of the failure of the active server.

Floating IP does not automatically provide high availability by itself; a failover mechanism, which automates the process of detecting failures of the active server and reassigning the Floating IP to the passive server, must be devised and implemented for the setup to be considered highly available.

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

Observability is often defined as consisting of three “pillars”:

A

Logging
Metrics
Tracing

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

The four golden signals (of Google SRE-book fame) consist of:

A

Latency
Saturation
Traffic
Error

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

Saturation

A

“Fullness” of a system; it indicates how long something is waiting to be serviced.

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

Latency

A

Refers to the duration of requests.

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

Traffic

A

Refers to the amount of demand placed on your system. In a request-based system, this is often measured in HTTP requests per second.

17
Q

Deployment

A

The step that involves getting the new code onto the servers.

18
Q

Releasing

A

The step where the new code begins to receive production traffic.

19
Q

Two big disadvantages to scaling vertically…

A

There are limits defined by the hardware. You cannot scale upwards indefinitely.

It usually requires downtime, something which big corporations cannot afford.

20
Q

Vertical scaling

A

Adding more resources to the machine.

Horizontal scalability is solving the same problem by throwing more machines at it.

21
Q

Apache Mesos

A

Is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos
kernel runs on every machine and provides applications with API’s for resource management and scheduling across entire datacenter and cloud environments.

It abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.

22
Q

Nomad

A

A single binary that schedules applications and services on Linux, Windows, and Mac. It is an open source scheduler that uses a declarative job file for scheduling virtualized, containerized, and standalone applications.

23
Q

Kubernetes

A

An open-source system for automating deployment, scaling, and management of containerized applications.

It groups containers that make up an application into logical units for easy management and discovery.

24
Q

Apache Kafka

A

A distributed, horizontally-scalable, fault-tolerant commit log.

25
Q

Docker Swarm

A

Provides native clustering functionality for Docker containers, which turns a group of Docker engines into a single, virtual Docker engine.

26
Q

Vagrant

A

Vagrant is designed primarily for local development environments that use only a handful of virtual machines at most.

A tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past.

27
Q

Linux container

A

A set of processes that are isolated from the rest of the system, running from a distinct image that provides all files necessary to support the processes.

By providing an image that contains all of an application’s dependencies, it is portable and consistent as it moves from development, to testing, and finally to production.

28
Q

Virtualization

A

Lets many operating systems run simultaneously on a single system (there is a hypervisor).

Virtualization is technology that allows you to create multiple simulated environments or dedicated resources from a single, physical hardware system. Software called a hypervisor connects directly to that hardware and allows you to split 1 system into separate, distinct, and secure environments known as virtual machines (VMs).

29
Q

Control groups (cgroups)

A

A kernel feature that controls and limits resource usage for a process or groups of processes.

30
Q

systemd

A

An initialization system that sets up the userspace and manages their processes, is used by cgroups to provide greater control over isolated processes.

31
Q

User namespaces

A

Allow per-namespace mappings of user and group IDs. In the context of containers, this means that users and groups may have privileges for certain operations inside the container without having those privileges outside the container.

32
Q

Libcontainer

A

A Docker interface to Linux facilities like Cgroups, namespaces, netlink and netfilter.

Docker engine creates the image,
pass it to containerd,
containerd calls containerd-shim,
containerd-shim uses runC to run the container,
containerd-shim allows the runtime (runC in this case) to exit after it starts the container

33
Q

5 features of cloud computing…

A
Network, 
pooled resources, 
a user interface, 
provisioning capabilities, 
automatic resource control/allocation

While virtualization creates the network and pooled resources, additional management and operating system software is needed to create a user interface, provision VMs, and control/allocate resources.