Introduction Flashcards

1
Q

What are some of the benefits of using microservices in application architecture?

A

Benefits of microservices include better fault tolerance, scalability, and the ability to use different programming languages for each microservice.

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

What is the Strangler pattern, and how can it be used to transform a monolithic system into microservices?

A

The Strangler pattern involves gradually extracting functionality from a monolithic system and migrating it to microservices while routing calls through a facade. This pattern allows for a smooth transformation.

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

What is one of the key challenges in transitioning to a microservices architecture?

A

One of the challenges is ensuring that the system can survive if one microservice goes down, as there are multiple smaller points of potential failure.

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

What is meant by “immutable infrastructure” in the context of Cloud Native?

A

Immutable infrastructure means that instead of updating components, you replace them with newer versions, which helps maintain consistency and reliability.

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

What is the Cloud Native Computing Foundation (CNCF), and what does it provide?

A

CNCF is an organization that hosts open-source projects related to cloud-native technologies. It provides a wide range of projects and resources for cloud-native development.

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

What are some of the steps outlined in the Cloud Native trail map for transitioning to a cloud-native architecture?

A

Steps include containerization, automation, using an orchestrator like Kubernetes, adding observability, and implementing security policies.

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

What are some of the benefits of Cloud Native architecture?

A

Benefits include speed, agility, the ability to release features faster, and the use of modern development practices.

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

What is the primary advantage of using containers in application deployment?

A

Containers provide a consistent and isolated environment for running applications, ensuring that they behave the same way regardless of the underlying infrastructure.

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

How does Cloud Native architecture promote faster feature releases?

A

Cloud Native architecture promotes faster feature releases by using modern development practices, automation, and continuous integration and delivery (CI/CD) techniques.

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

Why is it important to use an orchestrator like Kubernetes in a Cloud Native environment?

A

Orchestrators like Kubernetes automate the deployment, scaling, and management of containers, making it easier to manage complex microservices applications.

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

What is observability in the context of Cloud Native architecture, and why is it important?

A

Observability refers to the ability to monitor and understand what is happening within a system. It is crucial for detecting issues, debugging, and ensuring system reliability.

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

How does the concept of “immutable infrastructure” differ from traditional infrastructure management?

A

Immutable infrastructure involves replacing components with newer versions rather than updating them in place, which reduces complexity and enhances reliability.

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

What are some of the key considerations when implementing security in a Cloud Native environment?

A

Implementing security policies, ensuring secure communication between microservices, and managing access control are essential considerations for security in Cloud Native architecture.

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

What are the categories of projects in the Cloud Native Computing Foundation (CNCF), and what do they represent?

A

CNCF projects are categorized as sandbox, incubating, and graduated, representing their maturity levels and adoption within the community.

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

What is the significance of following the CNCF Twitter feed for a project?

A

Following the CNCF project’s Twitter feed provides updates, news, and announcements related to that project, keeping users informed about developments and releases.

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

How does the concept of “cattle vs. pet” apply to containerized applications in Cloud Native architecture?

A

In Cloud Native architecture, containers are treated like cattle, meaning they are replaced with newer versions when necessary, rather than being treated as pets that are carefully maintained and patched.

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

What is the role of a facade in the Strangler pattern for transitioning from a monolithic system to microservices?

A

A facade routes calls from the legacy system to the new microservices, allowing for a gradual migration of functionality.

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

What is the main goal of a Cloud Native application architecture?

A

The main goal of a Cloud Native application architecture is to enable faster development, deployment, and scalability of applications using modern practices and cloud infrastructure.

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

What are some of the challenges associated with transitioning from a monolithic system to a microservices architecture?

A

Challenges include added complexity, potential domino effects from changes, implementing DevOps and CI/CD practices, and ensuring proper testing and security.

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

Why is clean code important in Cloud Native development?

A

Clean code promotes maintainability and understanding of the codebase, which is essential for rapid development and troubleshooting in Cloud Native environments.

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

How does observability contribute to the reliability of a Cloud Native system?

A

Observability allows for real-time monitoring and troubleshooting, helping to identify and resolve issues quickly, thereby improving system reliability.

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

What is meant by the term “vendor lock-in,” and why is it a concern in Cloud Native architecture?

A

Vendor lock-in refers to being tied to a specific vendor’s technologies or services, limiting flexibility. In Cloud Native, avoiding vendor lock-in is important to maintain freedom of choice and reduce dependency.

23
Q

What role does automation play in Cloud Native development practices?

A

Automation streamlines processes, such as deployment and scaling, ensuring rapid development and reducing the risk of human errors.

24
Q

What are some key principles of Domain-Driven Design (DDD) that can be applied in Cloud Native development?

A

DDD principles, such as bounded contexts, aggregates, and ubiquitous language, can help define clear boundaries and improve the design of microservices.

25
Q

What are some advantages of using Kubernetes as an orchestrator for containerized applications?

A

Kubernetes provides automated scaling, load balancing, self-healing, and efficient resource management for containerized applications.

26
Q

Why is security a top priority in Cloud Native architecture, and what are some security best practices?

A

Security is crucial to protect microservices and data. Best practices include implementing authentication, authorization, encryption, and continuous monitoring.

27
Q

What are containers, and why are they useful?

A

Containers are lightweight units of deployment that contain everything needed to run code. They are useful because they are faster to deploy, use fewer resources, and are isolated from each other.

28
Q

How do containers differ from virtual machines (VMs)?

A

Containers are different from VMs because they share the host OS kernel, start quickly, use less memory, and have a smaller footprint compared to VMs.

29
Q

What is a container registry, and why is it important?

A

A container registry is a centralized repository for container images. It’s important because it allows you to store, share, and distribute container images, making them easily accessible to others.

30
Q

What is Docker, and what components does it consist of?

A

Docker is a platform that includes a container runtime, command-line tools, Dockerfiles, and Docker Hub. It simplifies the process of building, deploying, and managing containers.

31
Q

How can you install Docker on your machine?

A

You can install Docker on your machine by downloading Docker Desktop from the official Docker website and following the installation instructions for your operating system.

32
Q

What is Docker Desktop, and what does it offer?

A

Docker Desktop is a tool that provides a container runtime, a graphical user interface, and Kubernetes support for running containers on Windows and macOS.

33
Q

What are some essential Docker CLI commands for getting information about Docker?

A

Essential Docker CLI commands for information include docker info, docker version, and docker login.

34
Q

How can you log in to a Docker registry, and why is it useful?

A

You can log in to a Docker registry using the docker login command. It’s useful because it allows you to access and authenticate with container registries like Docker Hub.

35
Q

What is the purpose of the docker pull command, and how does it work?

A

The docker pull command is used to download container images from a registry. It works by fetching the required image layers and caching them locally.

36
Q

How do you run a container in the background using Docker CLI?

A

You can run a container in the background using the docker run -d command, which detaches the container and returns your terminal prompt.

37
Q

What command can you use to list running containers, and how do you include stopped containers in the list?

A

You can use the docker ps command to list running containers. To include stopped containers, use the -a or –all flag.

38
Q

How do you stop a running container using Docker CLI?

A

You can stop a running container by using the docker stop command followed by the container’s name or ID.

39
Q

What command can you use to remove a stopped container, and what is a prerequisite for removing a container?

A

You can use the docker rm command to remove a stopped container. The prerequisite is that the container must be in the stopped state.

40
Q

How can you clean up unused container images from your system?

A

You can clean up unused container images by using the docker image prune or docker system prune command.

41
Q

How can you attach a shell to a running container in Docker CLI?

A

You can attach a shell to a running container using the docker exec -it command followed by the container’s name or ID and the shell you want to run (e.g., /bin/bash).

42
Q

What is the purpose of the docker container exec command, and how does it differ from docker exec?

A

The docker container exec command is used to execute a command in a running container. It differs from docker exec by explicitly mentioning “container” and can be useful for clarity.

43
Q

How can you remove a container and its associated volumes using Docker CLI?

A

You can remove a container and its associated volumes by using the docker rm -v command followed by the container’s name or ID.

44
Q

What is the purpose of the docker rmi command, and how does it work?

A

The docker rmi command is used to remove container images. It works by specifying the image’s name or ID to delete it from your local image cache.

45
Q

How can you run an Nginx web server as a Docker container?

A

You can run an Nginx web server as a Docker container using the docker run command with the nginx image, mapping port 80 to a local port, and specifying a container name.

46
Q

What is the purpose of mapping ports when running a container, and how do you do it in Docker CLI?

A

Mapping ports allows you to access container services from your local machine. You can map ports in Docker CLI using the -p or –publish flag followed by the host port and container port (e.g., -p 8080:80).

47
Q

How can you execute a shell inside a running container, and what is the significance of the -it flags?

A

You can execute a shell inside a running container using the docker exec -it command. The -it flags enable an interactive shell session, allowing you to interact with the container’s terminal.

48
Q

How can you stop and remove a running Docker container?

A

To stop and remove a running Docker container, you can use the docker stop command followed by the container’s name or ID, and then the docker rm command.

49
Q

What is the purpose of the docker container prune command?

A

The docker container prune command is used to remove all stopped containers, freeing up resources and cleaning your system.

50
Q

How can you remove unused Docker images from your local system?

A

You can remove unused Docker images by using the docker image prune or docker system prune command, which deletes images that are not associated with any running containers.

51
Q

What is Docker Hub, and what is its role in container image distribution?

A

Docker Hub is a cloud-based container registry that serves as a central repository for storing, sharing, and distributing container images. It plays a vital role in making container images readily available to the Docker community.

52
Q

What is Kubernetes (K8s), and how does it relate to Docker?

A

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. While Docker provides the container runtime, Kubernetes manages the orchestration of containers in a cluster.

53
Q

What are some key concepts in Kubernetes, and why are they important?

A

Key concepts in Kubernetes include nodes, pods, services, and deployments. They are important because they define the architecture and behavior of containerized applications within a Kubernetes cluster.