DevOps

Photo by Growtika on Unsplash

DevOps

1st day #90daysofdevops

DevOps is a methodology that helps both "development" and "operation" teams to work in collaboration and efficiently.
It involves collaboration between developers, IT operations staff, quality assurance (QA) engineers, and other stakeholders to automate and streamline the software delivery process. DevOps aims to reduce the time it takes to go from code committed to code deployed while ensuring reliability, security, and scalability. The principles of DevOps include continuous integration, continuous delivery, automated testing, infrastructure as code, and monitoring and logging.

DevOps toolchain - Wikipedia

  • Why is DevOps needed

  • DevOps is needed because it helps in various ways
    * Continuous delivery
    * Better collaboration between the teams
    * Better efficiency and scalability
    * Lesser manual interventions

    * More security

    * Easy deployment

"DevOps Lifecycle or Infrastructure"

    1. Continuous Development

      1. Continuous Build and Test

      2. Continuous Integration

      3. Continuous Deployment

      4. Continuous Monitoring

      5. Software Release

  • What is Automation?

    Automation is the practice of automating processes in software development and operations.
    Automation is essential for achieving the key goals of DevOps, which are speed, efficiency and quality. Automating tasks saves time, increases productivity and reduces errors.

    Examples of Automation in DevOps are:

    · Continuous integration and continuous delivery (CICD)- Automation is used to automate the build, test, and deployment of CICD Pipelines. Using tools such as Jenkins, and Github to automate the build and testing phase, while tools like Ansible, and Chef are used to automate the deployment phase.

    · Infrastructure as code (IAC): Automation is used to automate the provisioning and management of infrastructure resources. Using tools such as Terraform and CloudFormation.

    · Monitoring and alerting: Automation is used to automate the monitoring and alerting processes to detect and respond to issues quickly. Using tools like Prometheus, Nagios and CloudWatch.

    What is Scaling?

    Scaling refers to the ability to handle an increasing workload or demand for a service or application by adding more resources or infrastructure to the system.

    There are various techniques used to achieve this, they are horizontal scaling, which involves adding more hardware resources, such as servers, to distribute the workload across multiple systems. For example, deploying multiple servers behind a load balancer to handle increased traffic. Vertical scaling involves increasing the capacity of existing hardware by adding more resources, such as memory, CPU, or storage. For example, adding more RAM to a server to handle increased traffic.

    Scaling is an important aspect of DevOps, as it helps ensure that applications and services can handle increased traffic and maintain their performance and availability.

    What is Infrastructure?

    Infrastructure refers to the underlying hardware and software required to develop, test, deploy, and monitor applications. Infrastructure can be considered a foundation of a building. Which provides the base upon which a software application or system is built.

    Infrastructure includes hardware, software, networks, and storage resources that are required for an application or system to operate effectively. Cloud providers such as Amazon Web Services(AWS), Microsoft Azure and Google Cloud Platform(GCP) offer a range of Infrastructure as service(Iaas) resources and services.

    Why is DevOps important?

  • Faster time-to-market >> Increased efficiency & Productivity >> Improved collaboration & communication >> Better quality software