Your SlideShare is downloading. ×
Continuos integration patterns
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Continuos integration patterns


Published on

Published in: Education, Technology, Sports

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Binary Integrity: Same package should be deployed on each environment. Separate build process should not be deployment on each environment.Consistent Directories: Create a simple, yet well-defined directory structure to optimize software builds and increase cross-project knowledge transfer. Anti-Patterns Putting code, documentation and large files in the same parent directory structure, leading to long-running builds.
  • Private Workspace : Develop software in private workspace to isolate changesRepository: Commit all files to a version control repositoryMainline:
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • WOMM: Works on my machine
  • Categorize: Categorize into unit, integrate, UI, etc. Helps in having targeted builds.Build Threshold: Notify team members of code aberrations such as low code coverage or high cyclomatic complexity. Fail a build when a project rule is violated. Use continuous feedback mechanisms to notify team members.
  • Headless ExecutionPattern Securely interface with multiple machines without typing a command. Anti-Patterns People manually access machines by logging into each of the machines as different users; then they copy files, configure values, and so on. Unified DeploymentPattern Create a single deployment script capable of running on different platforms and target environments. Anti-Patterns Some may use a different deployment script for each target environment or even for a specific machine. Disposable ContainerAutomate the installation and configuration of Web and database containers by decoupling installation and configuration. Anti-Patterns Manually install and configure containers into each target environment. Remote DeploymentUse a centralized machine or cluster to deploy software to multiple target environments. Anti-Patterns Manually applying deployments locally in each target environment. Environment RollbackProvide an automated Single Command rollback of changes after an unsuccessful deployment. Anti-Patterns Manually rolling back application and database changes.
  • Transcript

    • 1. V I K A S G U P T A Continuos Integration Patterns
    • 2. Continuous Integration  Process of building software with every change committed to a project’s version control repository
    • 3. Build Patterns
    • 4. Common Build Patterns  Automated Build  Binary Integrity  Dependency Management  Consistent Directories  Staged Builds
    • 5. Private Build  Perform a private build prior to committing changes the repository
    • 6. Private Build  Perform a private build prior to committing changes the repository
    • 7. Integration Build  Periodically run the integration build  WOMM
    • 8. Continuous Feedback  Send automatic feedback from CI server to development team  Prevent spam
    • 9. Expeditious Fixes  Fix build errors as soon as they come  If the build is failing, don’t update
    • 10. Developer Documentation  Generate documentation from build
    • 11. Build Configuration Patterns
    • 12. Independent build  Separate build from IDE  Build should run from command line
    • 13. Single Command  All build and deployment should be run from single command  Should not need multiple commands to deploy
    • 14. Dedicated Machine  Separate Machine for builds  WOMM
    • 15. Externalize Configuration  Use build-time properties
    • 16. Database
    • 17. Externalize Configuration  Script all database actions  Late and manual migration is painful  Add database configuration scripts to SCM tool
    • 18. Database Sandbox  Create a lightweight version of your database  Use lightweight database on developer machines  Don’t use shared database for development
    • 19. Database Upgrade  Use scripts to upgrade the database in each environment  Don’t manually apply changes in each target environment
    • 20. Testing and Code Quality
    • 21. Database Upgrade  Automated Tests  Categorize Tests  Continuous Inspection  Build threshold
    • 22. Deployment
    • 23. Deployment Patterns  Scripted Deployment  Headless Execution  Unified Deployment  Disposable Container  Environment rollback
    • 24. Thanks