CI/CD and DevOps with Ruby
Make easy your life
Definition
DevOps is a set of practices intended to reduce the
time between committing a change to a system
and the change being placed into normal
production, while ensuring high quality.
I don’t need DevOps there
is no risk with my actual
process • On August 1, 2012, Knight
Capital had an upgrade failure
that ended up costing 440
million US Dollar
• On August 20, 2013 Goldman
Sachs had an upgrade failure
that, potentially, could cost
millions of dollars
DevOps practice
• In DevOps, the “Ops” people must be treat like as first-class
citizens from the point of view of requirements
• The “Dev” people must be more responsible for relevant
incident
• Enforce the deployment process used by all, including dev
and ops
• Use Continuous Delivery
• Use the “infrastructure as code”
DevOps life cycle processes
Requirements Development Build Testing Deployment Execution
• Operations people
as first class
stakeholders
• Get the Ops input
when developing
requirements
• Small Agile team
• Limited
Coordination
• Unit Testing
• Tools for building
• Continuous
Integration
• Automate testing
• User Acceptance
Testing
• Continuous
Delivery
• Deployments
Tools
• Continuous
Monitoring
• Responding to
error conditions
Continous Delivery
Continuous Delivery (CD) is a set of practices and principles in software
engineering aimed at, building, testing, and releasing software, faster
and more frequently. These principles help reduce the cost, time and
risk of delivering changes, and ultimately value, to customers by
allowing for more incremental changes to applications in production.
Build
DeliveryTest
Release
Continuous
Delivery
Continous Integration
Continuous integration (CI) is the practice, in software engineering, of
merging all developer working copies to a shared mainline several
times a day. The main aim of CI is to prevent integration problems.
In XP, CI was intended to be used in combination with automated unit
tests written through the practices of test-driven development. Initially
this was conceived of as running all unit tests in the developer's
local environment and verifying they all passed before committing to
the mainline. This helps avoid one developer's work-in-progress
breaking another developer's copy. If necessary, partially complete
features can be disabled before committing using feature toggles.
CI/CD and DevOps
Accelerated Time to Market: CD lets an organization deliver the
business value inherent in new software releases to customers more quickly.
Building the Right Product: Frequent releases let the application
development teams obtain user feedback more quickly. This lets them work
on only the useful features.
Improved Productivity and Efficiency: Significant time savings
for developers, testers, operations engineers, etc. through automation.
Reliable Releases: The risks associated with a release have significantly
decreased, and the release process has become more reliable.
Improved Product Quality: The number of open bugs and production
incidents has decreased significantly.
Improved Customer Satisfaction: A higher level of customer
satisfaction is achieved.
I need my feature
I need stability
Development Operational
Wallofthemiscommunication
QA
Development OperationsDevOps
Roadmap for DevOps
• Improve the transparency across the company
• Implement the CI and CD practice
• Improve the communication between the Developer and the
Operational
• Define some common rule for improve the communication
• Change the company culture
Connect Jenkins with Git
1. Grant the access to your private Git Repository
2. Install the Git and GitHub Plug-in
3. Grant access to your Jenkins to your Github instance
4. Configure the Hook on Jenkins
Conclusion

RubyDay-Turin13_Nov_15

  • 1.
    CI/CD and DevOpswith Ruby Make easy your life
  • 2.
    Definition DevOps is aset of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality.
  • 3.
    I don’t needDevOps there is no risk with my actual process • On August 1, 2012, Knight Capital had an upgrade failure that ended up costing 440 million US Dollar • On August 20, 2013 Goldman Sachs had an upgrade failure that, potentially, could cost millions of dollars
  • 4.
    DevOps practice • InDevOps, the “Ops” people must be treat like as first-class citizens from the point of view of requirements • The “Dev” people must be more responsible for relevant incident • Enforce the deployment process used by all, including dev and ops • Use Continuous Delivery • Use the “infrastructure as code”
  • 5.
    DevOps life cycleprocesses Requirements Development Build Testing Deployment Execution • Operations people as first class stakeholders • Get the Ops input when developing requirements • Small Agile team • Limited Coordination • Unit Testing • Tools for building • Continuous Integration • Automate testing • User Acceptance Testing • Continuous Delivery • Deployments Tools • Continuous Monitoring • Responding to error conditions
  • 6.
    Continous Delivery Continuous Delivery(CD) is a set of practices and principles in software engineering aimed at, building, testing, and releasing software, faster and more frequently. These principles help reduce the cost, time and risk of delivering changes, and ultimately value, to customers by allowing for more incremental changes to applications in production.
  • 7.
  • 8.
    Continous Integration Continuous integration(CI) is the practice, in software engineering, of merging all developer working copies to a shared mainline several times a day. The main aim of CI is to prevent integration problems. In XP, CI was intended to be used in combination with automated unit tests written through the practices of test-driven development. Initially this was conceived of as running all unit tests in the developer's local environment and verifying they all passed before committing to the mainline. This helps avoid one developer's work-in-progress breaking another developer's copy. If necessary, partially complete features can be disabled before committing using feature toggles.
  • 10.
    CI/CD and DevOps AcceleratedTime to Market: CD lets an organization deliver the business value inherent in new software releases to customers more quickly. Building the Right Product: Frequent releases let the application development teams obtain user feedback more quickly. This lets them work on only the useful features. Improved Productivity and Efficiency: Significant time savings for developers, testers, operations engineers, etc. through automation. Reliable Releases: The risks associated with a release have significantly decreased, and the release process has become more reliable. Improved Product Quality: The number of open bugs and production incidents has decreased significantly. Improved Customer Satisfaction: A higher level of customer satisfaction is achieved.
  • 12.
    I need myfeature I need stability Development Operational Wallofthemiscommunication
  • 13.
  • 14.
    Roadmap for DevOps •Improve the transparency across the company • Implement the CI and CD practice • Improve the communication between the Developer and the Operational • Define some common rule for improve the communication • Change the company culture
  • 15.
    Connect Jenkins withGit 1. Grant the access to your private Git Repository 2. Install the Git and GitHub Plug-in 3. Grant access to your Jenkins to your Github instance 4. Configure the Hook on Jenkins
  • 20.