?DevOps ! Technical Agility Dominic Delmolino
?????11 March 2015 1
?????????
?What is DevOps?
????DevOps is the term for the practical technical, cultural and organizational techniques used to facilitate the practices of Agile Software Development
from Requirements thru Release.
??????11 March 2015
2
??
?Agile Development = Rapid Feedback Cycles
?How quickly can I test this so I can get feedback on what I need to do next?
???????11 March 2015
3
??
?What is Agile Development?
• Value individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Repsonding to change over following a plan
• •
• •
• •
Highest priority is to satisfy customer through early and continuous delivery of valuable software
Welcome changing requirements;
harness change for improvement
Deliver working software frequently, from weeks to months, preferring the shortest possible timescale
At regular intervals, teams reflect on how to become more effective, then tunes and adjusts accordingly
Working software is the primary measure of progress
Simplicity – the art of maximizing the amount of work not done – is essential
Constantly measure whether or not software is delivering value, correct and adjust
as often as necessary
??????11 March 2015
4
??
?What does DevOps look like?
??On Demand, Preconfigured Development and Testing Environments
??Business
CONSISTENT VIRTUAL ENVIRONMENTS ARE MORE RELIABLE
Agile Development Best Practices
Test Environments On Demand (Automated Subsets of Baseline)
Continuous Automated Continuous
Stable And Useful
RELEASE
?Integration
Testing Delivery
?????Knowledge Maintained!
Change Added.
Reduce Time from Idea to Solution & Verification
???Customer
??????????Same Configuration
??“Consistent and Repeatable”
?11 March 2015
5
??
?DevOps Capabilities for Agile Development
???cloud based resources
workstation and server configuration management
platform and tool repository
directory and notification services
automated testing and continuous integration
distributed version control
online code review services
authorization and access control
agile lifecycle management
collaboration support
????????????11 March 2015
6
??
?DevOps Workflow
???????????1
• Amazon Web Services
• VMWare 4
• JIRA / Greenhopper • Rally
• VersionOne
• Confluence • XWiki
• Maven / Gradle
• JUnit / DBUnit • Selenium / Geb / Spock
• Amazon Web Services • VMWare
• Docker
• Review Board • Barkeep
• Confluence
• XWiki
7
• Git (GitLab, Git Enterprise) • Subversion
• Jenkins / Hudson • Bamboo
• Maven / Gradle • JUnit / DBUnit
• Selenium / Geb / Spock • Git (GitLab, Git Enterprise) • Subversion
• Amazon Web Services
• VMWare
• Nexus (project tools) • Artifactory (project tools)
??????• DeveloperOnboarding
• IssuedPhysicalorVirtualWorkstation • ImagesbuiltbyOperations&Security
• Developerwritestestsandcode
• GetsstoriesfromALM,Addscontenttowiki
• Afterreview,Developercommitsandpushescodeto central source code repository for project
• Developerupdatestasksandstories
????????????2
• Active Directory 5 • Atlassian Crowd
• OpenLDAP / OpenDJ
8
??????????• ProjectadminaddsDevelopertoProject
• AuthorizesaccesstoProjectrepositories,wiki
spaces and build server
• Developerbuildscodeandtestsinprivatelocal environment (on workstation or in cloud)
• Localenvironmentmatchesproduction environment as much as possible
• Chef
• Puppet
• Email Notification
??????????• BuildServerpollsforandretrievescodechanges • Buildsexecutables/warfilesanddisplaysstatus • Notifiesdevelopersoffailuresandneedtorevert • Performsbuildsandtestsinsuccession
• Examplebuildflow:
• Development build (check for coding errors)
• Integration build (may include mock services)
• Functional test build (creation of cloud test VMs)
• Security test build (i.e. Foritfy scans)
• Deployment build (results in deployment artifact in
binary repository, i.e., Nexus / Artifactory)
?3
• Nexus (project tools) • Artifactory (project tools) • Chef
• Puppet
• Git (GitLab, Git Enterprise) • Subversion
6
????????????• DeveloperdownloadsProject-specific workstation configuration from binary repository
• Developerrunsworkstationconfiguration
• Auto-installstoolsandsourcecoderepo
• Developerpostscodeforonlinereviewand commentary by peers and supervisors
????????11 March 2015
7
??
?Application to Survey Channels and Surveys
???????
?Deployment
• IncrementalDeploymentandVerification
• Deploy“ComingSoon”staticpage • Deploy“Countdownclock”
• Deploy“Registertogetnotified”
• Deploy“Loginandcreateaprofile” • Deploy“Surveycapability1”
• Deploy“Surveycapability2”
• Processactsasa“pipecleaner”toclearpotentialissues
??????11 March 2015
9
??
?Testing
• ValidateSurveySequencingandBranching
• Automatetestsforallquestionsandanswers
• Automatebranchtesting
• Automateaccessibiltytesting
• Testshighlightchangestosurveythatbreaksequences or make answer options inaccesible
• Testwitheverychange,maintaingreensurvey
??????11 March 2015
10
??
?Production Scenarios
• Scalability
Auto-scale using image deployments
• Zero-downtimeFixes
Spin up v2, re-direct traffic, spin down v1
• A/BTesting&Sampling Multiple versions
• GeoIPtrafficsampling
Like A/B but with directed routing
??????11 March 2015
11
??
?Overall Benefits to the DevOps Approach
• Rapid,ConsistentDeployments
• ContinuousTesting,ValidationandVerification
• ScalableDeployments
• Zero-downtimefixes
• Traffic-routedtesting
• Morewaystoverifyandmeasuresurveyoptions
??????11 March 2015
12
??
?Thank You
Dominic Delmolino
email: [email protected] office: 703.889.3800
???????

Categories: News