Conclusion
Rajesh Kumar RajeshKumarIN RajeshKumarIN RajeshKumarIN DevOps@RajeshKumar.XYZ
Usually we don t have Centralized Source Management Tools Centralized Build Server for all the Products Common Build Script across the organization Configuration Management Tools such puppet or salt Standard Release and Deployment Process Automated Testing Just after build Code Review Setup Static Code Analysis Test Coverage Centralized Dashboard for all CI/CD reporting and Notification SCM Infrastructure Monitoring Setup
Goals Faster Development Process across the Solutions Reduces Costs and Burdon on People and Process Reduces Engineers options making SCM support easier Enforces Uniform Corporate Process Standard Version control and Builds Fast, Reliable and ready to QA/Deploy Build operation Streamline Release and Deployment Process Simplified Branching, Tagging, and Directory organization Strong Tools integration between CM, Build, QA and Deployment, Feedback etc
What We want Continuous Integration is for immediate feedback Automated Testing based on Continuous Integration Continuous Delivery based on Automated Testing Automated Test Deployments Useful Feedback on time Measurement!!! & Monitoring!!!
Unify the software delivery process across the product line SDLC Reduce duplication of effort Improve consistency Embrace change Remove known sources of error
DevOps is a Philosophy Agile & Lean applied to the whole software delivery chain, not just developers Driven by efficiency and consistencies Building applications Building Environments Configuring Applications and environments Optimizing software Delivery to End to End Dev Build Unit test Dev Deployment QA Deploy to Test Envs Functional and Perf test Ops Deploy to Staging Deploy to Production
DevOps is no definition It certainly isn't a person No strict rules No strict tools It's not even new If you aren't doing it already...... you are doing it wrong
Benefits Developer productivity Smoother workflow within organization Upgradability & Scalability Better utilization of CM team for framework build & enhancements Backups & High Availability Monitoring & Notification
Business Benefits Developer productivity Smoother workflow within organization Supports many Development Models Open source, Profitability and Growth SCM team is focusing on developing CM technology and framework instead of support.
Non-Functional Benefits Security Backups High Availability Upgradability Faster Development Monitoring and Notification Scale
Vision and Directions of DevOps Must have Centralized build server across products Standard approach for validating builds through automated testing Centralized static code analysis setup for all products Significant automated test coverage across products Nice to have (Standardization) Centralized common source management tools such as Git Common build script across the organization Standard release and deployment process across products Centralized monitoring setup for CM infrastructure, builds and notifications Centralized server to manage, upgrades and Install SCM, builds and QA machines
DevOps / CI / CD
What is Continuous Integration (CI)? Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. - Martin Fowler
What is Continuous Delivery (CD)? Continuous Delivery is the continual delivery of code to an environment once the developer feels the code is ready to ship. The idea is to deliver code to a user base - QA (UAT or Staging) or customers (Production environment), for continual review and inspection.
Benefits from CI / CD? Fast, reliable, and ready to QA/Deploy/Build operation Seamless integration between CM, build, QA, deployment, security, and continuous feedback. Reduces risks and defects and Improves the quality of the deliverables Improves development team agility and velocity Make Every build is for potential release Eliminate manual bottlenecks and automate whatever possible Have automated tests you can trust and Enforces best practices Avoid wait time, handoff conflicts and human errors Know results earlier! Fix bugs faster! More stable builds! Supports transition to Cloud based deployment
Why Feedback? Monitoring is for Feedback of Code Quality poor average good best Builds pass fail Test Quality System Availability Performance of Tools and Products SCM Infrastructure Availability It save time of. Developer Engineer Manager Director CEO
Continuous Delivery Workflow
Delivery Vs Deployment
Challenges for Large Organization Inhouse
Solution DevOps