DevOps

DevOps – A practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. DevOps aims at establishing a culture and environment where building, testing, and releasing software happens rapidly, frequently, and more reliably. DevOps is the intersection of development (software engineering), operations and quality assurance (QA).

DevOps Defines a “NEW SOFTWARE DEVELOPMENT PARADIGMN”

Demand for people with DevOps skills is on a rapid growth because businesses get better results from DevOps. Organizations using DevOps practices are very high-functioning: They deploy code up to 30 times more frequently than their competitors, and 50 percent fewer of their deployments fail, according to a 2015 State of DevOps report. DevOps promotes a set of processes and methods for thinking about communication and collaboration between development, QA, and IT operations.

Top three skill areas for DevOps staff:

  • Coding or scripting
  • Process re-engineering
  • Communicating and collaborating with others

Devops simplified phases:

  • Release
  • Configuration
  • Orchestration – Continuous integration / delivery
  • Monitoring

DevOps Getting Started

  • Tools Inventory
  • Skills Assessment
  • Task to be accomplished
  • Tool Selection (there are many more tools than can be used!)
  • Assignment of Responsibility
  • DevOps should be language neutral, although modern languages popular today are: Java, Ruby, Python, C++,...

Endless Possibilities: DevOps can create an infinite loop of release and feedback for all your code and development targets.

DevOps lifecycle

  •  Create new code changes
  • Check in code
  • Pull code changes, check latest patches, and build
  • Test (continuous integration server to generate builds & arrange releases)
  • Individual models
  • Integration tests
  • User acceptance tests.
  • Store artifacts and update the build repository (repository for storing artifacts, results & releases)
  • Deploy and release (release automation product to deploy apps)
    • Configure environment
  • Update databases
  • Update apps
  • Push to users
  • Application & Network Performance Monitoring (preventive safeguard)
  • Repeat