Day 1 - #90Days of DevOps challenge

Day 1 - #90Days of DevOps challenge

·

4 min read

Table of contents

DevOps Fundamentals

#Devops #TrainwithShubham #90DaysOfDevOps - Challenge Day 1

What :-

DevOps is a methodology. DevOps is a term that refers to the integration of software development (Dev) and IT operations (Ops) in order to deliver applications and services faster and more reliably. DevOps involves practices, tools, automation, collaboration, feedback, and improvement. DevOps also has a cultural and human aspect that bridges the gap between Dev and Ops teams.

Aims:-

DevOps aims to increase the quality, stability,security and velocity of software delivery.

Why:-

Before 2007, Most software was developed and updated using waterfall methodology, a linear approach to large-scale development projects. Software development teams, quality assurance (QA), security and operations teams and tester teams spend months or even years between starting of planing up to production “go live.”

So this type of concept came . It is the Collaboration of the Development and Operations Teams so that they can share their tasks, reduce their efforts and automate their tasks. It is used for building monitoring, testing, building and deploying the code through feedback.

It added new processes and tools that extend the continuous iteration and automation of CI/CD to the rest of the software delivery lifecycle. And it implemented close collaboration between development and operations at every step in the process.

It uses specific tools and practices to automate the daily tasks of a developer. It uses Continuous Integration and Continuous Deployment (CI/CD) concepts.

It promotes a collaborative work culture between the teams and helps the product and eventually the business to grow.

DevOps and the application lifecycle:-

The DevOps lifecycle (sometimes called the continuous delivery pipeline, when portrayed in a linear fashion) is a series of iterative, automated development processes, or workflows, executed within a larger, automated and iterative development lifecycle designed to optimize the rapid delivery of high-quality software.

Planning .

Development.

Integration (or build, or continuous Integration and continuous delivery (CI/CD).

Deployment (usually called continuous deployment).

Operations.

Learning (sometimes called continuous feedback).

Continuous testing.

Security.

Compliance.

DevOps tools:

The demands of DevOps and DevOps culture put a premium on tooling that supports asynchronous collaboration, seamlessly integrates DevOps workflows, and automates the entire DevOps lifecycle as much as possible. Categories of DevOps tools include:

  • Project management tools - tools that enable teams to build a backlog of user stories (requirements) that form coding projects, break them down into smaller tasks and track the tasks through to completion. Many support agile project management practices such, as Scrum, Lean and Kanban, that developers bring to DevOps. Popular open source options include GitHub Issues and Jira.

  • Collaborative source code repositories - version-controlled coding environments that that let multiple developers to work on the same code base. Code repositories should integrate with CI/CD, testing and security tools, so that when code is committed to the repository it can automatically move to the next step. Open source code repositories include GiHub and GitLab.

  • CI/CD pipelines - tools that automate code checkout, building, testing and deployment. Jenkins is the most popular open source tool in this category; many previously open-source alternatives, such as CircleCI, are now available in commercial versions only. When it comes to continuous deployment (CD) tools, Spinnaker straddles between application and infrastructure as code layers. ArgoCD is another popular open source choice for Kubernetes native CI/CD.

  • Test automation frameworks - these include software tools, libraries and best practices for automating unit, contract, functional, performance, usability, penetration and security tests. The best of these tools support multiple languages; some use artificial intelligence (AI) to automatically reconfigure tests in response to code changes. The expanse of test tools and frameworks is far and wide! Popular open source test automation frameworks include Selenium, Appium, Katalon, Robot Framework, and Serenity (formerly known as Thucydides).

  • Configuration management (infrastructure as code) tools - these enable DevOps engineers to configure and provision fully versioned and fully documented infrastructure by executing a script. Open source options include Ansible (Red Hat), Chef, Puppet and Terraform. Kubernetes performs the same function for containerized applications (see 'DevOps and cloud-native development,' below).

  • Monitoring tools - these help DevOps teams identify and resolve system issues; they also gather and analyze data in real time to reveal how code changes impact application performance. Open source monitoring tools include Datadog, Nagios, Prometheus and Splunk.

  • Continuous feedback tools - tools that gather feedback from users, either through heatmapping (recording users' actions on screen), surveys, or self-service issue ticketing.

DevOps goals and benefits:-

  • 1. Ensures effective collaboration between teams Effective collaboration in any process relies on shared ownership.

  • 2. Creates scalable infrastructure platforms The primary focus of DevOps is to create a sustainable infrastructure for applications that make them highly scalable.

  • 3. Builds on-demand release capabilities .

  • 4. Provides faster feedback