Getting Started with DevOps

Getting Started with DevOps

Here is my First Blog about DevOps...!! Lets Go Start the Journey and Enjoy Learning.......!!

Table of contents

No heading

No headings in the article.

Shubham Londhe #TrainWithShubham #Devops #90DaysOfDevops #1/90 day/

Table of Content

  • What is DevOps?

  • Why DevOps is Important in Software Development?

  • What are Automation Scaling and Infrastructure?

  • Scalability

  • Infrastructure

  • Some DevOps Toos

    #day 1/90

first, we will understand why we are here ...... :)?

Very Straight forward answer, To learn DevOps what is DevOps?

why DevOps is Important in Software Development?

How DevOps will help us?

Which tools do we have in the market?

1 . What is DevOps

  • " let's split the Word (Dev + Ops)

    "Development" and "Operations" is a combination of practices and tools designed to increase an organization's ability to deliver applications and services faster than traditional software development processes ".

    it’s all about empowering teams—enabling organizations
    to work collaboratively to develop and deliver secure
    software faster and more efficiently.

    Traditional Definition:-

    DevOps is a Methodology and process. or the collaboration between Development-Dev and IT Operations-Ops to make software Production and Deployment in an automated & repeatable way. DevOps helps increase the organization's speed to deliver software applications and services.

  • Productivity Without DevOps Practices in Place, development teams have to wait for the operations teams to create the right production environment.

  • Testing and Deployment were isolated activities done after the design-build. Hence they consumed more time than actual build cycles.

  • Without using DevOps, team members spend a large amount of their time testing, deploying, and designing instead of building the project.

  • Manual code deployment leads to human errors in production.

    1. Why DevOps is Important in Software Development?- -

      • Reduced time to market

        one of the key reasons why DevOps is important for your business is that your software can be delivered faster thanks to streamlined processes, proper automation, systematic release planning, and more.

        faster time to market means you have a chance to outrun your competitors.

      • Faster Innovation

        you can innovate faster than your competitors thanks to faster product delivery to the market. the DevOps culture also allows the team to offer ground-breaking ideas more freely and share their thoughts in continuous communication.

      • Increased efficiency in development

        Software engineers do not need to spend time on tasks that are perfectly automated in DevOps. The amount of manual work is minimum. Parallel workflows, acceleration tools, scalable infrastructure, continuous integration servers, and much more contribute to efficient development and reliable deployment.

      • Higher reliability

        The development, deployment, and other processes become more predictable and error-free. with shorter development cycles ensured by DevOps and continuous testing, the team can spot any inconsistencies or defects in the software promptly. Thanks to good collaboration and exchange of experience, it's easy to quickly resolve them. it's also incredibly easy to roll back a deployment at any time.

      • customer satisfaction

        Another huge reason why DevOps is important is that the customer-centric approach, regular feedback, faster delivery to the market, and constant improvement all contribute to the most satisfying results in software development.

    2. What are Automation, Scaling and Infrastructure?

      DevOps automation is the practice of automating repetitive and manual DevOps tasks to be carried out without any human interaction.

      Automation can be applied throughout the DevOps lifecycle, spanning:

      • Design and development

      • software deployment and release

      • Monitoring the goal of DevOps automation is to streamline the DevOps lifecycle by reducing manual workload. This automation results in several key improvements:

      • Eliminates the need for large teams

      • Drastically reduces human errors

      • Increases team productivity

      • creates a fast-moving DevOps lifecycle.

image credit : https://www.bmc.com/blogs/automation-in-devops/

image - reference:- https://www.bmc.com/blogs/automation-in-devops/

  1. Scalability

    Automated processes are much easier to scale than manual processes. Scale automation processes simply by creating additional processes to meet the increased requirements.

    In a manual environment, any scaling is severely constrained by the availability of team members.

    However, in an automated environment, scaling is only constrained by the availability of underlying software and hardware, which is not an issue in cloud-based environments where resources are automatically scaled depending on the workload.

  2. Infrastructure

    DevOps helps in the automation of infrastructure. This enables the operations team and the developers to manage, facilitate, and monitor the resources automatically. This saves the hassle and effort of having to do everything manually, which can slow down the process and cause an organization to function inefficiently.

    • There is something called Infrastructure as code(IaC) is the technique that can help in the management, provisioning, and configuration of an IT environment with the help of code in manual setup, which will incorporate the use of operating systems and hardware devices. the feature of automation enables the DevOps teams to quickly develop the cloud setting that will be required to test the application and run it as a trial. Some known IaC tools are Ansible, Terraform, CloudFormation etc.
  3. DevOps tools:-

    • Version ControlTool:- Git(GitLab, GitHub, Bitbucket)

    • Continuous Monitoring:- Splunk, ELK Stack, Nagios, Sensu, NewRelic.

    • Continuous Testing:- Zephyr, TestComplete, SoapUI, Selenium, TestNG, JUnit/NUnit.

    • Continuous Integration and Continuous Delivery (CI/CD) Tool:- Jenkins, Bamboo, Hudson etc.

    • Configuration Management Tool: Chef, Puppet.

    • Continuous Deployment: Puppet, Chef, Ansible, SaltStack etc.