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

More Related Content

PDF
Overcoming Organizational Obstacles to DevOps & Continuous Delivery
PPTX
CI/CD Best Practices for Your DevOps Journey
PDF
Patterns and Practices of a Successful DevOps Transformation
PDF
CI/CD (DevOps) 101
PDF
XL Deploy Demo Slides
PPTX
Mastering DevOps with Oracle
PDF
DevOps on Oracle Cloud
PDF
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
Overcoming Organizational Obstacles to DevOps & Continuous Delivery
CI/CD Best Practices for Your DevOps Journey
Patterns and Practices of a Successful DevOps Transformation
CI/CD (DevOps) 101
XL Deploy Demo Slides
Mastering DevOps with Oracle
DevOps on Oracle Cloud
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...

What's hot (20)

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

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

PDF
DevOps Patterns to Enable Success in Microservices
PPTX
Rising Above the Noise: Continuous Integration, Delivery and DevOps
PDF
Using DevOps to Improve Software Quality in the Cloud
PPTX
Devops Basic Concepts, Lifecycle of Devops
PDF
Integrating Automated Testing into DevOps
PDF
DevOps Implementation Roadmap
PPTX
Agile, DevOps & Test
PPTX
A Blueprint for a Successful DevOps Metamorphosis
PPTX
What is dev ops?
PPTX
How to go from waterfall app dev to secure agile development in 2 weeks
PDF
DevOpsing Greenfield - AgileDC2018 - Mills - v1.4 2018.10.15
PPTX
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
PDF
Getting to Walk with DevOps
PDF
1--DevOps---practical-devops_compress.pdf
PDF
Constant Contact SF's Road to CD
PPTX
DevOps introduction helpful present.pptx
PDF
Understanding the Role of DevOps in Modern Software Development.pdf
PPTX
DevOps Overview in my own words
PDF
Impact of CD, Clean Code, ... on Team Performance
PPTX
Adapting DevOps Culture for Software Developement and Distribution
DevOps Patterns to Enable Success in Microservices
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Using DevOps to Improve Software Quality in the Cloud
Devops Basic Concepts, Lifecycle of Devops
Integrating Automated Testing into DevOps
DevOps Implementation Roadmap
Agile, DevOps & Test
A Blueprint for a Successful DevOps Metamorphosis
What is dev ops?
How to go from waterfall app dev to secure agile development in 2 weeks
DevOpsing Greenfield - AgileDC2018 - Mills - v1.4 2018.10.15
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Getting to Walk with DevOps
1--DevOps---practical-devops_compress.pdf
Constant Contact SF's Road to CD
DevOps introduction helpful present.pptx
Understanding the Role of DevOps in Modern Software Development.pdf
DevOps Overview in my own words
Impact of CD, Clean Code, ... on Team Performance
Adapting DevOps Culture for Software Developement and Distribution
Ad

Recently uploaded (20)

PPTX
Relevance Tuning with Genetic Algorithms
PDF
Science is Not Enough SPLC2009 Richard P. Gabriel
PPT
introduction of sql, sql commands(DD,DML,DCL))
PDF
OpenColorIO Virtual Town Hall - August 2025
PDF
WhatsApp Chatbots The Key to Scalable Customer Support.pdf
PPTX
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
PDF
Difference Between Website and Web Application.pdf
PDF
solman-7.0-ehp1-sp21-incident-management
PDF
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
PDF
Streamlining Project Management in Microsoft Project, Planner, and Teams with...
PPTX
Advanced Heap Dump Analysis Techniques Webinar Deck
PDF
Module 1 - Introduction to Generative AI.pdf
PPTX
Presentation - Summer Internship at Samatrix.io_template_2.pptx
PDF
C language slides for c programming book by ANSI
PPTX
Independent Consultants’ Biggest Challenges in ERP Projects – and How Apagen ...
PPTX
Beige and Black Minimalist Project Deck Presentation (1).pptx
PDF
Enscape 3D Crack + With 2025 Activation Key free
PDF
How to Write Automated Test Scripts Using Selenium.pdf
PDF
Coding with GPT-5- What’s New in GPT 5 That Benefits Developers.pdf
PDF
MaterialX Virtual Town Hall - August 2025
Relevance Tuning with Genetic Algorithms
Science is Not Enough SPLC2009 Richard P. Gabriel
introduction of sql, sql commands(DD,DML,DCL))
OpenColorIO Virtual Town Hall - August 2025
WhatsApp Chatbots The Key to Scalable Customer Support.pdf
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
Difference Between Website and Web Application.pdf
solman-7.0-ehp1-sp21-incident-management
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
Streamlining Project Management in Microsoft Project, Planner, and Teams with...
Advanced Heap Dump Analysis Techniques Webinar Deck
Module 1 - Introduction to Generative AI.pdf
Presentation - Summer Internship at Samatrix.io_template_2.pptx
C language slides for c programming book by ANSI
Independent Consultants’ Biggest Challenges in ERP Projects – and How Apagen ...
Beige and Black Minimalist Project Deck Presentation (1).pptx
Enscape 3D Crack + With 2025 Activation Key free
How to Write Automated Test Scripts Using Selenium.pdf
Coding with GPT-5- What’s New in GPT 5 That Benefits Developers.pdf
MaterialX Virtual Town Hall - August 2025

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 •[email protected] •@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 [email protected] @MarcoCorona92