SlideShare una empresa de Scribd logo
1 de 37
www.coveros.com
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 1© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED.
Agile DevOps Transformation At
HUD
AgileDC 2017
www.coveros.com
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 2
www.coveros.com
Agenda
• About Me
• Introduction
• Technology Overview
• What Is DevOps?
• Our Approach To DevOps
• How We Took An Application To Production in 7 Months
• Lessons Learned
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 3
About Me
• Marco Corona
•marco.corona@coveros.com
•@MarcoCorona92
• Graduated from Allegheny College in 2014
• Consultant at Coveros since 2014
• Currently - DevOps (CI/CD) for HUD
• Most Lombardi Trophies in the company
Place your photo here
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 4
Introduction
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 5
• Coveros helps companies improve the agility and security of their software
applications, teams, and enterprise
• Consulting Services
• Agile Transformations
• Secure Agile Development & Testing
• DevOps Implementations
• Agile Enterprise and Team Coaching
• Application Security Assessments
• Agile, DevOps, Security Training
• SecureCI – Open source CI/CD
tool stack
About Coveros
Introduction
Areas of Expertise
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 6
Introduction
Selected Coveros Clients
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 7
• Housing and Urban Development
• “HUD's mission to promote homeownership, support community development, and
increase access to affordable housing, free from discrimination.”
• Informally they want to end homelessness, make homeownership affordable for all, and
strengthen communities.
• Budget is about 45 billion
• ~300 million is set aside for IT expenditures.
• Most HUD assets are used for maintaining housing capital, rental/housing
assistance/community outreach.
HUD
Introduction
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 8
• HUD wanted a pilot program showcasing the Agile/DevOps/CICD across several
legacy mainframe projects (10 to start)
• Has since been bumped to 15 projects
• Mainly Java and Javascript projects
• No Agile/DevOps/CICD in place
• No backlog
• All of HUD was steeped in Waterfall
• Software, management, and support
• Would take weeks for a virtual machine to be provisioned
• Would take years for an application to get into production
• Each application was developed by a different development team
The Project
Introduction
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 9
• CI/CD Team
• Project Manager, Tech Lead, 7 DevOps Engineers
• Control lower environments (dev/test)
• Separate team controls higher environments (staging/production)
• Our scripts are used to create and deploy to all environments
• Use SCRUM approach
• 1 week sprints
• Plan about 80% of work
• Also use Kanban
• Allow dev teams to open JIRA tickets for support
The Delivery Team
Introduction
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 10
•Azure - Cloud
•Azure Cli - Infrastructure as Code
•Git - Version Control System
•Jenkins - CI Server
•Nexus - Artifact Repository
•Chef - Infrastructure as Code
•SonarQube - Code quality and Dashboarding
•Confluence - Wiki
•Jira - Agile Planning and Tracking
•Lots of Java, Mule, OpenAM, and Nodejs
HUD Infrastructure
The Technology Overview
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 11
• Owned By Microsoft
• Second largest cloud
•By an order of magnitude.
•47% vs 10% estimated market share.
•Azure CLI to enable automation
•Started with 2 subscriptions
•External subscription is where non PIVed work is done.
•External has since been decommissioned
•~1000 VMs to support the effort for all 15 existing development projects.
Cloud - Azure
The Technology Overview
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 12
Our Approach
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 13
“DevOps (a portmanteau of "development" and "operations") is a software
development method that stresses communication, collaboration and integration
between software developers and Information Technology (IT) professionals.” --
Wikipedia
DevOps is defined by and encompasses:
• Goals and Values
• Methods
• Practices
Definition of DevOps
What Is DevOps
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 14
• Findings from the 2016 State of DevOps Report:
• High performing organizations:
• Deploy 200 times more frequently
• Lead times are 2,555 times faster
• Recover from failures 24 times faster
• Are 2.2 times more likely to recommend their organization
• Spend 22 percent less time on unplanned work and rework
• Spend 50 percent less time remediating security issues
• Improving entire product lifecycle (planning, quality and security assurance, customer
feedback) speeds up delivery while improving quality, security, and business outcomes
DevOps Business Value and Benefits
What Is DevOps
2016 State of DevOps Report, Puppet Labs
https://puppet.com/resources/whitepaper/2016-state-of-devops-report
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 15
• Repeatable and Reliable Software Delivery
• Automate Everything
• Build Quality In
• Reduce Risk
• Keep everything in Version Control
• Small, Frequent Releases
• Production readiness is always a known state
• Definition of Done
• Collective Ownership - everyone is responsible for the Delivery Process
• Collaboration
• Continuous Communication
• Unified Processes
• Unified Tooling
• Continuous Improvement “Kaizen”
DevOps Goals
What Is DevOps
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 16
• Automate onboarding for dev teams
• Development workstations
• Automate the teams build process
• Use maven/gradle to build through jenkins
• Automate environment creation
• Azure cli and chef
• Automate deploys
• Chef and jenkins
• If you do it more than once, automate it
• Share code
• Azure, Chef, Jenkins, Maven/Gradle
High Level
Our Approach To DevOps
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 17
• Needed to get development teams to buy in
• DevOps is different
• Some viewed us as a blocker
• Some upfront overhead
• Develop a trusting relationship with development team
• Need to make sure they understand we are here to help
• 4 hour developer onboarding class
• Additional training when required/requested
• Teams are remote, can’t rely strictly on email/slack
• Share code
• Azure, Chef, Jenkins, Maven
Keys To Success
Our Approach To DevOps
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 18
• Set up a standardized “Hello World” pipeline
• Idea was for all new projects to use this as a template
• Served as a “best practices” repository
• For build code, jenkins jobs, chef code
• Simple Java project that deployed to Tomcat
• Built using maven and gradle
• Deployed using chef and jenkins
• Ran security scans
• Set up unit test dashboards
• Serves as a good starting point to onboard projects
• Trained the team
Keys To Success
Our Approach To DevOps
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 19
Continuous Integration in a DevOps Culture
Continuous integration is the act of frequently integrating different developer’s code, building and testing each commit to
find any problems quickly.
The goal is that software is always in a working state.
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 20
• Automate their build process locally
• Using maven/gradle
• Replicate build process in Jenkins
• Build and run unit tests on every commit
• Dependent on git branching scheme
• Start collecting unit test metrics and push them to SonarQube
Continuous Integration
Our Approach
© COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 21
• Goal: Software is deployable to production at all times
• Delivery Pipeline
• assess and give feedback on the state of the software throughout the development process
• Automation
• make the deploys repeatable and reliable
• Testing
• remove the risks of deploying software
• Deploying software to production becomes a business decision
Philosophy and Mindset
Continuous Delivery
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 22
• Automate creation of virtual machines
• Was very difficult in the early days because of Azure’s immaturity and our lack of expertise
• Automate software installation
• Work with development team to manually deploy application
• Very important to see the steps
• Allows us to build a greater relationship with the team
• Automate the application deploy
Continuous Delivery
Our Approach
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 23
• Built into our pipeline, so it is not an afterthought
• Application Security
• SonarQube runs static code analysis with each build
• Findbugs, PMD
• Yasca runs with each build
• Open source tool written in PHP
• Easy to create your own rules
• Nightly Fortify runs
• Environment Security
• Nightly OpenSCAP runs
• Mitigate security concerns through chef
• All scans’ results uploaded to sonar
Built-in Security
Our Approach
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 24
• Occurs once the application is deployed
• Must be quick
• Tests the deployment, not the functionality
• Focus on
• Basic signs of life
• Interfaces between systems
• Configuration settings
Smoke Testing
Our Approach
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 25
• Quality Focused
• Test until confident that you have a viable production release candidate
• Types of tests:
• Functional tests
• Regression tests
• Performance testing
• 508 compliance tests
• System integration tests
Acceptance Testing
Our Approach
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 26
Implementation
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 27
• Project with most internal visibility
• Used by all of HUD
• Largest development team we have worked with
• ~20 developers
• Largest application with most dependencies
• Had a very strict timeline
• About 7 months from start to “go live” date
Background
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 28
• Java application with a Javascript frontend
• Deployed to JBoss
• Microsoft SQL Server for database
• Had no build automation
• Were building manually
• Had little to no knowledge of build automation tools
• Had no set architecture
• We had to provide them with an architectural diagram
• Were adverse to DevOps
• They saw us as a blocker
• Needed to get them to buy in to be successful
Getting Started
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 29
• Used Git
• Used feature branching
• Designated “dev-*” should be deployed to temp
• Designated “ci-sprint/dev” should be deployed to dev
• After testing is complete, merge back into master
• Designated “master” should be deployed to test
Branching Strategy
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 30
• Team chose Maven as their build tool but had no knowledge
• Very messy and often incorrect Maven code
• We were unable to build on Jenkins
• Had to go in and refactor their build code without impacting development
• Added a “jenkins” profile
• Versioning the artifacts became an issue
• Format 1.0.${Jenkins Build Number}
• Maven does not like dynamic versioning
• Worked on jenkins, but not locally
• Came up with a workaround with a groovy script
Automating The Build
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 31
• Deployed a front end and a back end
• Deploy to JBoss through chef
• Had a specific JBoss configuration file
• App was developed on windows but deployed to linux
• Local environment was setup manually, led to “works on my machine”
• There were many environment specific properties
• These properties were externalized into a properties file
• This properties file was managed by chef
• Allowed us to change the value based on environment
Automating the Application Deploy
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 32
• We suggested liquibase to manage schema changes
• Liquibase uses XML, YAML, JSON, or SQL- vendor independent
• Rollbacks are handled as refactoring
• Conditional execution
• Can also be used to seed test data
• They had no expertise to liquibase so it took a while to get this in place
• For the first couple of months, we had a database backup in nexus that we
deployed each time
• This made me feel gross
Automating the Database Deploy
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 33
● Each build with “dev-*” pattern gets its own dynamic functional test environment (FT)
● If build is successful, FT does not get destroyed for 12 hours
o Allows teams to debug, manually test, etc.
● Build and FT Creation happen in parallel
● If build fails, the FT gets put into a database for 1 hour
o If the FT is not pulled by a job within an hour it is destroyed
“Dev-Flow” Pipeline - High Level Requirements
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 34
● Branch off master
● Develop code
● Push code to remote branch
● Jenkins picks up the SCM change and builds the code
● Build artifacts are stored in Nexus
● Build artifacts are deployed to dev/test environment through Chef
● Theoretically, tests are run
Standard Pipeline Workflow
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 35
• Deploy every two weeks
• 1 sprint
• Deploy to Staging Wednesday
• Deploy to Production Friday 8pm
• This is a very low risk deploy since our deploy process has been practiced many times
• Also the code has been thoroughly tested in dev, test, and staging
• Do not rebuild code
• Use artifacts that are already in Nexus
• Submit Release Document to Cloud Team
• Old HUD documents were 10-20 pages
• Now they include 1 step
• “That was the least painful go live we’ve ever had”
Promoting Code to HIgh Environments
Loan Review System (LRS)
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 36
• DevOps is a culture
• Can have the best tools and processes in the world, if no one follows them, they’re useless
• Getting buy in from all parties is critical
• Never stop improving
• Keep improving your pipeline and making it more robust
• Automate simple tasks so you can spend time on more complicated tasks
• Technical Debt will happen
• Mitigate when possible
• Track it
Lessons Learned
www.coveros.com
© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 37© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED.
Questions?
Marco Corona
marco.corona@coveros.com
@MarcoCorona92

Más contenido relacionado

La actualidad más candente

Customer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous DeliveryCustomer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous Delivery
XebiaLabs
 
XL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release AutomationXL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release Automation
XebiaLabs
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
Simplilearn
 

La actualidad más candente (20)

Customer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous DeliveryCustomer Presentation: Digital Globe's road to Continuous Delivery
Customer Presentation: Digital Globe's road to Continuous Delivery
 
Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the Enterprise
 
CircleCI and XebiaLabs: A Winning Combination for Seamless, Scalable Continuo...
CircleCI and XebiaLabs: A Winning Combination for Seamless, Scalable Continuo...CircleCI and XebiaLabs: A Winning Combination for Seamless, Scalable Continuo...
CircleCI and XebiaLabs: A Winning Combination for Seamless, Scalable Continuo...
 
DevOps and its impact
DevOps and its impactDevOps and its impact
DevOps and its impact
 
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
 
XL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release AutomationXL Deploy Demo Slides: Agentless Application Release Automation
XL Deploy Demo Slides: Agentless Application Release Automation
 
The State of DevOps Tools: A Primer
The State of DevOps Tools: A PrimerThe State of DevOps Tools: A Primer
The State of DevOps Tools: A Primer
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Devops
DevopsDevops
Devops
 
Devops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMADevops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMA
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Using puppet to leverage DevOps in Large Enterprise Oracle Environments
Using puppet to leverage DevOps in Large Enterprise Oracle Environments Using puppet to leverage DevOps in Large Enterprise Oracle Environments
Using puppet to leverage DevOps in Large Enterprise Oracle Environments
 
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
Webinar on "DevOps LifeCycle and SCM using common Git commands for version co...
 
Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017
 
A DevSecOps Demo: Early, Everywhere, At Scale
A DevSecOps Demo: Early, Everywhere, At ScaleA DevSecOps Demo: Early, Everywhere, At Scale
A DevSecOps Demo: Early, Everywhere, At Scale
 
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 

Similar a Agile DevOps Transformation At HUD (AgileDC 2017)

Experiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD ProjectExperiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD Project
Gene Gotimer
 

Similar a Agile DevOps Transformation At HUD (AgileDC 2017) (20)

Experiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD ProjectExperiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD Project
 
SD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
SD DevOps Meet-up - Exploring Quadrants of DevOps MaturitySD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
SD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
 
DevOpsing Greenfield - AgileDC2018 - Mills - v1.4 2018.10.15
DevOpsing Greenfield - AgileDC2018 - Mills - v1.4 2018.10.15DevOpsing Greenfield - AgileDC2018 - Mills - v1.4 2018.10.15
DevOpsing Greenfield - AgileDC2018 - Mills - v1.4 2018.10.15
 
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, CheaperTesting in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
 
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)Delivering Better Software Faster (Without Breaking Everything)
Delivering Better Software Faster (Without Breaking Everything)
 
DevOps-as-a-Service: Towards Automating the Automation
DevOps-as-a-Service: Towards Automating the AutomationDevOps-as-a-Service: Towards Automating the Automation
DevOps-as-a-Service: Towards Automating the Automation
 
Understanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous DeliveryUnderstanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous Delivery
 
Dev ops
Dev opsDev ops
Dev ops
 
From Sandbox to Production by Vadym Fedorov
From Sandbox to Production by Vadym FedorovFrom Sandbox to Production by Vadym Fedorov
From Sandbox to Production by Vadym Fedorov
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream Agile
 
From the sandbox to production
From the sandbox to productionFrom the sandbox to production
From the sandbox to production
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
CollabNet Houston Workshop Live Enterpise agility_11.12.14
CollabNet Houston Workshop Live Enterpise agility_11.12.14CollabNet Houston Workshop Live Enterpise agility_11.12.14
CollabNet Houston Workshop Live Enterpise agility_11.12.14
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree	Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
 
DevOps Online Training
DevOps Online Training DevOps Online Training
DevOps Online Training
 

Último

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Último (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 

Agile DevOps Transformation At HUD (AgileDC 2017)

  • 1. www.coveros.com © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 1© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. Agile DevOps Transformation At HUD AgileDC 2017
  • 2. www.coveros.com © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 2 www.coveros.com Agenda • About Me • Introduction • Technology Overview • What Is DevOps? • Our Approach To DevOps • How We Took An Application To Production in 7 Months • Lessons Learned
  • 3. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 3 About Me • Marco Corona •marco.corona@coveros.com •@MarcoCorona92 • Graduated from Allegheny College in 2014 • Consultant at Coveros since 2014 • Currently - DevOps (CI/CD) for HUD • Most Lombardi Trophies in the company Place your photo here
  • 4. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 4 Introduction
  • 5. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 5 • Coveros helps companies improve the agility and security of their software applications, teams, and enterprise • Consulting Services • Agile Transformations • Secure Agile Development & Testing • DevOps Implementations • Agile Enterprise and Team Coaching • Application Security Assessments • Agile, DevOps, Security Training • SecureCI – Open source CI/CD tool stack About Coveros Introduction Areas of Expertise
  • 6. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 6 Introduction Selected Coveros Clients
  • 7. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 7 • Housing and Urban Development • “HUD's mission to promote homeownership, support community development, and increase access to affordable housing, free from discrimination.” • Informally they want to end homelessness, make homeownership affordable for all, and strengthen communities. • Budget is about 45 billion • ~300 million is set aside for IT expenditures. • Most HUD assets are used for maintaining housing capital, rental/housing assistance/community outreach. HUD Introduction
  • 8. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 8 • HUD wanted a pilot program showcasing the Agile/DevOps/CICD across several legacy mainframe projects (10 to start) • Has since been bumped to 15 projects • Mainly Java and Javascript projects • No Agile/DevOps/CICD in place • No backlog • All of HUD was steeped in Waterfall • Software, management, and support • Would take weeks for a virtual machine to be provisioned • Would take years for an application to get into production • Each application was developed by a different development team The Project Introduction
  • 9. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 9 • CI/CD Team • Project Manager, Tech Lead, 7 DevOps Engineers • Control lower environments (dev/test) • Separate team controls higher environments (staging/production) • Our scripts are used to create and deploy to all environments • Use SCRUM approach • 1 week sprints • Plan about 80% of work • Also use Kanban • Allow dev teams to open JIRA tickets for support The Delivery Team Introduction
  • 10. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 10 •Azure - Cloud •Azure Cli - Infrastructure as Code •Git - Version Control System •Jenkins - CI Server •Nexus - Artifact Repository •Chef - Infrastructure as Code •SonarQube - Code quality and Dashboarding •Confluence - Wiki •Jira - Agile Planning and Tracking •Lots of Java, Mule, OpenAM, and Nodejs HUD Infrastructure The Technology Overview
  • 11. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 11 • Owned By Microsoft • Second largest cloud •By an order of magnitude. •47% vs 10% estimated market share. •Azure CLI to enable automation •Started with 2 subscriptions •External subscription is where non PIVed work is done. •External has since been decommissioned •~1000 VMs to support the effort for all 15 existing development projects. Cloud - Azure The Technology Overview
  • 12. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 12 Our Approach
  • 13. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 13 “DevOps (a portmanteau of "development" and "operations") is a software development method that stresses communication, collaboration and integration between software developers and Information Technology (IT) professionals.” -- Wikipedia DevOps is defined by and encompasses: • Goals and Values • Methods • Practices Definition of DevOps What Is DevOps
  • 14. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 14 • Findings from the 2016 State of DevOps Report: • High performing organizations: • Deploy 200 times more frequently • Lead times are 2,555 times faster • Recover from failures 24 times faster • Are 2.2 times more likely to recommend their organization • Spend 22 percent less time on unplanned work and rework • Spend 50 percent less time remediating security issues • Improving entire product lifecycle (planning, quality and security assurance, customer feedback) speeds up delivery while improving quality, security, and business outcomes DevOps Business Value and Benefits What Is DevOps 2016 State of DevOps Report, Puppet Labs https://puppet.com/resources/whitepaper/2016-state-of-devops-report
  • 15. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 15 • Repeatable and Reliable Software Delivery • Automate Everything • Build Quality In • Reduce Risk • Keep everything in Version Control • Small, Frequent Releases • Production readiness is always a known state • Definition of Done • Collective Ownership - everyone is responsible for the Delivery Process • Collaboration • Continuous Communication • Unified Processes • Unified Tooling • Continuous Improvement “Kaizen” DevOps Goals What Is DevOps
  • 16. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 16 • Automate onboarding for dev teams • Development workstations • Automate the teams build process • Use maven/gradle to build through jenkins • Automate environment creation • Azure cli and chef • Automate deploys • Chef and jenkins • If you do it more than once, automate it • Share code • Azure, Chef, Jenkins, Maven/Gradle High Level Our Approach To DevOps
  • 17. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 17 • Needed to get development teams to buy in • DevOps is different • Some viewed us as a blocker • Some upfront overhead • Develop a trusting relationship with development team • Need to make sure they understand we are here to help • 4 hour developer onboarding class • Additional training when required/requested • Teams are remote, can’t rely strictly on email/slack • Share code • Azure, Chef, Jenkins, Maven Keys To Success Our Approach To DevOps
  • 18. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 18 • Set up a standardized “Hello World” pipeline • Idea was for all new projects to use this as a template • Served as a “best practices” repository • For build code, jenkins jobs, chef code • Simple Java project that deployed to Tomcat • Built using maven and gradle • Deployed using chef and jenkins • Ran security scans • Set up unit test dashboards • Serves as a good starting point to onboard projects • Trained the team Keys To Success Our Approach To DevOps
  • 19. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 19 Continuous Integration in a DevOps Culture Continuous integration is the act of frequently integrating different developer’s code, building and testing each commit to find any problems quickly. The goal is that software is always in a working state.
  • 20. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 20 • Automate their build process locally • Using maven/gradle • Replicate build process in Jenkins • Build and run unit tests on every commit • Dependent on git branching scheme • Start collecting unit test metrics and push them to SonarQube Continuous Integration Our Approach
  • 21. © COPYRIGHT 2017 COVEROS, INC. ALL RIGHTS RESERVED. 21 • Goal: Software is deployable to production at all times • Delivery Pipeline • assess and give feedback on the state of the software throughout the development process • Automation • make the deploys repeatable and reliable • Testing • remove the risks of deploying software • Deploying software to production becomes a business decision Philosophy and Mindset Continuous Delivery
  • 22. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 22 • Automate creation of virtual machines • Was very difficult in the early days because of Azure’s immaturity and our lack of expertise • Automate software installation • Work with development team to manually deploy application • Very important to see the steps • Allows us to build a greater relationship with the team • Automate the application deploy Continuous Delivery Our Approach
  • 23. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 23 • Built into our pipeline, so it is not an afterthought • Application Security • SonarQube runs static code analysis with each build • Findbugs, PMD • Yasca runs with each build • Open source tool written in PHP • Easy to create your own rules • Nightly Fortify runs • Environment Security • Nightly OpenSCAP runs • Mitigate security concerns through chef • All scans’ results uploaded to sonar Built-in Security Our Approach
  • 24. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 24 • Occurs once the application is deployed • Must be quick • Tests the deployment, not the functionality • Focus on • Basic signs of life • Interfaces between systems • Configuration settings Smoke Testing Our Approach
  • 25. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 25 • Quality Focused • Test until confident that you have a viable production release candidate • Types of tests: • Functional tests • Regression tests • Performance testing • 508 compliance tests • System integration tests Acceptance Testing Our Approach
  • 26. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 26 Implementation
  • 27. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 27 • Project with most internal visibility • Used by all of HUD • Largest development team we have worked with • ~20 developers • Largest application with most dependencies • Had a very strict timeline • About 7 months from start to “go live” date Background Loan Review System (LRS)
  • 28. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 28 • Java application with a Javascript frontend • Deployed to JBoss • Microsoft SQL Server for database • Had no build automation • Were building manually • Had little to no knowledge of build automation tools • Had no set architecture • We had to provide them with an architectural diagram • Were adverse to DevOps • They saw us as a blocker • Needed to get them to buy in to be successful Getting Started Loan Review System (LRS)
  • 29. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 29 • Used Git • Used feature branching • Designated “dev-*” should be deployed to temp • Designated “ci-sprint/dev” should be deployed to dev • After testing is complete, merge back into master • Designated “master” should be deployed to test Branching Strategy Loan Review System (LRS)
  • 30. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 30 • Team chose Maven as their build tool but had no knowledge • Very messy and often incorrect Maven code • We were unable to build on Jenkins • Had to go in and refactor their build code without impacting development • Added a “jenkins” profile • Versioning the artifacts became an issue • Format 1.0.${Jenkins Build Number} • Maven does not like dynamic versioning • Worked on jenkins, but not locally • Came up with a workaround with a groovy script Automating The Build Loan Review System (LRS)
  • 31. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 31 • Deployed a front end and a back end • Deploy to JBoss through chef • Had a specific JBoss configuration file • App was developed on windows but deployed to linux • Local environment was setup manually, led to “works on my machine” • There were many environment specific properties • These properties were externalized into a properties file • This properties file was managed by chef • Allowed us to change the value based on environment Automating the Application Deploy Loan Review System (LRS)
  • 32. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 32 • We suggested liquibase to manage schema changes • Liquibase uses XML, YAML, JSON, or SQL- vendor independent • Rollbacks are handled as refactoring • Conditional execution • Can also be used to seed test data • They had no expertise to liquibase so it took a while to get this in place • For the first couple of months, we had a database backup in nexus that we deployed each time • This made me feel gross Automating the Database Deploy Loan Review System (LRS)
  • 33. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 33 ● Each build with “dev-*” pattern gets its own dynamic functional test environment (FT) ● If build is successful, FT does not get destroyed for 12 hours o Allows teams to debug, manually test, etc. ● Build and FT Creation happen in parallel ● If build fails, the FT gets put into a database for 1 hour o If the FT is not pulled by a job within an hour it is destroyed “Dev-Flow” Pipeline - High Level Requirements Loan Review System (LRS)
  • 34. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 34 ● Branch off master ● Develop code ● Push code to remote branch ● Jenkins picks up the SCM change and builds the code ● Build artifacts are stored in Nexus ● Build artifacts are deployed to dev/test environment through Chef ● Theoretically, tests are run Standard Pipeline Workflow Loan Review System (LRS)
  • 35. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 35 • Deploy every two weeks • 1 sprint • Deploy to Staging Wednesday • Deploy to Production Friday 8pm • This is a very low risk deploy since our deploy process has been practiced many times • Also the code has been thoroughly tested in dev, test, and staging • Do not rebuild code • Use artifacts that are already in Nexus • Submit Release Document to Cloud Team • Old HUD documents were 10-20 pages • Now they include 1 step • “That was the least painful go live we’ve ever had” Promoting Code to HIgh Environments Loan Review System (LRS)
  • 36. © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 36 • DevOps is a culture • Can have the best tools and processes in the world, if no one follows them, they’re useless • Getting buy in from all parties is critical • Never stop improving • Keep improving your pipeline and making it more robust • Automate simple tasks so you can spend time on more complicated tasks • Technical Debt will happen • Mitigate when possible • Track it Lessons Learned
  • 37. www.coveros.com © COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. 37© COPYRIGHT 2016 COVEROS, INC. ALL RIGHTS RESERVED. Questions? Marco Corona marco.corona@coveros.com @MarcoCorona92