What is GitOps? Extending devops to Kubernetes and beyond

GitOps applies the same techniques to deploying infrastructure as devops and CI/CD use to deploy applications

The last decade of programming has seen a number of revolutionary transformations. One has arisen from a cluster of practices around devops, which aligns development and operations teams into a shared work process, and continuous integration and continuous delivery (CI/CD), in which devops teams deliver constant incremental updates to a codebase. Another transformation has come from the related move from monolithic codebases to cloud-based microservices running in containers managed by orchestration platforms like Kubernetes.

Container-based applications running on clustered systems or in the cloud can be complex and difficult to provision and manage, even with a platform like Kubernetes orchestrating things. GitOps is an emerging set of practices that aims to simplify this management task by applying techniques from the worlds of devops and CI/CD.

Also on InfoWorld: Get started with CI/CD: Automating your application delivery with CI/CD pipelines ]

The key to GitOps is the idea of infrastructure as code, which takes the same approach to provisioning infrastructure as devops uses to provision applications. So, not only the application but also the underlying host machines and networks are described in files that can be treated as any other code within a version control system, with automated processes then working to converge the real-world application with the one described in those files.

In GitOps parlance, the code in the version control system is the _single source of truth about what the application should look like in production. _

GitOps defined

Weaveworks is the company that has done the most to popularize the concept of GitOps. We’ll go into the details of Weaveworks’s role in a bit, but first, let’s take a look at the company’s definition of GitOps, which is twofold:

  • An operating model for Kubernetes and other cloud native technologies, providing a set of best practices that unify deployment, management, and monitoring for containerized clusters and applications.
  • A path towards a developer experience for managing applications; where end-to-end CI/CD pipelines and Git workflows are applied to both operations and development.

In other words, GitOps is a specific set of practices designed to manage Kubernetes and similar platforms, which also lends itself to possible wider application as more and more development shops adopt devops practices and migrate code to the cloud. But to understand the secret sauce of GitOps and the problems it solves, we need to talk about the components that go into it.

#devops #kubernetes #beyound

What is GEEK

Buddha Community

What is GitOps? Extending devops to Kubernetes and beyond
Christa  Stehr

Christa Stehr

1602964260

50+ Useful Kubernetes Tools for 2020 - Part 2

Introduction

Last year, we provided a list of Kubernetes tools that proved so popular we have decided to curate another list of some useful additions for working with the platform—among which are many tools that we personally use here at Caylent. Check out the original tools list here in case you missed it.

According to a recent survey done by Stackrox, the dominance Kubernetes enjoys in the market continues to be reinforced, with 86% of respondents using it for container orchestration.

(State of Kubernetes and Container Security, 2020)

And as you can see below, more and more companies are jumping into containerization for their apps. If you’re among them, here are some tools to aid you going forward as Kubernetes continues its rapid growth.

(State of Kubernetes and Container Security, 2020)

#blog #tools #amazon elastic kubernetes service #application security #aws kms #botkube #caylent #cli #container monitoring #container orchestration tools #container security #containers #continuous delivery #continuous deployment #continuous integration #contour #developers #development #developments #draft #eksctl #firewall #gcp #github #harbor #helm #helm charts #helm-2to3 #helm-aws-secret-plugin #helm-docs #helm-operator-get-started #helm-secrets #iam #json #k-rail #k3s #k3sup #k8s #keel.sh #keycloak #kiali #kiam #klum #knative #krew #ksniff #kube #kube-prod-runtime #kube-ps1 #kube-scan #kube-state-metrics #kube2iam #kubeapps #kubebuilder #kubeconfig #kubectl #kubectl-aws-secrets #kubefwd #kubernetes #kubernetes command line tool #kubernetes configuration #kubernetes deployment #kubernetes in development #kubernetes in production #kubernetes ingress #kubernetes interfaces #kubernetes monitoring #kubernetes networking #kubernetes observability #kubernetes plugins #kubernetes secrets #kubernetes security #kubernetes security best practices #kubernetes security vendors #kubernetes service discovery #kubernetic #kubesec #kubeterminal #kubeval #kudo #kuma #microsoft azure key vault #mozilla sops #octant #octarine #open source #palo alto kubernetes security #permission-manager #pgp #rafay #rakess #rancher #rook #secrets operations #serverless function #service mesh #shell-operator #snyk #snyk container #sonobuoy #strongdm #tcpdump #tenkai #testing #tigera #tilt #vert.x #wireshark #yaml

How to Extend your DevOps Strategy For Success in the Cloud?

DevOps and Cloud computing are joined at the hip, now that fact is well appreciated by the organizations that engaged in SaaS cloud and developed applications in the Cloud. During the COVID crisis period, most of the organizations have started using cloud computing services and implementing a cloud-first strategy to establish their remote operations. Similarly, the extended DevOps strategy will make the development process more agile with automated test cases.

According to the survey in EMEA, IT decision-makers have observed a 129%* improvement in the overall software development process when performing DevOps on the Cloud. This success result was just 81% when practicing only DevOps and 67%* when leveraging Cloud without DevOps. Not only that, but the practice has also made the software predictability better, improve the customer experience as well as speed up software delivery 2.6* times faster.

3 Core Principle to fit DevOps Strategy

If you consider implementing DevOps in concert with the Cloud, then the

below core principle will guide you to utilize the strategy.

  • It is indispensable to follow a continuous process, including all stages from Dev to deploy with the help of auto-provisioning resources of the target platform.
  • The team always keeps an eye on major and minor application changes that can typically appear within a few hours of development to operation. However, the support of unlimited resource provisioning is needed at the stage of deployment.
  • Cloud or hybrid configuration can associate this process, but you must confirm that configuration should support multiple cloud brands like Microsoft, AWS, Google, any public and private cloud models.

Guide to Remold Business with DevOps and Cloud

Companies are now re-inventing themselves to become better at sensing the next big thing their customers need and finding ways with the Cloud based DevOps to get ahead of the competition.

#devops #devops-principles #azure-devops #devops-transformation #good-company #devops-tools #devops-top-story #devops-infrastructure

The Basics of GitOps and Secure Deployment in Kubernetes

Today, I would like to discuss secrets and GitOps in the K8S world.

Some of my friends who are not DevOps/SRE engineers and most developers asked me too many times how to store Secrets/API keys/environment variables within the deployment process.

I hope this article will help to understand with a trivial explanation of the basics of how-to store secrets in the deployment process in the GitOps Way.

First things first

Plan of our journey:

  • a small introduction about GitOps
  • deploy k8s cluster ( EKS )
  • encrypt sensitive data ( SOPS )
  • deploy ArgoCD ( GitOps tool )
  • deploy our application in the GitOps way
  • inference

GitOps and why it is so important

Let’s imagine you have some Git repo and deploy your application into Kubernetes via Jenkins, AKA IaC style (Infrastructure as a code). At first look, this architecture is magnificent. We have stored our code in repo, and we deploy it via any CI\CD tool.

But why is GitOps so major? The answer to that question lies in how Kubernetes API works.

When you apply something into Kubernetes, the API will make you aware that the syntax is acceptable or not. If it’s OK, it will give you the lowdown that your resources are declaratively written. Kubernetes will deploy everything you declared.

But the first problem is that k8s does not guarantee that and the second one is that if somebody deletes/change/update information about any component or resource, you will never know until it is late.

The GitOps way implies that what is in the repo will be in Kubernetes. It literally syncs the states between your repo and Kubernetes. If an unspecified person changes something in Kubernetes ( delete or update config map, for example ), the GitOps tool will sync state and overwrite changes. It works in both ways.

#kubernetes #gitops #security #sops #devops #devops-security #devops-tools #hackernoon-top-story

DevOps Basics: What You Should Know

Once an industry term becomes popular, particularly in technology, it can be difficult to get an accurate definition. Everyone assumes that the basics are common knowledge and moves on. However, if your company has been discussing DevOps, or if you are interested in learning more about it, here are some basics you should know.

What Is DevOps?

DevOps refers to the restructuring of the traditional software application cycle to support Agile development and continuous improvement/continuous delivery. Traditionally, the software was created in large-scale, monolithic bundles. New features and new releases were created in large packages and released in full-scale, infrequent, major deployments.

This structure is no longer effective in the modern business environment. Companies are under increasing pressure to be agile. They must respond rapidly to changes in the business environment to remain competitive. Software development needs to be completely changed as a process so that incremental improvements can be made frequently – ideally, several times per day.

However, changing a development lifecycle completely requires major changes – in people and culture, process, and enabling tooling – to be effective. DevOps was created by the breaking down of cycles between development and operations, combining two separate functions in application development. These changes intend to support agile, secure, continuous improvements, and frequent releases.

#devops #devops adoption #devops benefits #q& #a #devops goals #devops migration #devops questions

Houston  Sipes

Houston Sipes

1603177200

Measuring DevOps Metrics: A How-To Guide

DevOps is supposed to help streamline the process of taking code changes and getting them to production for users to enjoy. But what exactly does it mean for the process to be “streamlined”? One way to answer this is to start measuring metrics.

Why metrics are important to track

Metrics give us a way to make sure our quality stays the same over time because we have numbers and key identifiers to compare against. Without any metrics being measured, you don’t have a way to measure improvements or regressions. You just have to react to them as they come up.

When you know the indicators that show what condition your system is in, it lets you catch issues faster than if you don’t have a steady-state to compare to. This also helps when you get ready for system upgrades. You’ll be able to give more accurate estimates of the number of resources your systems use.

After you’ve recorded some key metrics for a while, you’ll start noticing places you could improve your application or ways you can reallocate resources to where they are needed more. Knowing the normal operating state of your system’s pipeline is crucial and it takes time to set up a monitoring tool.

The main thing is that you decide to watch some metrics to get an idea of what’s going on when you start the deploy process. In the beginning, it might seem hard to figure out what the best metrics for a pipeline are.

Figuring out which metrics are important to you

You can conduct chaos engineering experiments to test different conditions and learn more about which metrics are the most important to your system. You can look at things like, time from build to deploy, number of bugs that get caught in different phases of the pipeline, and build size.

Thinking about what you should measure can be one of the harder parts of the effectiveness of the metrics you choose. When you’re considering metrics, look at what the most important results of your pipeline are.

Do you need your app to get through the process as quickly as possible, regardless of errors? Can you figure out why that sporadic issue keeps stopping the deploy process? What’s blocking you from getting your changes to production with confidence?

That’s how you’re going to find those key metrics quickly. Running experiments and looking at common deploy problems will show you what’s important early on. This is one of the ways you can make sure that your metrics are relevant.

#devops #devops-principles #devops-tools #devops-challenges #devops-adoption-challenges #devops-adoption #continuous-deployment #continuous-integration