diff --git a/content/posts/no-app-of-apps-anymore/index.md b/content/posts/no-app-of-apps-anymore/index.md new file mode 100644 index 00000000..aeb82937 --- /dev/null +++ b/content/posts/no-app-of-apps-anymore/index.md @@ -0,0 +1,58 @@ +--- +title: 'is app-of-apps the right pattern for you?' +date: 2023-05-17 +author: 'Christoph [GNU:] Görn' +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.' +tags: + - OperateFirst + - Operations + - GitOps + - ArgoCD + - Kustomize + - App-of-Apps +--- + +The app-of-apps pattern, while a useful concept, does have its pitfalls. The most significant is the complexity it +introduces into application management. When you use the app-of-apps pattern, you're essentially managing applications +within applications. This can become difficult to navigate, especially when applications begin to scale. + +## The Problem with the App-of-Apps Pattern + +With a growing number of applications, it becomes challenging to keep track of all the interdependencies. Furthermore, +when multiple teams are responsible for different applications, the complexity increases exponentially. This can lead +to configuration drift and potential security risks, as the entire system's stability becomes dependent on each +individual application. + +## Putting the Environment at the Center + +In contrast, if we put the environment - the Kubernetes cluster - at the center of our thoughts, we can streamline our +application management process. This doesn't mean we forget about applications, but rather, we view them as an integral +part of the environment. + +We can think of our environment as a living ecosystem, with applications as various organisms living within it. Rather +than managing these organisms separately, we manage the ecosystem as a whole, ensuring that it remains healthy and +balanced. This involves considering the system's stability, security, and ability to scale, as well as the +interdependencies between various applications. + +When we treat the environment as the central focus, we can apply a more holistic management approach. Using tools like +Kustomize and ArgoCD, we can manage the Kubernetes cluster and its applications as a unified entity. This reduces +complexity and makes it easier to maintain stability and security. + +## The Power of GitOps + +By using GitOps, we keep all our application's declarative configurations in a version-controlled system - Git. This +enables automatic detection and remediation of configuration drift, thereby enhancing security and reliability. + +Kustomize allows us to manage Kubernetes configurations through customization, and ArgoCD provides continuous delivery +capabilities to deploy these configurations to the Kubernetes cluster. When used together, these tools can provide a +powerful, declarative, and version-controlled approach to managing our Kubernetes environment. + +## Conclusion + +While the app-of-apps pattern has its merits, it can introduce unnecessary complexity into Kubernetes application +management. By shifting our focus to the environment - the Kubernetes cluster - and treating it as a unified entity +with its applications, we can simplify management and enhance stability and security. + +The combination of GitOps, Kustomize, and ArgoCD offers a powerful toolkit for managing our environment. They enable a +declarative, version-controlled approach to configuration management that is both flexible and reliable. This makes it +easier to maintain our environment and ensures our applications always run in a stable and secure ecosystem. diff --git a/src/pages/community-cloud.js b/src/pages/community-cloud.js index 59d8dcc0..756c8201 100644 --- a/src/pages/community-cloud.js +++ b/src/pages/community-cloud.js @@ -89,12 +89,15 @@ const CommunityCloudPage = () => { Community Cloud - A Community Cloud is a shared environment for Open - Source projects and SRE practitioners. An initial Community Cloud, which was established on bare metal hardware - provided by the Mass Open Cloud (MOC), is documented here. It was decommissioned in the spring of 2023 due to lack of - personnel to operate it. Open Source workloads have since moved to various community clusters to continue their work. - At the present time, there is no bare metal cloud where Open Source operations can be vetted. Commitment of resources to - manage such a cloud will be needed for resumption. + A Community Cloud is a shared environment for Open Source projects and + SRE practitioners. An initial Community Cloud, which was established + on bare metal hardware provided by the Mass Open Cloud (MOC), is + documented here. It was decommissioned in the spring of 2023 due to + lack of personnel to operate it. Open Source workloads have since + moved to various community clusters to continue their work. At the + present time, there is no bare metal cloud where Open Source + operations can be vetted. Commitment of resources to manage such a + cloud will be needed for resumption. It's operated under a community SLA and as open and transparent