What is DevOps? What are the emergence benefits of DevOps?



DevOps is more than just Automation. This is an approach that is changing the attitude of Development and Operations. DevOps is the core of Development & Operations working together well.


There are a lot of misconceptions about the areas of DevOps

If we ask senior executives whether they are doing DevOps? lot of them say I don’t know what DevOps is. But if we ask them are they are trying to faster, better collaboration and communication between the Development and Operations then the answer will be yes.

Let’s understand what is DevOps?

DevOps is an abbreviation of Development and Operations and it is a methodology that unified Software Development and Software Operation. The core of DevOps is strongly fabricated automation and monitoring at all steps of Software construction from INTEGRATION, TESTING, 

RELEASING, DEPLOYMENT & INFRASTRUCTURE MANAGEMENT.
  •          DevOps insures software Development Cycle
  •          Increase Deployment Frequency
  •          Increase Dependability and Releases while
  •          Ensuring close alignment with Business Objective

It's more than just a tool or process change it also requires an Organizational and Cultural shift. This change is especially difficult because of the conflicting nature of development roles.
  •          Operations seek organizational stability
  •          Developers seek change         
  •          Testers seek production

Getting these groups to work parallel is a serious dispute in an organization DevOps implementation.

Overall practice of DevOps with any architecture style

The micro-services are protectorate specifically following the standard for building constantly deployed system. Because the size of each service is small it allows the architecture of the individual service to appear through constant refactoring. Thus reducing the need for a big upfront design and allows for releasing the software quickly and continuously.

There are Technical Benefits:
  • Continuous software delivery
  • Less complexity to manage
  • Faster resolution of problems
There are Cultural Benefits:
  •  More productive teams
  •  Higher employee engagement
  •  Better professional development options

And there are Business Benefits:
  •       Faster delivery of features 
  •       More stable operating environment
  •       Improved communication and collaboration
  •      More time to innovate (rather than fix/maintain)

Other Benefits:
  •         Speed of deployments
  •         Improved processes
  •         Lower costs
  •         Better collaboration between Teams
  •         Continuous feedback

Then, What’s the difference between Agile and DevOps



Both are rapid development methodologies but Agile bridges the gap between Customer and Developer Communication whereas DevOps bridges the gap between Developer and IT Operations Communication. Agile helps in simplifying and accelerate complex projects whereas DevOps handle end to end engineering processes.

Adopting DevOps



It’s an approach to how to get an enhancement request a bug fix and a new feature request or an entire product out to production rapidly in small batches. So you can get new functionality or new enhancement in the hands of customers. So they can use it and provide you feedback as rapidly as possible. And based on that feedback you can improve product delivery, the efficiency of the environment and the process by which you are delivering.

The main role of the DevOps is to make things more efficient, 

reduce overhead, and reduce rework.

Most organization suffers through overhead and it might take practitioners time to reduce the burden.

Let’s understand where do, these requirements or requests basically come from. It may come from a Customer, a line of business, or from an incident ticket while finishing in the production, and based on that you are going to make a change in your software. Based on the request you require making changes in the product.

All these requirements go let's say to the PMO(Project Management Officer) and concerned department. They decide and prioritize the task make other decision like build Vs Buy and allocate resources to get that done.

Then you might involve some requirement engineers, designers, architects, Analysts and many other resources as per the need. Who designs and defines the architecture of this capability or feature. Later it goes to the Developers, Testers, and engineers from the product development team, infrastructure team all of them work in the same concert in collaboration to deliver this new capability or functionality of the product.

What DevOps Does? It reduces the bottleneck of these efforts, and help to transition the fact from one stage or environment to the next. Code goes from the development environment to the QA environment and after being built it needs to be deployed.

Let’s look for all the artifacts and the task where all these team members are working to deliver this functionality. Artifacts are what they create or modify these are changed states as they move from left to right to the change life cycle. If you have adopted an Agile framework there will be a series of cycle or iterations in a single pipeline.

These artifacts when change state requirement gets transform to Design, Design get transform to code, Code gets transform to binaries, Test scripts get transform to Test Results, Test results get transform to defects and so on. The task which people do to carry out these transitions and this transformation are artifacts.

There are two kinds of artifacts

The actual core artifact which you are developing, and these people are responsible for these are the artifacts which bring the business value. Like your code, design document, test scripts, binaries, actual deployable.

There are supporting artifacts these are things like requirement documents may be the core in beginning but later become a supportive artifact. All the documentation which needs to create is a supportive artifact, like status reports. In order to make your team sufficient one way is to reduce the time people are spending on creating these supportive artifacts or updating them rather than real work.

Well, what is the real work? It means if you have a developer or team, you are paying them to write code not to update the spreadsheet with status information. So why not have a tool which captures the status of progress and let the Developer do their actual work.

That will make your Developers efficient and reduce their extra overhead.

Another reason for overhead is Over Production. They may do not need the thing right now but they are working if in case it required in future.

Rework is another issue, many organization spends time in finding out issues in integration which was found much later because integrations testing is done so much later in the development life cycle. Why not do it little earlier so you can find those integration issues sooner and reduce that rework.

Practitioners having to wait for infrastructure team to provisioning an environment, that can be very easily addressed by giving the developers self-service.QA practitioners having to wait to test environment to be available because the test environments are being shared. Once the environment it ready they might be waiting for test data to be refresh because there is no automation there.

There are cases where customers have challenges with integration testing because all the different services and applications they need to be working with are not available when they need them to be available. Simple virtualization or stubbing of those applications can help you with that.

There are several capabilities which make up them like
  •         Continuous delivery        
  •         Infrastructure escort
  •         Continuous business planning
  •         Collaborated Development

Which one applies to you is the most important part for you to understand and figure out. So you can focus on what matters. Like producing software’s, producing business value for your organization.

Comments

Popular Posts