SlideShare ist ein Scribd-Unternehmen logo
1 von 33
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

Weitere ähnliche Inhalte

Was ist angesagt?

System developement methods
System developement methodsSystem developement methods
System developement methodssachinsreekumar
 
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 - SPMMubashir Ali
 
SDLC or Software Development Life Cycle
SDLC or Software Development Life CycleSDLC or Software Development Life Cycle
SDLC or Software Development Life CycleJyothi 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 modelssadaf 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 PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESSIvano 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 CycleSlideshare
 
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 ToolsInfo-Tech Research Group
 
Software development life cycle by chitta
Software development life cycle by chittaSoftware development life cycle by chitta
Software development life cycle by chittaChittaranjan Das
 

Was ist angesagt? (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
 

Ähnlich wie 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 fnick_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 CloudBen 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 MicroservicesJim (张建军) 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 BerlinChristian 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 AWSDevOps.com
 
The Need for Speed
The Need for SpeedThe Need for Speed
The Need for SpeedCapgemini
 
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 FastChetan 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 architectureDavide 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 2016Christian Deger
 
Highway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichHighway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichChristian 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 v6Strongback 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 KavaleuGECon_Org Team
 
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 Toolsghodgkinson
 
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 ForumStarttech 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 BreakthroughJasmin 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 DevOpsAmazon Web Services
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 

Kürzlich hochgeladen (20)

Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 

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

Hinweis der Redaktion

  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