SlideShare a Scribd company logo
Our Journey
Modernizing the SDLC
Nicholas Carpenter
07/13/2019
1. Who is HMS Eliza
2. Why Modernize
3. SDLC Toolset Selection
4. The Transition
1. SCM and Branching
2. Dependency Management Strategy
3. Scalable CI System
5. Challenges
6. Demo, Next Steps, and Roadmap your
own project
7. Questions
2
3
Quick Facts
• Mission: Keep healthcare costs down
• Customers
• Payers
• Providers
• PBMs
• Main business lines
• Coordination of Benefits (CoB)
• Payment Integrity (PI)
• Pop Health
• Care Management
• Healthcare Communications
• Publicly traded (HMSY)
• $600M Revenue
• 2500 people
4
Located in Danvers, MA
Acquired by HMS April 2017
200 People & $60M Revenue
Healthcare Communications at
Scale
Print & All Digital Channels
All Workloads in AWS
Why Modernize
5
Why
Technical Debt
 Binaries in source control
 Eccentric build workflows
 Branching Strategy and enforced builds
 Lack of versioning
 Painful dependency tree
 Lack of code ownership
Desired:
 Fast feedback loops
 Platform for KPIs (UT, SA, IT, PT, CC, etc)
 Well defined path to production
 Standardized build processes
 Lower TCO of CI/SCM
 Enforced code reviews
 Dependency Management Redux – Nuget
 Namespace Issues and hard transitive reqs
 Versioned artifacts 6
SDLC Toolset
Selection
7
SCM
Git Technology because it’s the industry
leading standard
Which vendor?
 Choice came down to:
 28 points
 28 points
8
Continuous
Integration
Which vendor/product?
Which platforms are required
Choice came down to:
 37 points
 30 points 9
Artifact
Repository
Choices
 Which vendor/product?
File Share
10
Toolset
Selection
11
The Transition
12
SCM: From
TFS
13
 TFS Leave Behind Strategy
 Leave history behind
 Read-Only Mode
 Lock parts of TFS projects as they are moved to Git
 Process in place for backporting while transitioning to Git
 One branch in TFS could become multiple Git repositories.
SCM: From
TFS
14
 Migrate from VS 2015 to 2017
 Migrate to the Nuget Package Reference Format
 Including version ranges for middle of the stack
 Lock files for top of the stack
 Migrate to
 Break up solutions into ‘N’ Git repositories
 Change Namespaces
 Create shared AssemblyInfo file for versioning multiple
CSPROJs.
 Start at the bottom of the stack, and work your way up
SCM: Git
Branching
Strategy
15
Gitflow Workflow
Diagram
SCM: Code
Reviews and
Quality
Gates
16
 Require CI signoff
 Require code review
 CODEOWNERS
 Require up to date branches
 Restrict who can push/merge
Dependency
Management
: C#
17
Diagram
Nuget Dependency Management
Jenkins:
Architecture
18
Key Requirements
 Scalable
 Pipelines to define our CI/CD processes
Design
 Automation first approach
 Technologies we would like to use:
 Jenkins Master - Stateless
 Jenkins development environment can be
stood up in as little as 30 minutes.
Jenkins:
Architecture
19
Diagram
CI:
Architecture
20
CI:
Architecture
21
Jenkins:
Architecture
22
Jenkins:
Architecture
23
 Key AWS Components
 Jenkins Infrastructure jobs
 Kickstarting AWS ASG
 ECS instance warmup
 Weekly restart of master
 Jenkins Library:
 Templated pipeline code for alike repositories:
 Nuget
 Web application
 Generic C# solution - Zip
 ClickOnce application
 Python CloudFormation resource
Jenkins:
Jenkinsfile
24
Nuget Repository
25
Jenkins
Architecture:
Takeaways
Uses the Amazon Elastic Container
Service Jenkins plugin
Jenkins Stateless
 All builds push artifacts to Artifactory
 Build numbers are not used
 Jenkins master is configured entirely with
init.groovy.d scripts, no manual
configuration.
Development environment dynamically
changes build job configurations to not
impact production.
 IE – do not build branches automatically
Challenges
26
Challenges
Transitioning from TFSVC to Git and
branching strategy
Versioning
150+ Git repositories
 Naming Conventions
 Repository Dividing lines
 Git Repository Settings
Unit Tests vs Integration Tests
Code Ownership
Manual Testing
Jenkins Windows Images
Scale down ECS Instances
27
Demo, Next Steps
and Roadmap
28
Demo
Developer use case:
 Create a branch
 Make a modification
 Open a PR
 Merge the PR
 See the develop build push to Artifactory
 See the branches automatically get built
 Quality Gates today:
 Dependency version enforcement
 MSBuild Warnings
 Unit Tests and Code Coverage
 Branching Strategy
29
Next Steps
Metric collection and radiating
Creating a Capability Maturity Model
(CMM) and start to quantify and track
KPIs
SonarQube Static Analysis
Static Application Security Testing
(SAST)
Visual Studio 2019 and Windows Server
2019 containers
Integration Testing – Automated Test
Environment Provisioning
30
Roadmap
 What is the technical debt in your code base? What anti-
patterns are active? Design for them.
 Binaries in SCM
 Versioning
 Etc.
 Company’s objectives?
 KPI’s to start measuring?
 Build speed
 Etc.
 Determine your toolset – SCM, CI and Artifact management
 SCM infrastructure online
 Determine how you will manage 100’s of repositories
 Naming convention, permissions, CI integration, Branch
Protections
 CI Infrastructure online
 Manage Stateful-ness and Stateless-ness
 Isolated per build containers – no leakage
 Artifact management
 Dependency management design and tight CI integration
 Configuration management design and tight Artifact management
integration – properties, searching etc.
 Organizational alignment
 Buy in to new SDLC processes
 KPI measurement for success
 Transition team in place for full transition to new environment
31
Questions?
32
Enterprising healthcareEnterprising healthcare

More Related Content

What's hot

System developement methods
System developement methodsSystem developement methods
System developement methods
sachinsreekumar
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)
NavneetKumar383
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
Mubashir Ali
 
Veeru sdlc ppt
Veeru sdlc pptVeeru sdlc ppt
Veeru sdlc ppt
sarala paladugu
 
SDLC
SDLCSDLC
SDLC or Software Development Life Cycle
SDLC or Software Development Life CycleSDLC or Software Development Life Cycle
SDLC or Software Development Life Cycle
Jyothi Vbs
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Angelin R
 
comparison of various sdlc models
comparison of various sdlc modelscomparison of various sdlc models
comparison of various sdlc models
sadaf ateeq
 
Software development life cycles (sdlc)
Software development life cycles (sdlc)Software development life cycles (sdlc)
Software development life cycles (sdlc)
Yuriy Kravchenko
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
Dr. Ranjan Kumar Mishra
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Compare Infobase Limited
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
Ivano Malavolta
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
HASEEB MUGHAL
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 
Software Development Life Cycle.
Software Development Life Cycle.Software Development Life Cycle.
Software Development Life Cycle.
mailrenuka
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
Atamjitsingh92
 
Automate Your Software Development Life Cycle Using the Right Tools
Automate Your Software Development Life Cycle Using the Right ToolsAutomate Your Software Development Life Cycle Using the Right Tools
Automate Your Software Development Life Cycle Using the Right Tools
Info-Tech Research Group
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
Compare Infobase Limited
 
Software development life cycle by chitta
Software development life cycle by chittaSoftware development life cycle by chitta
Software development life cycle by chitta
Chittaranjan Das
 
CSC426 - SDLC Models
CSC426 - SDLC ModelsCSC426 - SDLC Models
CSC426 - SDLC Models
Bro Shola Ajayi
 

What's hot (20)

System developement methods
System developement methodsSystem developement methods
System developement methods
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 
Veeru sdlc ppt
Veeru sdlc pptVeeru sdlc ppt
Veeru sdlc ppt
 
SDLC
SDLCSDLC
SDLC
 
SDLC or Software Development Life Cycle
SDLC or Software Development Life CycleSDLC or Software Development Life Cycle
SDLC or Software Development Life Cycle
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
comparison of various sdlc models
comparison of various sdlc modelscomparison of various sdlc models
comparison of various sdlc models
 
Software development life cycles (sdlc)
Software development life cycles (sdlc)Software development life cycles (sdlc)
Software development life cycles (sdlc)
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software Development Life Cycle.
Software Development Life Cycle.Software Development Life Cycle.
Software Development Life Cycle.
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
 
Automate Your Software Development Life Cycle Using the Right Tools
Automate Your Software Development Life Cycle Using the Right ToolsAutomate Your Software Development Life Cycle Using the Right Tools
Automate Your Software Development Life Cycle Using the Right Tools
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
Software development life cycle by chitta
Software development life cycle by chittaSoftware development life cycle by chitta
Software development life cycle by chitta
 
CSC426 - SDLC Models
CSC426 - SDLC ModelsCSC426 - SDLC Models
CSC426 - SDLC Models
 

Similar to SDLC Modernization

16370 cics project opening and project update f
16370  cics project opening and project update f16370  cics project opening and project update f
16370 cics project opening and project update f
nick_garrod
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the Cloud
Ben Saunders
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
Jim (张建军) Zhang
 
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
MuleSoft
 
Highway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup BerlinHighway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup Berlin
Christian Deger
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
DevOps.com
 
The Need for Speed
The Need for SpeedThe Need for Speed
The Need for Speed
Capgemini
 
Size as an Advantage: How Big Enterprises Can Move Fast
Size as an Advantage: How Big Enterprises Can Move FastSize as an Advantage: How Big Enterprises Can Move Fast
Size as an Advantage: How Big Enterprises Can Move Fast
Chetan Desai
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
Davide Veronese
 
Microservices in der Cloud - Software Architecture Summit Berlin 2016
Microservices in der Cloud - Software Architecture Summit Berlin 2016Microservices in der Cloud - Software Architecture Summit Berlin 2016
Microservices in der Cloud - Software Architecture Summit Berlin 2016
Christian Deger
 
Highway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichHighway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup Munich
Christian Deger
 
IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6
Strongback Consulting
 
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
AgileNetwork
 
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei KavaleuGECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon_Org Team
 
Thinking "Cloud-Native"
Thinking "Cloud-Native" Thinking "Cloud-Native"
Thinking "Cloud-Native"
CodeOps Technologies LLP
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
ghodgkinson
 
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
DevOps for Enterprise Systems
 
Φάννυ Κοφινά, 7th Digital Banking Forum
Φάννυ Κοφινά, 7th Digital Banking ForumΦάννυ Κοφινά, 7th Digital Banking Forum
Φάννυ Κοφινά, 7th Digital Banking Forum
Starttech Ventures
 
The Science of database CICD - UKOUG Breakthrough
The Science of database CICD - UKOUG BreakthroughThe Science of database CICD - UKOUG Breakthrough
The Science of database CICD - UKOUG Breakthrough
Jasmin Fluri
 
Transform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOpsTransform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOps
Amazon Web Services
 

Similar to SDLC Modernization (20)

16370 cics project opening and project update f
16370  cics project opening and project update f16370  cics project opening and project update f
16370 cics project opening and project update f
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the Cloud
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
 
Highway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup BerlinHighway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup Berlin
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
The Need for Speed
The Need for SpeedThe Need for Speed
The Need for Speed
 
Size as an Advantage: How Big Enterprises Can Move Fast
Size as an Advantage: How Big Enterprises Can Move FastSize as an Advantage: How Big Enterprises Can Move Fast
Size as an Advantage: How Big Enterprises Can Move Fast
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
 
Microservices in der Cloud - Software Architecture Summit Berlin 2016
Microservices in der Cloud - Software Architecture Summit Berlin 2016Microservices in der Cloud - Software Architecture Summit Berlin 2016
Microservices in der Cloud - Software Architecture Summit Berlin 2016
 
Highway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichHighway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup Munich
 
IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6
 
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
ANIn Chennai April 2024 |Agile Engineering: Modernizing Legacy Systems by Ana...
 
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei KavaleuGECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
 
Thinking "Cloud-Native"
Thinking "Cloud-Native" Thinking "Cloud-Native"
Thinking "Cloud-Native"
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
 
Φάννυ Κοφινά, 7th Digital Banking Forum
Φάννυ Κοφινά, 7th Digital Banking ForumΦάννυ Κοφινά, 7th Digital Banking Forum
Φάννυ Κοφινά, 7th Digital Banking Forum
 
The Science of database CICD - UKOUG Breakthrough
The Science of database CICD - UKOUG BreakthroughThe Science of database CICD - UKOUG Breakthrough
The Science of database CICD - UKOUG Breakthrough
 
Transform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOpsTransform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOps
 

Recently uploaded

An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
AjmalKhan50578
 
Data Control Language.pptx Data Control Language.pptx
Data Control Language.pptx Data Control Language.pptxData Control Language.pptx Data Control Language.pptx
Data Control Language.pptx Data Control Language.pptx
ramrag33
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
Prakhyath Rai
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Curve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods RegressionCurve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods Regression
Nada Hikmah
 
cnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classicationcnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classication
SakkaravarthiShanmug
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
LAXMAREDDY22
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Material for memory and display system h
Material for memory and display system hMaterial for memory and display system h
Material for memory and display system h
gowrishankartb2005
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
Madan Karki
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
bijceesjournal
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
shadow0702a
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 

Recently uploaded (20)

An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
 
Data Control Language.pptx Data Control Language.pptx
Data Control Language.pptx Data Control Language.pptxData Control Language.pptx Data Control Language.pptx
Data Control Language.pptx Data Control Language.pptx
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Curve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods RegressionCurve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods Regression
 
cnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classicationcnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classication
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Material for memory and display system h
Material for memory and display system hMaterial for memory and display system h
Material for memory and display system h
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 

SDLC Modernization

  • 1. Our Journey Modernizing the SDLC Nicholas Carpenter 07/13/2019
  • 2. 1. Who is HMS Eliza 2. Why Modernize 3. SDLC Toolset Selection 4. The Transition 1. SCM and Branching 2. Dependency Management Strategy 3. Scalable CI System 5. Challenges 6. Demo, Next Steps, and Roadmap your own project 7. Questions 2
  • 3. 3 Quick Facts • Mission: Keep healthcare costs down • Customers • Payers • Providers • PBMs • Main business lines • Coordination of Benefits (CoB) • Payment Integrity (PI) • Pop Health • Care Management • Healthcare Communications • Publicly traded (HMSY) • $600M Revenue • 2500 people
  • 4. 4 Located in Danvers, MA Acquired by HMS April 2017 200 People & $60M Revenue Healthcare Communications at Scale Print & All Digital Channels All Workloads in AWS
  • 6. Why Technical Debt  Binaries in source control  Eccentric build workflows  Branching Strategy and enforced builds  Lack of versioning  Painful dependency tree  Lack of code ownership Desired:  Fast feedback loops  Platform for KPIs (UT, SA, IT, PT, CC, etc)  Well defined path to production  Standardized build processes  Lower TCO of CI/SCM  Enforced code reviews  Dependency Management Redux – Nuget  Namespace Issues and hard transitive reqs  Versioned artifacts 6
  • 8. SCM Git Technology because it’s the industry leading standard Which vendor?  Choice came down to:  28 points  28 points 8
  • 9. Continuous Integration Which vendor/product? Which platforms are required Choice came down to:  37 points  30 points 9
  • 13. SCM: From TFS 13  TFS Leave Behind Strategy  Leave history behind  Read-Only Mode  Lock parts of TFS projects as they are moved to Git  Process in place for backporting while transitioning to Git  One branch in TFS could become multiple Git repositories.
  • 14. SCM: From TFS 14  Migrate from VS 2015 to 2017  Migrate to the Nuget Package Reference Format  Including version ranges for middle of the stack  Lock files for top of the stack  Migrate to  Break up solutions into ‘N’ Git repositories  Change Namespaces  Create shared AssemblyInfo file for versioning multiple CSPROJs.  Start at the bottom of the stack, and work your way up
  • 16. SCM: Code Reviews and Quality Gates 16  Require CI signoff  Require code review  CODEOWNERS  Require up to date branches  Restrict who can push/merge
  • 18. Jenkins: Architecture 18 Key Requirements  Scalable  Pipelines to define our CI/CD processes Design  Automation first approach  Technologies we would like to use:  Jenkins Master - Stateless  Jenkins development environment can be stood up in as little as 30 minutes.
  • 23. Jenkins: Architecture 23  Key AWS Components  Jenkins Infrastructure jobs  Kickstarting AWS ASG  ECS instance warmup  Weekly restart of master  Jenkins Library:  Templated pipeline code for alike repositories:  Nuget  Web application  Generic C# solution - Zip  ClickOnce application  Python CloudFormation resource
  • 25. 25 Jenkins Architecture: Takeaways Uses the Amazon Elastic Container Service Jenkins plugin Jenkins Stateless  All builds push artifacts to Artifactory  Build numbers are not used  Jenkins master is configured entirely with init.groovy.d scripts, no manual configuration. Development environment dynamically changes build job configurations to not impact production.  IE – do not build branches automatically
  • 27. Challenges Transitioning from TFSVC to Git and branching strategy Versioning 150+ Git repositories  Naming Conventions  Repository Dividing lines  Git Repository Settings Unit Tests vs Integration Tests Code Ownership Manual Testing Jenkins Windows Images Scale down ECS Instances 27
  • 28. Demo, Next Steps and Roadmap 28
  • 29. Demo Developer use case:  Create a branch  Make a modification  Open a PR  Merge the PR  See the develop build push to Artifactory  See the branches automatically get built  Quality Gates today:  Dependency version enforcement  MSBuild Warnings  Unit Tests and Code Coverage  Branching Strategy 29
  • 30. Next Steps Metric collection and radiating Creating a Capability Maturity Model (CMM) and start to quantify and track KPIs SonarQube Static Analysis Static Application Security Testing (SAST) Visual Studio 2019 and Windows Server 2019 containers Integration Testing – Automated Test Environment Provisioning 30
  • 31. Roadmap  What is the technical debt in your code base? What anti- patterns are active? Design for them.  Binaries in SCM  Versioning  Etc.  Company’s objectives?  KPI’s to start measuring?  Build speed  Etc.  Determine your toolset – SCM, CI and Artifact management  SCM infrastructure online  Determine how you will manage 100’s of repositories  Naming convention, permissions, CI integration, Branch Protections  CI Infrastructure online  Manage Stateful-ness and Stateless-ness  Isolated per build containers – no leakage  Artifact management  Dependency management design and tight CI integration  Configuration management design and tight Artifact management integration – properties, searching etc.  Organizational alignment  Buy in to new SDLC processes  KPI measurement for success  Transition team in place for full transition to new environment 31

Editor's Notes

  1. Debt Partial use of Dependency Management Build Workflows were stitched together with custom PowerShell scripts Branches existed, but were not well thought out and developers were not using them consistently. Not all branches were built, only when entering a main line branch No versioning across most of code base Code Ownership Everyone owned everything = No one owned anything Desired Measurable KPIS Unit Tests Static Analysis Integration Tests Performance Tests Code Coverage Standardized Build Processes -Standard pipelines for Widgets – Nuget, Products, MSI, ClickOnce, eventual Java Maven, Python PIP packages etc
  2. Evaluated – Cloud and Self Hosted Created use cases - IE: Encryption - at Rest and Transit (0-2 points) Performed a POC with Azure DevOps and Github Enterprise
  3. - Azure DevOps Cost less per agent – due to agent images managed by MSFT Found our counterparts in Irving, TX still use private agents for private software installs and build speed – negates the agent savings Found our counterparts in Irving, TX also were getting updates to agent images they didn’t want and was causing build breaks Jenkins All agents are managed by us – but we can reuse a lot of what MSFT has done and Jenkins has done for build agents – so we are not designing from the ground up. Can keep the CI environment entirely private Can promote to internal artifact repositories.
  4. Most amount of integrations – Dependency Management Python C# Java
  5. Take a single TFS Team Project and split it into multiple Git repositories High level design is needed for standardizing CI System integration How to version software What file is updated by developers for Semantic Versioning?
  6. Important Points Build system determines which repositories can be used from Artifact binary manager system based on branch Control of external packages was desired How would this design fit into a large company This is only one dependency type, Nuget. Build artifacts for products generate deployable pieces like – MSI, ClickOnce, Zip go to different repositories Enable use of development dependencies when on development branches
  7. Non-Secrets Linux/Windows Cluster ARN Dev Stack Master Cluster ARN ECR repository path – for each image Artifactory URL Windows/Linux ASG Names/ARN SECRETS Put in Secret Manager, read via role Master container Can run as a specific role for access Used by the WithAws Jenkins pipeline steps
  8. Linux Cluster for linux containers Windows for Windows CloudWatch Alarms for scale up and down During Scale down – we have a problem What is the usual use case for containers? Fleet. Build jobs are not fleets, cant easily stop them
  9. Need to start draining an EC2 instance and then kill after all builds are done.
  10. Short Jenkinsfile Pro/Cons: Pro Standard build template All projects of type X build the same DRY principle Onboarding Cons Developer freedom – Justify why you need it to be different, better project management
  11. First Bullet - Spins up a container in one of many ECS clusters based on Build queue and node label.
  12. With transitioning from an unstructured branching strategy to a structured branching strategy, folks needed to learn why they use specific branch names Versioning was new, so something folks did not have to think about before. With 150+ git repositories now Naming Conventions Repository dividing lines – what pieces of code belong in one repository versus a separate repository Standardizing the look and feel of common repositories. For example Nuget ones Enforced Code Reviews Git Repository Settings – Overcome with custom CI integration – REST API for Github Manual Testing A lot of manual Integration/System testing. Next on our maturity list Jenkins Windows images Size Installing VS 2017 on the CLI https://github.com/microsoft/azure-pipelines-image-generation
  13. What issues do we think we could see: Open PR from wrong
  14. What issues do we think we could see: Open PR from wrong
  15. What issues do we think we could see: Open PR from wrong