DevOps

DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the processes between software development and IT teams.

https://www.ibm.com/topics/devops

Continuous Integration (CI)

is a software development practice in which code changes are frequently and automatically built, tested, and integrated into a shared repository

The main goal of CI:

  • detect and fix integration problems as early as possible in the development process.
  • teams can ensure that their application is always in a stable state and ready to be tested, deployed, or delivered to users.

CI pipeline in Kubernetes

source                                image
   |                                    ^
   v                                    |
+-----+    +-------+    +------+    +----------+
| git | -> | build | -> | test | -> | registry |
+-----+    +-------+    +------+    +----------+

Continuous Delivery (CD)

is a software development practice in which code changes are automatically built, tested, and prepared for release to production.

The main goal of CD:

  • ensure that software can be reliably and quickly released to production at any time, with minimal risk of defects or failures.
  • code changes are automatically deployed to a staging or production environment, where they undergo further testing and approval before being released to end-users.
  • CD ensures that the software is always in a releasable state and allows teams to deliver new features and improvements to their users in a fast and efficient way.

CD pipeline in Kubernetes

    CI                              Customers
     |                                  ^
     v                                  |
+----------+    +------------+    +------------+
| image    | -> | itegration | -> | production |
| registry |    |  testing   |    | deployment |
+----------+    +------------+    +------------+

Differences between Continuous Deployment and Continuous Delivery

  • In Continuous Delivery, a human decides when to deploy to production.
  • In Continuous Deployment, code is automatically deployed to production after passing all the tests.

DevOps in Azure Cloud

Azure DevOps

is a comprehensive set of tools and services for managing the entire software development lifecycle. It includes features for version control, build and release automation, testing, and collaboration. Azure DevOps supports integration with popular CI/CD tools like Jenkins, Travis CI, and CircleCI.

Azure Pipelines

is a cloud-based service that provides continuous integration and continuous delivery (CI/CD) for your applications. It supports a variety of languages, platforms, and frameworks, including .NET, Java, Python, and Node.js. Azure Pipelines offers both cloud-hosted agents and self-hosted agents for building and deploying applications.

Azure Functions

Azure Functions is a serverless compute service that enables developers to run event-driven code on a scalable and cost-effective platform. Azure Functions can be integrated with Azure Pipelines to enable automated deployments of function apps.

  • Travis CI: A cloud-based CI platform that offers easy integration with GitHub.
  • CircleCI: A cloud-based CI platform that offers fast build times and easy configuration.

DevOps at Private Cloud

Team Cooperation:

  • GitLab: Source Code Management, Discussions, Bug reporting and discussions
  • Jira: Projet management

CI Tools

  • Jenkins: A popular open-source automation server for building, testing, and deploying software.
  • GitLab CI/CD: A CI/CD tool built into the GitLab platform.
  • Tekton: A Kubernetes-native CI/CD framework that provides a set of building blocks for creating custom CI/CD pipelines.

Monitoring and Logging Tools

  • Prometheus: A popular open-source monitoring and alerting toolkit for Kubernetes.
  • Grafana: A popular open-source platform for visualizing and analyzing time-series data.
  • Elastic Stack: A collection of open-source tools for monitoring and logging, including Elasticsearch, Logstash, and Kibana.

References

  • https://codefresh.io/learn/ci-cd/
  • ChatGGPT
Reload?