Skip to content

Commit 2ecc123

Browse files
authored
blog on app-of-apps (#241)
1 parent c0f13e4 commit 2ecc123

File tree

2 files changed

+67
-6
lines changed

2 files changed

+67
-6
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: 'is app-of-apps the right pattern for you?'
3+
date: 2023-05-17
4+
author: 'Christoph [GNU:] Görn'
5+
description: 'The app-of-apps pattern, while a useful concept, does have its pitfalls. The most significant is the complexity it introduces into application management.'
6+
tags:
7+
- OperateFirst
8+
- Operations
9+
- GitOps
10+
- ArgoCD
11+
- Kustomize
12+
- App-of-Apps
13+
---
14+
15+
The app-of-apps pattern, while a useful concept, does have its pitfalls. The most significant is the complexity it
16+
introduces into application management. When you use the app-of-apps pattern, you're essentially managing applications
17+
within applications. This can become difficult to navigate, especially when applications begin to scale.
18+
19+
## The Problem with the App-of-Apps Pattern
20+
21+
With a growing number of applications, it becomes challenging to keep track of all the interdependencies. Furthermore,
22+
when multiple teams are responsible for different applications, the complexity increases exponentially. This can lead
23+
to configuration drift and potential security risks, as the entire system's stability becomes dependent on each
24+
individual application.
25+
26+
## Putting the Environment at the Center
27+
28+
In contrast, if we put the environment - the Kubernetes cluster - at the center of our thoughts, we can streamline our
29+
application management process. This doesn't mean we forget about applications, but rather, we view them as an integral
30+
part of the environment.
31+
32+
We can think of our environment as a living ecosystem, with applications as various organisms living within it. Rather
33+
than managing these organisms separately, we manage the ecosystem as a whole, ensuring that it remains healthy and
34+
balanced. This involves considering the system's stability, security, and ability to scale, as well as the
35+
interdependencies between various applications.
36+
37+
When we treat the environment as the central focus, we can apply a more holistic management approach. Using tools like
38+
Kustomize and ArgoCD, we can manage the Kubernetes cluster and its applications as a unified entity. This reduces
39+
complexity and makes it easier to maintain stability and security.
40+
41+
## The Power of GitOps
42+
43+
By using GitOps, we keep all our application's declarative configurations in a version-controlled system - Git. This
44+
enables automatic detection and remediation of configuration drift, thereby enhancing security and reliability.
45+
46+
Kustomize allows us to manage Kubernetes configurations through customization, and ArgoCD provides continuous delivery
47+
capabilities to deploy these configurations to the Kubernetes cluster. When used together, these tools can provide a
48+
powerful, declarative, and version-controlled approach to managing our Kubernetes environment.
49+
50+
## Conclusion
51+
52+
While the app-of-apps pattern has its merits, it can introduce unnecessary complexity into Kubernetes application
53+
management. By shifting our focus to the environment - the Kubernetes cluster - and treating it as a unified entity
54+
with its applications, we can simplify management and enhance stability and security.
55+
56+
The combination of GitOps, Kustomize, and ArgoCD offers a powerful toolkit for managing our environment. They enable a
57+
declarative, version-controlled approach to configuration management that is both flexible and reliable. This makes it
58+
easier to maintain our environment and ensures our applications always run in a stable and secure ecosystem.

src/pages/community-cloud.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,15 @@ const CommunityCloudPage = () => {
8989
Community Cloud
9090
</Title>
9191
<Text>
92-
A Community Cloud is a shared environment for Open
93-
Source projects and SRE practitioners. An initial Community Cloud, which was established on bare metal hardware
94-
provided by the Mass Open Cloud (MOC), is documented here. It was decommissioned in the spring of 2023 due to lack of
95-
personnel to operate it. Open Source workloads have since moved to various community clusters to continue their work.
96-
At the present time, there is no bare metal cloud where Open Source operations can be vetted. Commitment of resources to
97-
manage such a cloud will be needed for resumption.
92+
A Community Cloud is a shared environment for Open Source projects and
93+
SRE practitioners. An initial Community Cloud, which was established
94+
on bare metal hardware provided by the Mass Open Cloud (MOC), is
95+
documented here. It was decommissioned in the spring of 2023 due to
96+
lack of personnel to operate it. Open Source workloads have since
97+
moved to various community clusters to continue their work. At the
98+
present time, there is no bare metal cloud where Open Source
99+
operations can be vetted. Commitment of resources to manage such a
100+
cloud will be needed for resumption.
98101
</Text>
99102
<Text>
100103
It&apos;s operated under a community SLA and as open and transparent

0 commit comments

Comments
 (0)