Value Matrix ~ Gitops Benefits Flashcards
Less frequent deployment
GitOps and Codefresh of enables the organization to deploy with every code / configuration change with the safety of GitOps which allows to know exaclty what the change is and really easy rollback in case something breaks
Inconsistent implementation of the deployment process / pipelines
Standardization using controllers enables the Developer to contribute their application file to GIT and take advantage of the controllers already in place.
The automation behind this is customized by the application’s resource file (manifest) not by making changes to deployment scripting or pipelines.
A single YAML file controls all the customizations to link up the live application to the application manifests
Long time to recover from a failure
- GitOps enables you to easily see the change the caused the failure
- GitOps enables you to easily rollback the identified change using git-revert because it is all in Git
- Codefresh provides the linkage between all data sources to alert you and show you the problem but also connect it to the actual change / Jira / etc. which saves a lot of time in finding the root cause of the issue
Inconsistent deployments on all levels (code / config / infra) - no one stop shop for changes*
- Ability to easily know what is deployed where and what is running in your production env’
- Many companies need auditability for various compliance requiermentes (SOC 2 / ISO / PCI / Etc.)
- Easier troubleshooting across the board and not just on the application changes
“Failed promotion (Dev -> QA -> Staging -> Production) process due to missing configurations
- Git is the enforcer of documenting everything and making sure staging and production is all the same
- By leveraging Codefresh you will not document just the application changes but the entire configuration of the application and infrastructure which is the number 1 issue of configuration drifts between environments
Maintaining multiple pipelines (due to pipeline sprawl)
- Less pipelines means streamlined approach to you deployments
- The DevOps engineer you are chatting with does not want to maintain pipelines, they want to do much more interestring things :)
- Efficiency improvement on the DevOps team - can do more with less / same resources (headcount)
No live status of deployments / applications
- Live state including change history is available through GitOps UI.
- GitOps UI reflects the live application and the version associated. It also reflects when the live version (Kubernetes) is not in sync with the desired version (Version Control).
Limited Protection from Introduction of Non Approved/Reviewed Changes
- Changes must be through version control.
- Application is protected from changes outside of the dedicated change process.
- In most cases, GitOps practitioners turn off or reduce capabilities to run commands against Kubernetes
No live feedback / status of pipeline execution
- All configuration is under constant auditing.
- GitOps will reflect differences between desired state of application (Version Control) and the current state (Kubernetes).
- GitOps can also reconcile the current state to desired state when they are out of sync through auto-reconcile capability.
Developers has access to the k8s cluster in order to do their daily job (see what is where)
- User access to Kubernetes cluster is no longer required.
2. Streamlined access control - SW developers are already in Git
Different Development Practices - Inconsistent Developer experience between app development to app
deployment (which includes configiration / infra)
- Developers commonly use the version control system to audit their changes to source code of applications.
- This same best practice can be applied to changes to application configurations.
Pipeline SME Required
- Standardization through GitOps controllers will enable community support.
- The sophisticated scripting is eliminated and replaced with YAML definitions which can be more easliy understood.
Pipeline SME Required
- Standardization through GitOps controllers will enable community support.
- The sophisticated scripting is eliminated and replaced with YAML definitions which can be more easliy understood.
Developers have varying degrees of internal processes and k8s knowledge
- GitOps reduce the knowledge needed to deploy. “I literally just maintain 2 manifests, a project and an application, and that’s it.
- Devs can focus on other key areas, rather on how to deploy things
- Shorten on boarding time for new devs and projects