Day 1 - Introduction

Beginning of 90DaysOfDevOps

1. What is DevOps?

  • The word DevOps literally is a combination of the terms development and operations. It represents a collaborative or shared approach to the tasks performed by a company's software/application development team and IT operations team.

  • It is not a technology, but an approach, a philosophy or a methodology to improve work throughout the software development lifecycle by using various tools.

  • Visualizing a DevOps process:

    • It can be thought of as an infinite loop, as depicted by the picture below:

File:DevSecOps-DevOps.jpg - Wikimedia Commons

2. What is Automation, Scaling, Infrastructure?

  • Automation :

    • Automation is an essential component of DevOps.

    • It's aim is to automate manual and repitive tasks.

    • It involves automating at all levels of a software development lifecycle.

    • Example : Testing if a code works correctly on different machines, compatible with certain software versions or dependencies, running a particular script at specific time intervals on particular machines, etc.

  • Scaling :

    • Implies development of systems that can handle increased load.

    • It enables the organization to deliver a product that can handle a large volume of users.

    • 3 types of scaling:

      • Horizontal scaling : To accomodate growing users, more instances of a machine or service are deployed.

      • Vertical scaling : To accomodate growing users or improve performace, existing instances are enhanced with increasing processing power, RAM, GPU power, etc.

      • Load balancing : A load balancer distributes the incoming traffic across multiple instances of an application/service. This ensures performance improvement, resource utilization and load handling.

  • Infrastructure:

    • Infrastructure is the physical and virtual entity of an organization that is required to run its applications or services.

    • Servers, networks, databases, etc are classified as physical infrastructure while cloud-based servers and networks, cloud-computing platforms etc are examples of virtual infrastructure.

3. Why DevOps is Important, etc?

  • To avoid Developers resort to the "It worked on my machine" response when a problem arises 🫣. Just kidding...

  • To reduce wait times, manual testing and lengthy review processes, the project development can be sped up.

  • It helps organizations to work more collaboratively, as all the involved teams understand exactly what standard they need to maintain for the product; right from start to deployment in production.

  • Enable continuous improvement of the software/product/service.

Happy Learning ;)