Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Assets/containerization.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions Concepts/Containerization/Container Image.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
aliases:
- Concepts/Container Image
tags:
- seedling
publish: false
---

Brief description of the concept.

## Container Image Advantages

## Container Image Disadvantages

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Concepts/Container%20Image.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Concepts/Container%20Image.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Concepts/Container%20Image) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Concepts/Container%20Image)</span>
22 changes: 22 additions & 0 deletions Concepts/Containerization/Container Orchestration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
aliases:
- Concepts/Container
tags:
- seedling
publish: false
---

Brief description of the concept.

## Container Orchestration Advantages

## Container Orchestration Disadvantages

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Concepts/Container%20Orchestration.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Concepts/Container%20Orchestration.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Concepts/Container%20Orchestration) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Concepts/Container%20Orchestration)</span>
22 changes: 22 additions & 0 deletions Concepts/Containerization/Container.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
aliases:
- Concepts/Container
tags:
- seedling
publish: false
---

Brief description of the concept.

## Container Advantages

## Container Disadvantages

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Concepts/Container.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Concepts/Container.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Concepts/Container) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Concepts/Container)</span>
65 changes: 65 additions & 0 deletions Concepts/Containerization/Containerization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
aliases:
- Concepts/Containerization
tags:
- incubating
publish: false
---

Containerization is a special form of **virtualization** that packages the software code with its operating system libraries and dependencies into a light-weight executable unit called a [[Container]].
![[containerization.png| 550]]

## Containerization Advantages

- **Portability**: By isolating the code from its dependencies from the OS and associate libraries, it solve the problem of "But it works on my machine", allowing the containerized software to run uniformly and consistently on various platform.
- **Efficiency**: The software run on the containerized environment utilize the host machine's OS kernel. Hence, it comes with smaller size and require less time to start up.
- **Faster deployment**: Application running from container can be deployed easily and rapidly scaled due to their portability and efficiency.
- **Security**: The usage of containerization reduce the risk of the application being negatively impacted by security threats or exploits.
- **Microservices architecture**: Enables the development of modular, independently deployable services by using [[Container]] as deployment method.
- **Automation workflow**: Containerization can be integrated with **CI/CD** workflow, collaborating with various tools to create an automatic and consistent pipeline for building, testing, and deploying applications.

## Containerization Disadvantages

- **OS kernel**: Containerization use the OS kernel to operate so if there are any vulnerability in the kernel can potentially lead to errors on the application.
- **More security concerns**: Containerization require many components to function such as [[Container]], [[Container Image]], services,... These could the target for exploits and attacks.
- **Increase Complexity**: The process of creating and managing [[Container]] is a thorny task that require deep and wide system knowledge.
- **Compatibility**: Containerized applications may face compatibility issues when interacting with legacy systems.
- **Steep learning curve**: Adopting Containerization require significant amount of time and effort to master and apply into real-world system.

## When to use Containerization

It is well-known that containerization is a game-changing technology for modern process of development and deployment. However, there are still some requirements that need to be meet in order to use this technology. Here are some Do's and Don'ts:

### Do's

- **Familiar with Microservices architecture**: If you're working with microservices architectures, containerization is a must. Containers allow you to deploy, scale, and manage each microservice independently. This modularity makes your applications more scalable and resilient. By isolating services, you can update or fix one component without affecting the others, leading to faster development cycles.
- **DevOps workflow**: This combine with containerization deliver consistency and speed to the process of CI/CD, enable efficient error-free development, testing, deployment pipeline. Hence, the delivery process will not have any problems.
- **Complex dependencies**: By encapsulating dependencies within [[Container]], this allow applications to run consistently regardless of infrastructure.
- **Optimizing resource**: [[Container]] is light-weight and portable, they require minimal resource to operate. This is perfect for cost-effective deployment and scaling.

### Don'ts

- **Simple application**: Using containerization for simple apps is just overkill, straight deployment might be better regarding management complexity and speed.
- **Legacy system adoption**: "If it works, leave it be", refactor a working legacy system to newer technology might contain potential risks and tradeoffs that need intense consideration.
- **Fear of missing out**: "Everyone is using containerization so we need to use it too", this a false understanding of containerization usage. It is true that it provides many benefits to the development and deployment process, but when deciding to use a technology, you need to consider many aspects of a bigger picture. Everything has a tradeoff and containerization is not doing everything by itself, it need to cooperate with its surrounding.

## Containerization Tools

- [[Docker]]:
- [[Podman]]:
- [[Kubernetes]]
- [[Skopeo]]:
- [[Buildah]]:

## Best Practices

[Containerization best practices - Simform](https://www.simform.com/blog/containerization-best-practices)
[Containerization best practices - Dev Communities](https://dev.to/aws-builders/the-art-of-creating-container-images-and-best-practices-3p9d)
%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Concepts/Containerization/Containerization.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Concepts/Containerization/Containerization.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Concepts/Containerization/Containerization) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Concepts/Containerization/Containerization)</span>
28 changes: 28 additions & 0 deletions Templates/Tool Template - Containerization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
Aliases: []
Tags: [seedling]
publish: false
---

(optional) Logo

Brief description of the tool.

## {{title}} Official Documentation

## {{title}} Advantages

## {{title}} Disadvantages

## {{title}} Learning Resources

## {{title}} Recent Posts

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Tools/Containerization/{{title}}.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Tools/Containerization/{{title}}.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Tools/Conatinerization/{{title}}) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Tools/Conatinerization/{{title}})</span>
30 changes: 30 additions & 0 deletions Tools/Containerization/Buildah.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
aliases:
- Tools/Buildah
tags:
- seedling
publish: false
---

(optional) Logo

Brief description of the tool.

## Buildah Official Documentation

## Buildah Advantages

## Buildah Disadvantages

## Buildah Learning Resources

## Buildah Recent Posts

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Tools/Containerization/Buildah.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Tools/Containerization/Buildah.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Tools/Conatinerization/Buildah) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Tools/Conatinerization/Buildah)</span>
30 changes: 30 additions & 0 deletions Tools/Containerization/Docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
aliases:
- Tools/Docker
tags:
- seedling
publish: false
---

(optional) Logo

Brief description of the tool.

## Docker Official Documentation

## Docker Advantages

## Docker Disadvantages

## Docker Learning Resources

## Docker Recent Posts

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Tools/Containerization/Docker.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Tools/Containerization/Docker.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Tools/Conatinerization/Docker) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Tools/Conatinerization/Docker)</span>
30 changes: 30 additions & 0 deletions Tools/Containerization/Kubernetes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
aliases:
- Tools/Kubernetes
tags:
- seedling
publish: false
---

(optional) Logo

Brief description of the tool.

## Kubernetes Official Documentation

## Kubernetes Advantages

## Kubernetes Disadvantages

## Kubernetes Learning Resources

## Kubernetes Recent Posts

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Tools/Containerization/Kubernetes.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Tools/Containerization/Kubernetes.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Tools/Conatinerization/Kubernetes) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Tools/Conatinerization/Kubernetes)</span>
30 changes: 30 additions & 0 deletions Tools/Containerization/Podman.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
aliases:
- Tools/Podman
tags:
- seedling
publish: false
---

(optional) Logo

Brief description of the tool.

## Podman Official Documentation

## Podman Advantages

## Podman Disadvantages

## Podman Learning Resources

## Podman Recent Posts

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Tools/Containerization/Podman.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Tools/Containerization/Podman.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Tools/Conatinerization/Podman) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Tools/Conatinerization/Podman)</span>
30 changes: 30 additions & 0 deletions Tools/Containerization/Skopeo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
aliases:
- Tools/{{title}}
tags:
- seedling
publish: false
---

(optional) Logo

Brief description of the tool.

## Skopeo Official Documentation

## Skopeo Advantages

## Skopeo Disadvantages

## Skopeo Learning Resources

## Skopeo Recent Posts

%% wiki footer: Please don't edit anything below this line %%

## This note in GitHub

<span class="git-footer">[Edit In GitHub](https://github.dev/data-engineering-community/data-engineering-wiki/blob/main/Tools/Containerization/Skopeo.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/data-engineering-community/data-engineering-wiki/main/Tools/Containerization/Skopeo.md "git-hub-copy-note")</span>

<span class="git-footer">Was this page helpful?
[👍](https://tally.so/r/mOaxjk?rating=Yes&url=https://dataengineering.wiki/Tools/Conatinerization/Skopeo) or [👎](https://tally.so/r/mOaxjk?rating=No&url=https://dataengineering.wiki/Tools/Conatinerization/Skopeo)</span>