SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
1
1
DevOps for the Full Stack
Colette Casey
Technical Architect – Unum/Colonial Life
July 10th, 2018
2
2
§ Hold a bachelors degree in Computer Science
§ 20+ years of IT experience
§ Developer for 17+ years
§ Started with Mainframe (assembler and COBOL)
§ Moved to VB, ASP and COM+
§ Then to .NET (C#)
§ Been with Colonial (a Unum affiliate) for a total
of 8 years
§ 5 in my most recent stint
Hello, I’m Colette
3
3
§ In a technical architect role
§ Responsible for architecture of ~32
applications and ~5 databases
§ Working on domain and solution
architecture for a MS D365
implementation
§ Foster/promote agile development
practices and DevOps amongst our
scrum teams
Currently…
4
4
How Application Releases Used to Work at Colonial Life…
# What Happens:
1 Developer codes and unit test locally, check-in to TFVC, version and label in TFVC
2 Deployment engineer pulls code from TFVC, manually initiates a build via Visual Build Pro on the build box
3 Deployment engineer manually initiates a copy of DLLs from build box to Dev server(s), DBAs manually deploy SQL scripts,
developers manually performed testing in the environment to validate the deployment
4 After passing Dev testing, Deployment engineer manually initiates a copy of DLLs from Dev server(s) to Acpt server(s), DBAs
manually apply SQL Scripts, QA manually performed functional and regression testing
5 After passing QA testing, Deployment engineer manually creates a backup, manually initiates a copy of DLLs from Acpt (UAT)
server(s) to production, DBAs manually apply SQL Scripts
Local Source
Code
Visual
Build Pro
Visual
Build Pro
Build
Box
Dev
(DEV)
Acpt
(UAT)
Visual
Build Pro
Visual
Build Pro
Prod
(PROD)
Our Stack:
• .NET
• IIS
• SQL Server
• VMWare
1 2 3 4 5
5
5
How Database Releases Used to Work at Colonial Life…
• Creates DDL/DML
• VS or SSMS
• Verified locally
• Checks into TFS (TFVC)
Dev DA
• Reviews changes
• Makes suggestions
related to indexes, and
table/column naming
conventions
DB Dev
• Review for standards
• Make necessary changes
based on standards
• Pull scripts from TFS,
package (zip), apply to
Pre-Dev database using
Visual Build Pro
DBA
• Unpacks zip file and copies
to server
• Manually performs backups
• Manually starts VS Build
Pro script to execute scripts
• If failures, manually
corrects and restarts VS
Build Pro script
6
6
§ Code: Long checklist that
had to be manually
executed. Steps
sometimes missed or left
incomplete.
§ Database: Entirely
separate process and
group of people
responsible for manual
deployment steps. Steps
sometimes missed or left
incomplete.
Issues with Old Software Deployment Process…
§ Code: No versioning. No
packaged artifact. Hard to
track currently deployed
version. Deployments
were not repeatable.
§ Database: No versioning.
No packaged artifact.
Hard to track database
scripts for a given
deployment.
§ Multiple manual hand-offs
between groups in the
enterprise
§ Dev Team, Deployment
Engineers, DBAs,
QA/Test, etc.
RISKY UNRELIABLE SLOW & INEFFICIENT
7
7
§ Agile Transformation
§ Company began an Agile transformation at the beginning of 2016
§ Business Delivery
§ With Agile transformation, business wanted to be able to release more
frequently
§ Provide business value to consumer quicker, with quality and reliability
§ Development Time
§ Give Scrum teams more time back for feature delivery
Why change…
8
8
A Modern Pipeline – Tools for Full-Stack
DevOps
9
9
§ Agile Central: Backlog Management
§ Visual Studio: Development IDE
§ SSMS: SQL Development
§ TFS (TFVC or GIT): Source Code Management
§ SonarQube: Code analysis
§ Jenkins: Continuous Integration
§ JFrog Artifactory: Artifact Repository
§ Octopus Deploy: Automated Deployment
§ Datical: Database Release Automation
Tools for Agile Development and Release
10
10
Pull from TFS
Build app
code
Datical
packaging
Unit test app
code
App artifact Deploy to
DEV
Validate full
stack
Deploy to
DEV
DB artifact
Full-Stack Modern Continuous Integration Process…
Jenkins Process
App
code
DB
code
Notify
team;
Repeat
DEV
11
11
§ Promoting code through environments
(beyond DEV)
§ Jenkins and/or Octopus Deploy
§ Deployment Engineer can either:
§ Kick-off a Jenkins job supplying
parameters for environment and package
version
§ Use Octopus Deploy UI to deploy
particular package version
§ This applies to both code and database
packages
§ Process is now completely automated
and repeatable
Modern Continuous Deployment Process…
Acceptance
Tests
Deploy to
Stage
autoUnit
Tests
autoBuild auto
C O N T I N U O U S I N T E G R A T I O N
Acceptance
Tests
Deploy to
Production
manualDeploy to
Stage
autoUnit
Tests
autoBuild auto
C O N T I N U O U S D E L I V E R Y
Acceptance
Tests
Deploy to
Production
autoDeploy to
Stage
autoUnit
Tests
autoBuild auto
C O N T I N U O U S D E P L O Y M E N T
12
12
Impact of Modernizing the Pipeline (aka Full-
Stack DevOps)
13
13
Improvements realized (release cycle)…
Dev Build Test Release
Dev Build Test Release
4-5 Month Release Cycle
3 Hour Build
1 Deploy per 10 Days
~1.5 Month Release Cycle
1 Hour Build
Daily Deploy
Release Cycle Improvements:
• 3x Build
• 10x Deployment
• ~3x Release Cycle
14
14
Improvements realized (handoff elimination)
Dev
Build &
Deploy to Dev
Acceptance Test Release
Build
&
Deploy
Acceptance
Test
Release
2-3 daily interations
Dev
Handoff Eliminated
Automatic Build & Deploy
Average savings of 5-10 hours per build & deploy
(from Dev through Acceptance)
Hand-
Off
Hand-
Off
2-4 hours 2-4 hours
2-3 hours per build
Hand-
Off
2-4 hours
Hand-
Off
15
15
AFTER: (7) Automated Releases per Year
BEFORE: (3) Manual Releases per Year
Improvements Realized (# of releases)
Release
1
Release
2
Release
3
Release
4
Release
5
Release
6
Release
7
Release
1
Release
2
Release
3
16
16
Key Learnings and Recommendations
17
17
§ Evaluate what you can do with the applications you have
§ First: Think about just doing automated build/deploy, possibly add other
automation to the pipeline (such as test) and then go back to think about
architecture. (shorter term effort with benefits realized faster)
§ Next: Evaluate what it takes to re-architect? (longer term effort with benefits
realized later)
§ Even for greenfield apps:
§ Think through the pipeline before you start development!
Strategy for Modernizing Applications
18
18
§ What types of tools work best (related to the stack you use)
§ List out tasks and map tools to the tasks
§ Tools can depend on the stack you are using (Java, .NET, etc.), but there are
some agnostic tools
§ Jenkins and Artifactory are agnostic
§ Artifactory: nobody had previously managed a binary repo
§ Datical is agnostic to common DBMS platforms in the enterprise
§ Two types:
§ Automate a task that has been happening
§ Net new tasks/processes/activities (Artifactory)
Advice on Tools for DevOps
19
19
§ Do you have in-house applications that are very data-heavy or
otherwise coupled to a database?
§ Ex: We had 900 database scripts as part of a single release. Can’t do
DevOps without automated versioning, validation, and deployment of
these scripts
§ When you have apps that are highly dependent on the database
– your data has to go with your code deployment. Otherwise
things will get out of sync only slowing the pipeline.
Database Best-Practice
20
20
§ Going to expand across the
enterprise
§ Figure out a good set of best
practices and got familiar with
tools
§ Start by bringing build, release,
and test automation first to all
pipelines to start releasing
faster
Next Steps
§ Going to streamline pipeline
creation and management
§ Script out the pipeline instead
of manually defining/configuring
so we can version and backup
the pipeline itself. It’s pipeline
as code!
§ Evaluate what systems need
database release automation
§ Not all apps consistently
include database changes
1 32
21
21
Questions?
Past Present
3 Manual Releases a Year 7 Automated Releases a Year

Contenu connexe

Tendances

2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
Shreeniwas Iyer
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
Vladimir Bakhov
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
Harald Rietman
 
Successful testing continuous delivery - coding serbia 2013
Successful testing continuous delivery - coding serbia 2013Successful testing continuous delivery - coding serbia 2013
Successful testing continuous delivery - coding serbia 2013
Miel Donkers
 

Tendances (19)

Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Implementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise MiddlewareImplementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise Middleware
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
 
CI/CD
CI/CDCI/CD
CI/CD
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
 
CI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins PipelineCI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins Pipeline
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster
 
Successful testing continuous delivery - coding serbia 2013
Successful testing continuous delivery - coding serbia 2013Successful testing continuous delivery - coding serbia 2013
Successful testing continuous delivery - coding serbia 2013
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps world
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
 
Software Craftsmanship for DevOps professionals - Umesh Kumar / Murughan Pala...
Software Craftsmanship for DevOps professionals - Umesh Kumar / Murughan Pala...Software Craftsmanship for DevOps professionals - Umesh Kumar / Murughan Pala...
Software Craftsmanship for DevOps professionals - Umesh Kumar / Murughan Pala...
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 

Similaire à Achieving Full Stack DevOps at Colonial Life

Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
Ankit Chohan
 

Similaire à Achieving Full Stack DevOps at Colonial Life (20)

Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with Containers
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1x
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Datenbank-Schema Deployment im Kubernetes ReleaseDWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Devops
DevopsDevops
Devops
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
APEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfAPEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdf
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 

Plus de DevOps.com

Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
DevOps.com
 
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
DevOps.com
 

Plus de DevOps.com (20)

Modernizing on IBM Z Made Easier With Open Source Software
Modernizing on IBM Z Made Easier With Open Source SoftwareModernizing on IBM Z Made Easier With Open Source Software
Modernizing on IBM Z Made Easier With Open Source Software
 
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
 
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
 
Next Generation Vulnerability Assessment Using Datadog and Snyk
Next Generation Vulnerability Assessment Using Datadog and SnykNext Generation Vulnerability Assessment Using Datadog and Snyk
Next Generation Vulnerability Assessment Using Datadog and Snyk
 
Vulnerability Discovery in the Cloud
Vulnerability Discovery in the CloudVulnerability Discovery in the Cloud
Vulnerability Discovery in the Cloud
 
2021 Open Source Governance: Top Ten Trends and Predictions
2021 Open Source Governance: Top Ten Trends and Predictions2021 Open Source Governance: Top Ten Trends and Predictions
2021 Open Source Governance: Top Ten Trends and Predictions
 
A New Year’s Ransomware Resolution
A New Year’s Ransomware ResolutionA New Year’s Ransomware Resolution
A New Year’s Ransomware Resolution
 
Getting Started with Runtime Security on Azure Kubernetes Service (AKS)
Getting Started with Runtime Security on Azure Kubernetes Service (AKS)Getting Started with Runtime Security on Azure Kubernetes Service (AKS)
Getting Started with Runtime Security on Azure Kubernetes Service (AKS)
 
Don't Panic! Effective Incident Response
Don't Panic! Effective Incident ResponseDon't Panic! Effective Incident Response
Don't Panic! Effective Incident Response
 
Creating a Culture of Chaos: Chaos Engineering Is Not Just Tools, It's Culture
Creating a Culture of Chaos: Chaos Engineering Is Not Just Tools, It's CultureCreating a Culture of Chaos: Chaos Engineering Is Not Just Tools, It's Culture
Creating a Culture of Chaos: Chaos Engineering Is Not Just Tools, It's Culture
 
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with TeleportRole Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
 
Monitoring Serverless Applications with Datadog
Monitoring Serverless Applications with DatadogMonitoring Serverless Applications with Datadog
Monitoring Serverless Applications with Datadog
 
Deliver your App Anywhere … Publicly or Privately
Deliver your App Anywhere … Publicly or PrivatelyDeliver your App Anywhere … Publicly or Privately
Deliver your App Anywhere … Publicly or Privately
 
Securing medical apps in the age of covid final
Securing medical apps in the age of covid finalSecuring medical apps in the age of covid final
Securing medical apps in the age of covid final
 
How to Build a Healthy On-Call Culture
How to Build a Healthy On-Call CultureHow to Build a Healthy On-Call Culture
How to Build a Healthy On-Call Culture
 
The Evolving Role of the Developer in 2021
The Evolving Role of the Developer in 2021The Evolving Role of the Developer in 2021
The Evolving Role of the Developer in 2021
 
Service Mesh: Two Big Words But Do You Need It?
Service Mesh: Two Big Words But Do You Need It?Service Mesh: Two Big Words But Do You Need It?
Service Mesh: Two Big Words But Do You Need It?
 
Secure Data Sharing in OpenShift Environments
Secure Data Sharing in OpenShift EnvironmentsSecure Data Sharing in OpenShift Environments
Secure Data Sharing in OpenShift Environments
 
How to Govern Identities and Access in Cloud Infrastructure: AppsFlyer Case S...
How to Govern Identities and Access in Cloud Infrastructure: AppsFlyer Case S...How to Govern Identities and Access in Cloud Infrastructure: AppsFlyer Case S...
How to Govern Identities and Access in Cloud Infrastructure: AppsFlyer Case S...
 
Elevate Your Enterprise Python and R AI, ML Software Strategy with Anaconda T...
Elevate Your Enterprise Python and R AI, ML Software Strategy with Anaconda T...Elevate Your Enterprise Python and R AI, ML Software Strategy with Anaconda T...
Elevate Your Enterprise Python and R AI, ML Software Strategy with Anaconda T...
 

Dernier

Dernier (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Achieving Full Stack DevOps at Colonial Life

  • 1. 1 1 DevOps for the Full Stack Colette Casey Technical Architect – Unum/Colonial Life July 10th, 2018
  • 2. 2 2 § Hold a bachelors degree in Computer Science § 20+ years of IT experience § Developer for 17+ years § Started with Mainframe (assembler and COBOL) § Moved to VB, ASP and COM+ § Then to .NET (C#) § Been with Colonial (a Unum affiliate) for a total of 8 years § 5 in my most recent stint Hello, I’m Colette
  • 3. 3 3 § In a technical architect role § Responsible for architecture of ~32 applications and ~5 databases § Working on domain and solution architecture for a MS D365 implementation § Foster/promote agile development practices and DevOps amongst our scrum teams Currently…
  • 4. 4 4 How Application Releases Used to Work at Colonial Life… # What Happens: 1 Developer codes and unit test locally, check-in to TFVC, version and label in TFVC 2 Deployment engineer pulls code from TFVC, manually initiates a build via Visual Build Pro on the build box 3 Deployment engineer manually initiates a copy of DLLs from build box to Dev server(s), DBAs manually deploy SQL scripts, developers manually performed testing in the environment to validate the deployment 4 After passing Dev testing, Deployment engineer manually initiates a copy of DLLs from Dev server(s) to Acpt server(s), DBAs manually apply SQL Scripts, QA manually performed functional and regression testing 5 After passing QA testing, Deployment engineer manually creates a backup, manually initiates a copy of DLLs from Acpt (UAT) server(s) to production, DBAs manually apply SQL Scripts Local Source Code Visual Build Pro Visual Build Pro Build Box Dev (DEV) Acpt (UAT) Visual Build Pro Visual Build Pro Prod (PROD) Our Stack: • .NET • IIS • SQL Server • VMWare 1 2 3 4 5
  • 5. 5 5 How Database Releases Used to Work at Colonial Life… • Creates DDL/DML • VS or SSMS • Verified locally • Checks into TFS (TFVC) Dev DA • Reviews changes • Makes suggestions related to indexes, and table/column naming conventions DB Dev • Review for standards • Make necessary changes based on standards • Pull scripts from TFS, package (zip), apply to Pre-Dev database using Visual Build Pro DBA • Unpacks zip file and copies to server • Manually performs backups • Manually starts VS Build Pro script to execute scripts • If failures, manually corrects and restarts VS Build Pro script
  • 6. 6 6 § Code: Long checklist that had to be manually executed. Steps sometimes missed or left incomplete. § Database: Entirely separate process and group of people responsible for manual deployment steps. Steps sometimes missed or left incomplete. Issues with Old Software Deployment Process… § Code: No versioning. No packaged artifact. Hard to track currently deployed version. Deployments were not repeatable. § Database: No versioning. No packaged artifact. Hard to track database scripts for a given deployment. § Multiple manual hand-offs between groups in the enterprise § Dev Team, Deployment Engineers, DBAs, QA/Test, etc. RISKY UNRELIABLE SLOW & INEFFICIENT
  • 7. 7 7 § Agile Transformation § Company began an Agile transformation at the beginning of 2016 § Business Delivery § With Agile transformation, business wanted to be able to release more frequently § Provide business value to consumer quicker, with quality and reliability § Development Time § Give Scrum teams more time back for feature delivery Why change…
  • 8. 8 8 A Modern Pipeline – Tools for Full-Stack DevOps
  • 9. 9 9 § Agile Central: Backlog Management § Visual Studio: Development IDE § SSMS: SQL Development § TFS (TFVC or GIT): Source Code Management § SonarQube: Code analysis § Jenkins: Continuous Integration § JFrog Artifactory: Artifact Repository § Octopus Deploy: Automated Deployment § Datical: Database Release Automation Tools for Agile Development and Release
  • 10. 10 10 Pull from TFS Build app code Datical packaging Unit test app code App artifact Deploy to DEV Validate full stack Deploy to DEV DB artifact Full-Stack Modern Continuous Integration Process… Jenkins Process App code DB code Notify team; Repeat DEV
  • 11. 11 11 § Promoting code through environments (beyond DEV) § Jenkins and/or Octopus Deploy § Deployment Engineer can either: § Kick-off a Jenkins job supplying parameters for environment and package version § Use Octopus Deploy UI to deploy particular package version § This applies to both code and database packages § Process is now completely automated and repeatable Modern Continuous Deployment Process… Acceptance Tests Deploy to Stage autoUnit Tests autoBuild auto C O N T I N U O U S I N T E G R A T I O N Acceptance Tests Deploy to Production manualDeploy to Stage autoUnit Tests autoBuild auto C O N T I N U O U S D E L I V E R Y Acceptance Tests Deploy to Production autoDeploy to Stage autoUnit Tests autoBuild auto C O N T I N U O U S D E P L O Y M E N T
  • 12. 12 12 Impact of Modernizing the Pipeline (aka Full- Stack DevOps)
  • 13. 13 13 Improvements realized (release cycle)… Dev Build Test Release Dev Build Test Release 4-5 Month Release Cycle 3 Hour Build 1 Deploy per 10 Days ~1.5 Month Release Cycle 1 Hour Build Daily Deploy Release Cycle Improvements: • 3x Build • 10x Deployment • ~3x Release Cycle
  • 14. 14 14 Improvements realized (handoff elimination) Dev Build & Deploy to Dev Acceptance Test Release Build & Deploy Acceptance Test Release 2-3 daily interations Dev Handoff Eliminated Automatic Build & Deploy Average savings of 5-10 hours per build & deploy (from Dev through Acceptance) Hand- Off Hand- Off 2-4 hours 2-4 hours 2-3 hours per build Hand- Off 2-4 hours Hand- Off
  • 15. 15 15 AFTER: (7) Automated Releases per Year BEFORE: (3) Manual Releases per Year Improvements Realized (# of releases) Release 1 Release 2 Release 3 Release 4 Release 5 Release 6 Release 7 Release 1 Release 2 Release 3
  • 16. 16 16 Key Learnings and Recommendations
  • 17. 17 17 § Evaluate what you can do with the applications you have § First: Think about just doing automated build/deploy, possibly add other automation to the pipeline (such as test) and then go back to think about architecture. (shorter term effort with benefits realized faster) § Next: Evaluate what it takes to re-architect? (longer term effort with benefits realized later) § Even for greenfield apps: § Think through the pipeline before you start development! Strategy for Modernizing Applications
  • 18. 18 18 § What types of tools work best (related to the stack you use) § List out tasks and map tools to the tasks § Tools can depend on the stack you are using (Java, .NET, etc.), but there are some agnostic tools § Jenkins and Artifactory are agnostic § Artifactory: nobody had previously managed a binary repo § Datical is agnostic to common DBMS platforms in the enterprise § Two types: § Automate a task that has been happening § Net new tasks/processes/activities (Artifactory) Advice on Tools for DevOps
  • 19. 19 19 § Do you have in-house applications that are very data-heavy or otherwise coupled to a database? § Ex: We had 900 database scripts as part of a single release. Can’t do DevOps without automated versioning, validation, and deployment of these scripts § When you have apps that are highly dependent on the database – your data has to go with your code deployment. Otherwise things will get out of sync only slowing the pipeline. Database Best-Practice
  • 20. 20 20 § Going to expand across the enterprise § Figure out a good set of best practices and got familiar with tools § Start by bringing build, release, and test automation first to all pipelines to start releasing faster Next Steps § Going to streamline pipeline creation and management § Script out the pipeline instead of manually defining/configuring so we can version and backup the pipeline itself. It’s pipeline as code! § Evaluate what systems need database release automation § Not all apps consistently include database changes 1 32
  • 21. 21 21 Questions? Past Present 3 Manual Releases a Year 7 Automated Releases a Year