Software Development is not as simple as people think.There are many things come together when developing a Software. As everybody knows after Planning and development, the application needs to go under the testing phase.And then we can predict the time required for the project to get into production.

Here are few problems that we face right from development to delivery

  1. Collaborative Planning
  2. Coding & operation teams have their separate timelines and are not in sync causing further delays.
  3. Manual code deployment which leads to human errors in production.
  4. If we want to go back to a stable release then it is difficult and time consuming.
  5. Testing and Deployment are isolated activities which are done after design-build. Hence they consumed more time than actual build cycles.
  6. The feature being developed works fine on the developers system and doesn’t work on client system. And lots of time is wasted fixing issues on client system.
  7. Team members are spending a large amount of their time in testing, deploying, and designing instead of building the project.So there comes a need for DevOps

    umang_india
    What is DevOps?

    DevOps is software development strategy, a methodology that bridge the gap between development and operations. Most of the Companies follow Agile SDLC model for software development. Agile Methods break the Software product into small incremental builds.These builds are provided in iterations. Each iteration typically lasts from about one to three weeks.For Every Iteration the Software has to be delivered and in working Condition.

    Devops follows the agile culture. And a culture which promotes collaboration between Development and Operations which helps to increases an organization’s speed to deliver applications and services.

    Its major goal is to shorten the system delivery life cycles. This culture increases the organization’s speed to deliver the applications and services.

    How Devops Works?

    DevOps is deep integration between development and operations. Understanding DevOps is not possible without knowing DevOps lifecycle.

    A lot of stages help in making DevOps what it is today.

    devops_1_umang
    The entire DevOps cycle is a continuous process – continuous development, testing, integration, deployment and monitoring.

    Let us understand this with an example.

    Facebook is a widely used social media application all over the world. For it to work the way it does, there is huge team behind the scenes continually developing, testing and releasing features to it. The developer plans and builds the code for the application which undergoes testing using test suites, if test suites are successful the code is sent to production.

    In the production environment, the monitoring tool keeps a log of bugs and feature requests by users.

    For instance, Facebook has added new features like Facebook Stories, and few others which were not a part of the Facebook application before.

    There was also a bug which crept on to the application which switched the feed to a horizontal view and everyone went bonkers. This is now fixed, but, how do you think Developers get to know about these bugs?

    It is continuous monitoring that keeps a check on these bugs and feature requests. These feedback’s are then sent to developers who make the changes and again push the code in the Devops Lifecycle.

    Therefore, from the above example you can see that work is done continuously on the application, and the development never stops!

    The process of adding new features and fixing bugs continuously to improve the application, in the shortest time possible is called Devops Lifecycle.

    Here is a brief information about the Continuous DevOps life-cycle:

    devops_2_umang
    Continuous Planning & Development

    The developer plans the development process using planning tools and builds the code and uploads it on to a version control system like Git which contains the source code. Even after the final release, there are feedback’s which the developer needs to incorporate in the application. Therefore, this continuous process of improving the application by the Developer is called Continuous Development.

    Continuous Testing

    After the code is uploaded on to the source code platform, it undergoes testing with the help of test codes. Each time the source code undergoes changes, the code also undergoes testing in a continuous fashion before passing on to production.

    Continuous Integration

    When one stage in the DevOps lifecycle is completed, the application code has to move on to the next one. This happens with the help of integration tools. The developmental practice of continuously harmonizing the code from one stage to the next with the help of tools is called continuous integration.

    Continuous Deployment

    Each addition of feature in the application, might need some modifications in the application environment. This is called Configuration Management. To achieve this, we use several deployment tools. The process of continuously changing the application environment based on addition of features is called Continuous Deployment.

    Continuous Monitoring

    Even after planning and testing, bugs might find their way to production. To keep a track of these bugs or any other inappropriate system behavior or even keeping a track on feature requests, the monitoring tool continuously keeps a check as and when the application undergoes updates.

    Behind every successful stage, there are a lot of tools that help in smooth working of DevOps. Here are a few ones that are used in different stages:
    devops_3_umang

    Source : https://xebialabs.com/periodic-table-of-devops-tools/

     What is the future of DevOps?

    They are lots of Change likely to happens in the DevOps world some most prominent are:

    • Organizations are shifting in their needs to weeks and months instead of years.
    • We will see soon that DevOps engineers have more access and control of the end user than any other person in the enterprise.
    • DevOps is becoming a valued skill for IT people. For example, a survey conducted by Linux hiring found that 25% of respondent’s job seeker is DevOps expertise.
    • DevOps and continuous delivery are here to stay. Therefore, companies need to change as they have no choice but to evolve. However, the mainstreaming the notion of DevOps will take 5 to 10 years.

References :