-
Notifications
You must be signed in to change notification settings - Fork 33
Blog: OpenGitOps 1.0 #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
fd9bf2c
Updated website to be compliant with CNCF guidelines (#33)
roberthstrand 36441ac
Add Github Pages deploy workflow (#30)
RedbackThomson e6fb7d8
GitOpsCon NA 20201 Blog (#34)
christianh814 c7be4ab
create gitops-one-stop-shop event (#36)
staceypotter a3f6f99
Remove link to nonexistent fb page (#38)
scottrigby 1849726
initial commit to create blog post
todaywasawesome 39f924a
Add blogpost
todaywasawesome 79f3e13
Remove announcements around white papers etc...
todaywasawesome a07112c
Merge remote-tracking branch 'upstream/main' into 1.0-blog
scottrigby a56ca1e
Link to v1.0.0 ref not main
scottrigby fac6f3f
Fix formatting: list and extra break/trailing whitespace
scottrigby 5fd0bbb
Implement semantic line breaks for better diffs. See https://sembr.org/
scottrigby 3cdfb64
Suggested edits for clarity and flow
scottrigby 9701007
Not only for DevOps professionals
scottrigby 76e1210
Change tense now that we have a 1.0, which establishes a foundation for…
scottrigby 671479b
Update content/blog/1.0-announcement/index.mdx
todaywasawesome e7762df
Update content/blog/1.0-announcement/index.mdx
todaywasawesome File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| --- | ||
| title: OpenGitOps 1.0 is finally here and why you should care | ||
| date: "2021-11-08T09:00:01.284Z" | ||
| description: "OpenGitOps 1.0 brings a mature standard to the DevOps industry." | ||
| author: Dan Garfield and Scott Rigby | ||
| thumbnail: images/GitOps-1.0.jpg | ||
| --- | ||
|
|
||
| GitOps is a term coined by Alexis Richardson a few years ago and has grown immensely in popularity. | ||
| In a nutshell, GitOps is a set of principles for operating and managing software systems, derived from modern software operations, but also rooted in pre-existing and widely adopted best practices. | ||
| However they differ in specific ways from traditional CI & CD pipeline approach that has dominated the industry for decades. | ||
| Last year, Amazon, Azure, Codefresh, Github, Redhat, and Weaveworks teamed up to launch the GitOps Working Group under the CNCF. | ||
| The goal was to formalize all the ideas that have developed around GitOps into a single cohesive set of principles that would be easily digestible and repeatable by any organization. | ||
|
|
||
| We’re very proud to announce that over 60 companies, 96 interested parties, and 34 co-authors have brought the best of DevOps into the [OpenGitOps 1.0 Principles and Glossary](https://github.com/open-gitops/documents/releases/tag/v1.0.0). | ||
| Each principle discusses the desired state of a system and how it should be operated. | ||
|
|
||
| The desired state of a GitOps managed system must be: | ||
|
|
||
| 1. **Declarative** | ||
|
|
||
| A [system](https://github.com/open-gitops/documents/blob/v1.0.0/GLOSSARY.md#software-system) managed by GitOps must have its desired state expressed [declaratively](https://github.com/open-gitops/documents/blob/v1.0.0/GLOSSARY.md#declarative-description). | ||
|
|
||
| 2. **Versioned and Immutable** | ||
|
|
||
| Desired state is [stored](https://github.com/open-gitops/documents/blob/v1.0.0/GLOSSARY.md#state-store) in a way that enforces immutability, versioning and retains a complete version history. | ||
|
|
||
| 3. **Pulled Automatically** | ||
|
|
||
| Software agents automatically pull the desired state declarations from the source. | ||
|
|
||
| 4. **Continuously Reconciled** | ||
|
|
||
| Software agents [continuously](https://github.com/open-gitops/documents/blob/v1.0.0/GLOSSARY.md#continuous) observe actual system state and [attempt to apply](https://github.com/open-gitops/documents/blob/v1.0.0/GLOSSARY.md#reconciliation) the desired state. | ||
|
|
||
| ## GitOps is more than just storing infrastructure-as-code | ||
|
|
||
| As [git history shows](https://github.com/open-gitops/documents/commits/v1.0.0), the wording of each principle and linked glossary item was very carefully chosen. | ||
| While many of these principles should be familiar to professionals, many are surprised to learn that they still have work to do to implement GitOps fully. | ||
|
|
||
| _Declarative_ is usually the easiest principle to understand. | ||
| Not just infrastructure-as-code but all configuration data that is needed to run a system including the application layer. | ||
| While this doesn’t generally include persistent application data such as database contents it often includes credentials and configuration for data recovery or data access. | ||
|
|
||
| _Versioned and Immutable_ is often understood as “use git” but there is more to it than that. | ||
| If that desired state describes using a “latest” tag for example, it is no longer versioned because there is no way to rollback changes in the desired state. | ||
| Likewise, many version control systems can be used in GitOps as long as they meet those two basic requirements and teams use them in a conformant manner. | ||
|
|
||
| _Pulled Automatically_ means we have to have software agents constantly observing the desired state. | ||
| While triggers may exist to speed up that observation, a GitOps system shouldn’t exclusively rely on them. | ||
| Software agents need to constantly be aware of what the desired state should be, not only when a deliberate change is made. | ||
| The verb “pull” here is used very clearly in contrast to the way traditional CI/CD pipelines function based on triggers that simply push. | ||
|
|
||
| Finally, _Continuously Reconciled_ brings it all together. | ||
| The GitOps software agents have to be aware of the actual state of a system under management and attempt to apply the desired state. | ||
| Being constantly aware of both the actual state and desired state means we can detect anytime they are out of alignment whether by changes to the desired state (normal operation) or changes to the actual state (drift), a GitOps software agent should detect this attempt to apply the desired state. | ||
|
|
||
| When teams implement these principles and achieve GitOps they deploy more often, have fewer regressions, and are more competitive. | ||
| They bring together decades of experience delivering software to create a standard that is incredibly powerful and accessible and rapidly being adopted by a growing number of open source tools and vendors. | ||
|
|
||
| ## What’s next | ||
|
|
||
| There’s so much more on the horizon and we need your help! | ||
| This vendor-neutral, principle-led meaning of GitOps establishes a foundation for interoperability between tools, conformance, and certification through lasting programs, documents, and code. | ||
|
|
||
| How do you use GitOps? | ||
| Join us in developing GitOps case studies and best practices, plan GitOps events, and help with the direction of the OpenGitOps project! | ||
|
|
||
| <Button | ||
| to="/get-involved" | ||
| label="How To Get involved" | ||
| className="w-full mt-12 md:w-auto" | ||
| /> | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.