What is DevOps?
DevOps is a culture which promotes collaboration between Development and Operations Team to deploy code to production faster in an automated & repeatable way. The word 'DevOps' is a combination of two words 'development' and 'operations.'
DevOps is a software development approach which involves Continuous Development, Continuous Testing, Continuous Integration, Continuous Deployment and Continuous Monitoring of the software throughout its development life cycle. These activities are possible only in DevOps, not Agile or waterfall, and this is why Facebook and other top companies have chosen DevOps as the way forward for their business goals. DevOps is the preferred approach to develop high quality software in shorter development cycles which results in greater customer satisfaction.
Why is DevOps is Needed?
DevOps allows Agile Development Teams to implement Continuous Integration and Continuous Delivery. This helps them to launch products faster into the market.
Other Important reasons are:
DevOps should be used for large distributed applications such as eCommerce sites or applications hosted on a cloud platform.
When not to adopt DevOps?
It should not be used in a mission-critical application like bank, power and other sensitive data sites. Such applications need strict access controls on the production environment, a detailed change management policy, access control policy to the data centers.
DevOps Lifecycle
DevOps is deep integration between development and operations. Understanding DevOps is not possible without knowing DevOps lifecycle.
Here is a brief information about the Continuous DevOps life-cycle:
1. Development
In this DevOps stage the development of software takes place constantly. In this phase, the entire development process is separated into small development cycles. This benefits DevOps team to speed up software development and delivery process.
2. Testing
QA team use tools like Selenium to identify and fix bugs in the new piece of code.
3. Integration
In this stage, new functionality is integrated with the prevailing code, and testing takes place. Continuous development is only possible due to continuous integration and testing.
4. Deployment
In this phase, the deployment process takes place continuously. It is performed in such a manner that any changes made any time in the code, should not affect the functioning of high traffic website.
5. Monitoring
In this phase, operation team will take care of the inappropriate system behavior or bugs which are found in production.
How is DevOps different from Agile?
DevOps Vs Agile
Stakeholders and communication chain a typical IT process.
Who is a DevOps Engineer?
A DevOps Engineer is an IT professional who works with software developers, system operators, and other production IT staff to administer code releases. DevOps should have hard as well as soft skills to communicate and collaborate with development, testing, and operations teams.
DevOps approach needs frequent, incremental changes to code versions, which means frequent deployment and testing regimens. Although DevOps engineers need to code occasionally from scratch, it is important that they should have the basics of software development languages.
A DevOps engineer will work with development team staff to tackle the coding and scripting needed to connect elements of code, like libraries or software development kits.
Roles, Responsibilities, and Skills of a DevOps Engineer
DevOps engineers work full-time. They are responsible for the production and ongoing maintenance of a software application's platform.
Following are some expected Roles, Responsibilities, and Skills that is expected from DevOps engineer:
DevOps is a culture which promotes collaboration between Development and Operations Team to deploy code to production faster in an automated & repeatable way. The word 'DevOps' is a combination of two words 'development' and 'operations.'
DevOps is a software development approach which involves Continuous Development, Continuous Testing, Continuous Integration, Continuous Deployment and Continuous Monitoring of the software throughout its development life cycle. These activities are possible only in DevOps, not Agile or waterfall, and this is why Facebook and other top companies have chosen DevOps as the way forward for their business goals. DevOps is the preferred approach to develop high quality software in shorter development cycles which results in greater customer satisfaction.
- Before DevOps, the development and operation team worked in complete isolation.
- Testing and Deployment were isolated activities done after design-build. Hence they consumed more time than actual build cycles.
- Without using DevOps, team members are spending a large amount of their time in testing, deploying, and designing instead of building the project.
- Manual code deployment leads to human errors in production
- Coding & operation teams have their separate timelines and are not in synch causing further delays.
DevOps allows Agile Development Teams to implement Continuous Integration and Continuous Delivery. This helps them to launch products faster into the market.
Other Important reasons are:
- Predictability: DevOps offers significantly lower failure rate of new releases
- Reproducibility: Version everything so that earlier version can be restored anytime.
- Maintainability: Effortless process of recovery in the event of a new release crashing or disabling the current system.
- Time to market: DevOps reduces the time to market up to 50% through streamlined software delivery. This is particularly the case for digital and mobile applications.
- Greater Quality: DevOps helps the team to provide improved quality of application development as it incorporates infrastructure issues.
- Reduced Risk: DevOps incorporates security aspects in the software delivery lifecycle. It helps in reduction of defects across the lifecycle.
- Resiliency: The Operational state of the software system is more stable, secure, and changes are auditable.
- Cost Efficiency: DevOps offers cost efficiency in the software development process which is always an aspiration of IT companies' management.
- Breaks larger code base into small pieces: DevOps is based on the agile programming method. Therefore, it allows breaking larger code bases into smaller and manageable chunks.
DevOps should be used for large distributed applications such as eCommerce sites or applications hosted on a cloud platform.
When not to adopt DevOps?
It should not be used in a mission-critical application like bank, power and other sensitive data sites. Such applications need strict access controls on the production environment, a detailed change management policy, access control policy to the data centers.
DevOps Lifecycle
DevOps is deep integration between development and operations. Understanding DevOps is not possible without knowing DevOps lifecycle.
Here is a brief information about the Continuous DevOps life-cycle:
1. Development
In this DevOps stage the development of software takes place constantly. In this phase, the entire development process is separated into small development cycles. This benefits DevOps team to speed up software development and delivery process.
2. Testing
QA team use tools like Selenium to identify and fix bugs in the new piece of code.
3. Integration
In this stage, new functionality is integrated with the prevailing code, and testing takes place. Continuous development is only possible due to continuous integration and testing.
4. Deployment
In this phase, the deployment process takes place continuously. It is performed in such a manner that any changes made any time in the code, should not affect the functioning of high traffic website.
5. Monitoring
In this phase, operation team will take care of the inappropriate system behavior or bugs which are found in production.
How is DevOps different from Agile?
DevOps Vs Agile
Stakeholders and communication chain a typical IT process.
Agile addresses gaps in Customer and Developer communications
DevOps addresses gaps in Developer and IT Operations communications
Emphasize breaking down barriers between developers and management. | DevOps is about software deployment and operation teams. |
Addresses gap between customer requirements and development teams. | Addresses the gap between development and Operation team |
Focuses more on functional and non-functional readiness | It focuses operational and business readiness. |
Agile development pertains mainly to the way development is thought out by the company. | DevOps emphases on deploying software in the most reliable and safest ways which aren't necessarily always the fastest. |
Agile development puts a huge emphasis on training all team members to have varieties of similar and equal skills. So that, when something goes wrong, any team member can get assistance from any member in the absence of the team leader. | DevOps, likes to divide and conquer, spreading the skill set between the development and operation teams. It also maintains consistent communication. |
Agile development manages on "sprints. It means that the time table is much shorter (less than a month) and several features are to be produced and released in that period. | DevOps strives for consolidated deadlines and benchmarks with major releases, rather than smaller and more frequent ones. |
A DevOps Engineer is an IT professional who works with software developers, system operators, and other production IT staff to administer code releases. DevOps should have hard as well as soft skills to communicate and collaborate with development, testing, and operations teams.
DevOps approach needs frequent, incremental changes to code versions, which means frequent deployment and testing regimens. Although DevOps engineers need to code occasionally from scratch, it is important that they should have the basics of software development languages.
A DevOps engineer will work with development team staff to tackle the coding and scripting needed to connect elements of code, like libraries or software development kits.
Roles, Responsibilities, and Skills of a DevOps Engineer
DevOps engineers work full-time. They are responsible for the production and ongoing maintenance of a software application's platform.
Following are some expected Roles, Responsibilities, and Skills that is expected from DevOps engineer:
- Able to perform system troubleshooting and problem-solving across platform and application domains.
- Manage project effectively through open, standards-based platforms
- Increase project visibility thought traceability
- Improve quality and reduce development cost with collaboration
- Analyse, design and evaluate automation scripts & systems
- Ensuring critical resolution of system issues by using the best cloud security solutions services
- DevOps engineer should have the soft skill of problem-solver and quick-learner
Reference: https://www.guru99.com/, https://www.edureka.co/
0 comments:
Post a Comment