Deployment and implementation Flashcards

1
Q

What are containers?

A

containers are a way of packaging software, the work similar to virtual machines. All your application’s code, libraries, and dependencies are packed together in the container as an immutable artifact. what makes them special is that when you run a container, you know exactly how it will run - it’s predictable, repeatable and immutable.

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

Benefits of containers in cloud computing.

A

Containers enable that all your application’s code, libraries, and dependencies are packed together in the container as an immutable artifact. Therefore a benefit of containers is that it helps facilitate quick elasticity and separation of concerns. At present some may not yet be building microservices.

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

What is the purpose of Docker?

A

Docker helps you create and deploy software within containers. It’s an open source collection of tools that help you “Build, Ship, and Run any App, Anywhere”.

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

What is a dockerfile?

A

Dockerfiles define a build process, which, when fed to the ‘docker build’ command, will produce an immutable docker image. This image could be compared as a snapshot of your application.

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

Explain the purpose of the Docker Hub.

A

Docker Hub is the cloud-based repository provided by docker.

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

What is the purpose of Kubernetes in containers?

A

Kubernetes is an open source container orchestration platform. It allows for large numbers of containers to work together in harmony, reducing operational burden.

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

List some of the services for Kubernetes?

A

Kubernetes helps with running containers across many different machines
Scaling up or down by adding or removing containers when demand changes
It helps with keeping storage consistent with multiple instances of an application
Used in distributing load between the containers
Kubernetes is used for launching new containers on different machines if something fails

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

Explain what the pod is in Kubernetes

A

A Pod is the basic building block in Kubernetes and is the smallest deployable unit that typically represents a running process on your cluster. Pods encapsulate an application’s container storage resources, a unique network IP and the configuration options on how the container should run. All containers that are part of a Pod run on the same Kubernetes node.

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

Can Docker be used for container management?

A

No however Docker has its own native container management tool called Docker Swarm. Docker Swarm lets you deploy containers as Swarms that you can interact with as a single unit, with all the container management taken care of.

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

What is the relationship of Kubernetes and Docker?

A

Docker and Kubernetes work at different levels. Under the hood, Kubernetes can integrate with the Docker engine to coordinate the scheduling and execution of Docker containers on Kubelets. The Docker engine itself is responsible for running the actual container image built by running ‘docker build’. Higher level concepts such as service-discovery, loadbalancing and network policies are handled by Kubernetes as well.

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

What are the benefits of microservices

A

Microservices breaks down potentially monolitic applications into independant pieces. Doing this has a few key benefits:

Smaller parts are easier to understand
Each microservice can be deployed and scaled independently
A fault in one microservice won’t bring the whole application down
You can choose the right technology stack for each microservice
Teams can work in parallel to get things done faster

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

What are the tradeoffs of using microservices?

A

Using micro-services requires building a distributed system, which comes with a few challenges:

Communication between services can get difficult, especially with unreliable services.
Writing automated tests and creating consistent test environments for multiple tests is hard.
There isn’t an easy way to recreate conditions where a bug occurred.
Communication between the services can slow things down.
Orchestrating multiple instances of different services requires good use of automation and continuous delivery tools.

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

Explain how a ecommerce website can be converted into microservices?

A

A simple ecommerce website might be broken down into:

The front-end user interface
A user account service
A shopping cart service that stores the items currently in the cart
An inventory service that checks available items

All of the code for each of these is completely separated, each having their own logic and database. When these individual applications need to communicate or exchange information, they do so through defined methods called APIs (Application Programming Interfaces). E.g. the shopping cart service might want to consult the inventory service to check if an item is available before adding it to the cart.

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