![Page 1: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/1.jpg)
Improve the Development Process with DevOps Practices
• Vadym Fedorov
![Page 2: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/2.jpg)
Who am I?
• Vadym Fedorov < [email protected] >• Role: Solutions Architect• Company: SoftServe• Specialization: Development of the
Enterprise Applications in the IT operations management segment.• Technologies and tools: .NET, Python…
![Page 3: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/3.jpg)
Non-stop Battle: Angry Dev vs Ops
DEV OPS
Release
Complaints
![Page 4: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/4.jpg)
Pandora’s Box• There is no single responsible person who would
manage the product from definition of business requirements to the product release.
• The Dev and Ops teams have different success metrics.
• Lack of communication between the Dev and Ops teams.
• There is a difference between development and target environment configurations.
• Slow and long delivery processes with unpredictable delivery date.
![Page 5: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/5.jpg)
Image taken from https://www.scriptrock.com/blog/devops-whats-hype-about/
![Page 6: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/6.jpg)
Evaluate the Current State
• The project maturity model
![Page 7: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/7.jpg)
Key Indicator • Project Portability, i.e. an ability to move
the project between different environments and teams.
• Project Continuity ensures that a project can be successfully completed even if a team changes.
• Time-to-market and cost requires control over your project development, since these are critical elements that directly affect revenue and your position in the market. So make sure you are using effective ways to optimize this business driver.
![Page 8: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/8.jpg)
The Project Maturity Model
![Page 9: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/9.jpg)
Ad-hoc
• Deployment or development documentation is often outdated if present at all
• Developers manage 3rd-party dependencies manually
• No standardized development workplace configuration
• Deployment on staging and production environment is fulfilled manually
• Lack of knowledge sharing• Low repeatability of the deployment process• Launching a new team requires significant efforts
![Page 10: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/10.jpg)
Defined
• Developers keep project documentation and related configuration up-to-date
• Dependencies are managed with a native package platform (PIP, NPM, NuGet, etc.)
• Documents describe development environment configuration or prebuild virtual machine with a configured development environment
• Team may use a Build and Continuous Integration System, however, the changes in the configuration are applied manually
• Knowledge transfer from the development team to the operational team, and between development teams is performed verbally or via documentation
• Repeatability of the deployment process is satisfactory• Launching a new team requires significant effort
![Page 11: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/11.jpg)
Repeatable
• Regular validation of the deployment and development documentation
• Developers work on an up to date development environment• Environment configuration and deployment procedures are
documented in the form of a code deployed to source control• It is possible to track changes: who and when introduced any
changes, what version was deployed, on whichdevelopers’ workstation, and other staging and production environment variables
• Team uses virtualization• High repeatability of the deployment process• Launching a new team does not require significant effort
![Page 12: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/12.jpg)
Managed
• Managed is the highest level of the project state when development and production environments are aligned with configuration as much as possible: The number of manual steps on
environment deployment is as low as possible
![Page 13: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/13.jpg)
What can be changed to improve?
![Page 14: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/14.jpg)
Organizational Changes
• There should be one, and only one, manager responsible for a product or feature development from A to Z: from the stage of requirement gathering to the release date.
• The development and operational teams need to share common success indicators focused on the delivery result.
• The operations team needs to define requirements for monitoring, log management and disaster recovery, as well as help the development team design a solution that complies with these requirements.
![Page 15: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/15.jpg)
Teams Collaboration Types
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
![Page 16: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/16.jpg)
Teams Collaboration Types
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
![Page 17: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/17.jpg)
Teams Collaboration Types
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
![Page 18: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/18.jpg)
Development Process Changes
• The development team should use a development environment that’s as close to the target environment as possible.• To apply an “infrastructure as code”
approach.• To automate quality control and
acceptance testing
![Page 19: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/19.jpg)
“Infrastructure as Code” Approach
Virtual Machine
ProvisionerScripts
Vagrant
Code
Virtual Machine
ProvisionerScripts
Production
Code
Same OS, same configuration and same versions
Ops or DevOps
Dev
Deploy
![Page 20: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/20.jpg)
Delivery Pipeline
“Build Stage”• Execute Unit Test• Code Analysis• Build deployment package
Automated Acceptance
Testing
Manual testing• Key showcases• Exploratory testing
Release
Commit Deploy
Unit & Integration TestsFunctional Tests
Production Monitoring
![Page 21: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/21.jpg)
Tools That are Good to Know
• Vagrant: https://docs.vagrantup.com/v2/• Configuration Management and Provisioners:
Chef: https://www.chef.io/chef/ Puppet: https://puppetlabs.com/ Ansible: http://www.ansible.com/home
• Log management and Monitoring Newrelic: http://newrelic.com/ Loggly: https://www.loggly.com/ Logstash: https://www.elastic.co/products/logstash
• Testing: JMeter: http://jmeter.apache.org/ Selenium: http://www.seleniumhq.org/
![Page 22: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/22.jpg)
Benefits
• Avoidance of the human factor• Improvement of the Quality and Repeatability• Saved Time and Reduced Risks
![Page 23: Improve the Development Process with DevOps Practices by Fedorov Vadim](https://reader035.vdocuments.us/reader035/viewer/2022062905/586f786f1a28ab10258b6bc5/html5/thumbnails/23.jpg)
Thank you!
US OFFICES EUROPE OFFICESAustin, TXFort Myers, FLLehi, UTNewport Beach, CAWaltham, MA
BulgariaGermanyNetherlandsPolandRussia
SwedenUkraineUnited Kingdom
www.softserveinc.com