SlideShare une entreprise Scribd logo
1  sur  41
Webcast Starts at 1:00 EDT
    … no you shouldn’t be hearing anything yet


                           #PackageReposWebinar




1
We start in less than 15 min
    … no you shouldn’t be hearing anything yet


                           #PackageReposWebinar




2
We start in less than 10 min
    … no you shouldn’t be hearing anything yet


                           #PackageReposWebinar




3
We start in less than 5 min
    … no you shouldn’t be hearing anything yet
                        Getting excited? I am.

                           #PackageReposWebinar




4
Package Repositories

          The unsung heroes.

           #PackageReposWebinar




5
Eric’s Bio
                     I’m a Lead Consultant at Urbancode
                     where I helps customers get the
                     most out of their build, deploy and
                     release processes. I have 9 years of
                     automation experience throughout
Eric Minick          the application life-cycle in roles as
eric@urbancode.com
@EricMinick          a developer, test automation
                     engineer, and support engineer. I’ve
                     been at the forefront of CI & CD for
                     7+ years

 6                           #PackageReposWebinar
Serious problems from top to bottom
• Dan, new developer: can’t compile
• Pam, experienced programmer: dealing with a
  merge conflict
• Tom, tester: just had a batch of bugs rejected
• Owen, operations: dealing with a production
  failure
• Cynthia, CIO: has just been informed the
  organization failed an audit


7                  #PackageReposWebinar
Agenda
•   Packages and configuration management
•   Traditional approaches
•   Elements of a successful solution
•   Recipe for adoption




8                   #PackageReposWebinar
Agenda
•   Packages and configuration management
•   Traditional approaches
•   Elements of a successful solution
•   Recipe for adoption




9
Configuration management
• ITIL Definition*: “The Process responsible for
  maintaining information about Configuration
  Items required to deliver an IT
  Service, including their Relationships.”

• Understand what we are releasing and how it
  relates to everything else.




10   *Source: ITIL v3 Service Transition. 2007.
Lots of stuff to version

                           Develop / Build                            Runtime

                       source
                                                                   Deployable
      “Code”

                         3rd Party libs                            Builds

                                                    Sub-Projects
                                   Internal Libs                           Deployment
                                                                           Manifests


                                                     Middleware
      Infrastructure




                       Config
                       templates
                                                                      Environment
                                                                      Manifests
                                Environment              VM Images
                                Templates




11                                                 #PackageReposWebinar
Agenda
•    Packages and configuration management
•    Traditional approaches
•    Elements of a successful solution
•    Recipe for adoption




12                   #PackageReposWebinar
“How do I make this build work?”
• Developer attempting to build
     – new developer feels the pain
• Build machine view of binaries
     – magic build machine


• Dependency information comes in the form of
  link errors



13                      #PackageReposWebinar
“Use Google”




14             #PackageReposWebinar
“I’ll email that to you”




15                #PackageReposWebinar
“It’s in the lib directory”


     Binary dependencies are versioned with the
                    source code




16                   #PackageReposWebinar
“Go get that off the file share”
• Single source for the organization
• Dependencies are now scriptable
• Version explosion
     – hard to know when to remove an old version
     – hard to know which to use




17                     #PackageReposWebinar
“I’m waiting for the internet to download”
• Using Maven Central as a binary repository




18                 #PackageReposWebinar
Deploy & Release: almost as bad as build




19              #PackageReposWebinar
Agenda
• Binaries and configuration management
• Traditional approaches for dealing with
  binaries
• Elements of a successful solution
• Recipe for adoption




20                 #PackageReposWebinar
What they need
• Developers
     – A description of dependencies
     – Location to get them (and easy updates)
     – Controlled official versions of dependencies
• QA
     – What’s in my environment: A deployment manifest
• Ops
     – The same manifest & everyone else’s house in order
• CIO / Audit
     – Inventory of who deployed what where

21                        #PackageReposWebinar
ITIL Definitive Media Library
• Location where the definitive and approved
  versions of all software configuration items are
  securely stored

• Includes:
     – archive and retention periods
     – environment support (e.g. test and live environments)
     – tamper resistance

Service Transition, ITIL v 3; Lacy & Macfarlane;
  2007

22                       #PackageReposWebinar
Good binary management
• Package Repository
     – authoritative place to store versioned binaries
     – access control
     – checksums for tamper resistance
     – release meta-data
     – retention periods


• Dependency management
     – ITIL: “relationships between configuration items”

23                       #PackageReposWebinar
Build Dependencies
• “Description of dependencies” is complex

• Requires:
     – track compile time and runtime dependencies
     – automated retrieval from repository
     – traceable: give me a manifest




24                     #PackageReposWebinar
Deployment Manifests
• Collection of versioned packages to deploy
• How (also versioned)
     – Process
     – Configuration rules




25
     source: http://www.flickr.com/photos/expertinfantry/5449659589/
Package repos: hand off from Dev to Ops
     AKA: DSL, DML, Artifact Repo, Binary Repo




26                   #PackageReposWebinar
27   #PackageReposWebinar
Agenda
• Binaries and configuration management
• Traditional approaches for dealing with
  binaries
• Elements of a successful solution
• Recipe for adoption




28                 #PackageReposWebinar
Our recommended recipe
1.   The dependency audit
2.   Decide who will control dependency rules
3.   Decide who will control the repository
4.   Establish a binary artifact repository
5.   Link scripts to repository
6.   Migrate dependencies to repository
7.   Deny the old methods
8.   Develop tested stacks

29                   #PackageReposWebinar
Dependency Audit
• Begin researching dependency relationships
• Need to avoid breaking what we have today
• Validate files are the version they claim to be
• Requires understanding relationships between
  teams and their components
• Where is there commonality? Conflicts?




30                  #PackageReposWebinar
Decide who will control repository
• Will we have one repo or several?

• How do new 3rd party artifacts get added?
     – architecture checks for duplication
     – security and compliance concerns

• What internal systems can register versions?

• What policies are used for removing old
  versions?
31                       #PackageReposWebinar
Decide who will control of dependency rules

• Developers often best understand the
  project’s needs
• Architects suggest components that should be
  used everywhere
• CM team often set policy for what’s allowed
• QA knows what’s been tested
• Operations knows what’s approved for
  production use


32                 #PackageReposWebinar
Establish a package repository
• Select a repository
     – Codestation, Maven, Yum, SCM Tool….

• Implement it
     – installation
     – configuration
     – disaster recovery
     – retention policy
     – security rules
        • authentication & authorization


33                         #PackageReposWebinar
Link scripts to repository
• Build scripts
• Deployment scripts
• Provisioning scripts

• Create a “walking skeleton” for a
  smooth, incremental transition
          http://alistair.cockburn.us/Walking+skeleton




34                   #PackageReposWebinar
Migrate dependencies to repository
• Shouldbe easy

• It won’t be




35                #PackageReposWebinar
Deny the old methods
• Turn off the file share

• Firewall off Maven Central

• Reject commits of libraries to source control




36                   #PackageReposWebinar
Develop tested stacks
• Identify groups of components commonly
  used together

• Test versions of those groups and create a
  “stack” – a version of the group

• If you build your app on this stack, it will work
  in our environment
     – With infrastructure automation this becomes PaaS

37                     #PackageReposWebinar
Checking in with the team
• Dan, new developer: quickly up to speed
• Pam, experienced programmer: getting work
  done
• Tom, tester: not wasting time on bogus bugs
• Owen, operations: working a 40 hour work
  week
• Cynthia, CIO: working on new initiatives



38                 #PackageReposWebinar
Key Takeaways
• The package repository as a key role in your
  tool chain

• Audit what you are using in this place now and
  consider alternatives that are better tailored

• If it’s important, version it



39                    #PackageReposWebinar
Package Repo bundled in our Products
• AnthillPro
     – All in one continuous delivery platform
• uBuild
     – Build automation and CI for the hard problems
• uDeploy
     – Deployment and release management
• uProvision
     – Spins up virtual environments. Integrated with
       VMWare, Azure and EC2

40
Q&A
                      @UrbanCodeSoft
                         @EricMinick
                   Slideshare.net/Urbancode




41   #PackageReposWebinar

Contenu connexe

Tendances

Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
Ankit Chohan
 
Resume-Kalyan
Resume-KalyanResume-Kalyan
Resume-Kalyan
Kalyan V
 

Tendances (20)

Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning TalksBuilding Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
 
Docker and Jenkins Pipeline
Docker and Jenkins PipelineDocker and Jenkins Pipeline
Docker and Jenkins Pipeline
 
Getting Started With Jenkins And Drupal
Getting Started With Jenkins And DrupalGetting Started With Jenkins And Drupal
Getting Started With Jenkins And Drupal
 
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
 
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
 
Version your build process as you version your code
Version your build process as you version your codeVersion your build process as you version your code
Version your build process as you version your code
 
Version Control meets Database Control
Version Control meets Database ControlVersion Control meets Database Control
Version Control meets Database Control
 
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & CoInfrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
 
Resume-Kalyan
Resume-KalyanResume-Kalyan
Resume-Kalyan
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
 
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything Else
 

Similaire à Package Repositories: The Unsung Heroes of Configuration and Release Management

Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev ops
Len Bass
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
Patrick Chanezon
 
Aai 3228-dev ops-tools-websphere-sl
Aai 3228-dev ops-tools-websphere-slAai 3228-dev ops-tools-websphere-sl
Aai 3228-dev ops-tools-websphere-sl
sflynn073
 

Similaire à Package Repositories: The Unsung Heroes of Configuration and Release Management (20)

Super chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeploymentsSuper chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeployments
 
Supercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration DeploymentsSupercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration Deployments
 
Devops
DevopsDevops
Devops
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 
Top Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | EdurekaTop Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | Edureka
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev ops
 
Build tool
Build toolBuild tool
Build tool
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Aai 3228-dev ops-tools-websphere-sl
Aai 3228-dev ops-tools-websphere-slAai 3228-dev ops-tools-websphere-sl
Aai 3228-dev ops-tools-websphere-sl
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSoftware Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
 
Session 2
Session 2Session 2
Session 2
 
Session 2
Session 2Session 2
Session 2
 
XebiaLabs - Optimizing App Deployment to IBM WebSphere
XebiaLabs - Optimizing App Deployment to IBM WebSphereXebiaLabs - Optimizing App Deployment to IBM WebSphere
XebiaLabs - Optimizing App Deployment to IBM WebSphere
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkins
 

Plus de IBM UrbanCode Products

DevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesDevOps and the Case for ROI to Executives
DevOps and the Case for ROI to Executives
IBM UrbanCode Products
 

Plus de IBM UrbanCode Products (20)

Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
 
What's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode DeployWhat's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode Deploy
 
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
 
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps:  Standardizing Chaotic Culture at NBCUniversalEfficient DevOps:  Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production Failure
 
The Future of DevOps and UrbanCode
The Future of DevOps and UrbanCodeThe Future of DevOps and UrbanCode
The Future of DevOps and UrbanCode
 
Death to Manual Deployments
Death to Manual DeploymentsDeath to Manual Deployments
Death to Manual Deployments
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at Scale
 
Continuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCodeContinuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCode
 
Securing the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode DeploySecuring the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode Deploy
 
Adopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed ITAdopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed IT
 
A True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOpsA True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOps
 
UrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsUrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the Dots
 
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption RoadmapGet Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
 
Building a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't EvilBuilding a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't Evil
 
DevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesDevOps and the Case for ROI to Executives
DevOps and the Case for ROI to Executives
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployContinuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
 
Creating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilCreating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't Evil
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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, ...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Package Repositories: The Unsung Heroes of Configuration and Release Management

  • 1. Webcast Starts at 1:00 EDT … no you shouldn’t be hearing anything yet #PackageReposWebinar 1
  • 2. We start in less than 15 min … no you shouldn’t be hearing anything yet #PackageReposWebinar 2
  • 3. We start in less than 10 min … no you shouldn’t be hearing anything yet #PackageReposWebinar 3
  • 4. We start in less than 5 min … no you shouldn’t be hearing anything yet Getting excited? I am. #PackageReposWebinar 4
  • 5. Package Repositories The unsung heroes. #PackageReposWebinar 5
  • 6. Eric’s Bio I’m a Lead Consultant at Urbancode where I helps customers get the most out of their build, deploy and release processes. I have 9 years of automation experience throughout Eric Minick the application life-cycle in roles as eric@urbancode.com @EricMinick a developer, test automation engineer, and support engineer. I’ve been at the forefront of CI & CD for 7+ years 6 #PackageReposWebinar
  • 7. Serious problems from top to bottom • Dan, new developer: can’t compile • Pam, experienced programmer: dealing with a merge conflict • Tom, tester: just had a batch of bugs rejected • Owen, operations: dealing with a production failure • Cynthia, CIO: has just been informed the organization failed an audit 7 #PackageReposWebinar
  • 8. Agenda • Packages and configuration management • Traditional approaches • Elements of a successful solution • Recipe for adoption 8 #PackageReposWebinar
  • 9. Agenda • Packages and configuration management • Traditional approaches • Elements of a successful solution • Recipe for adoption 9
  • 10. Configuration management • ITIL Definition*: “The Process responsible for maintaining information about Configuration Items required to deliver an IT Service, including their Relationships.” • Understand what we are releasing and how it relates to everything else. 10 *Source: ITIL v3 Service Transition. 2007.
  • 11. Lots of stuff to version Develop / Build Runtime source Deployable “Code” 3rd Party libs Builds Sub-Projects Internal Libs Deployment Manifests Middleware Infrastructure Config templates Environment Manifests Environment VM Images Templates 11 #PackageReposWebinar
  • 12. Agenda • Packages and configuration management • Traditional approaches • Elements of a successful solution • Recipe for adoption 12 #PackageReposWebinar
  • 13. “How do I make this build work?” • Developer attempting to build – new developer feels the pain • Build machine view of binaries – magic build machine • Dependency information comes in the form of link errors 13 #PackageReposWebinar
  • 14. “Use Google” 14 #PackageReposWebinar
  • 15. “I’ll email that to you” 15 #PackageReposWebinar
  • 16. “It’s in the lib directory” Binary dependencies are versioned with the source code 16 #PackageReposWebinar
  • 17. “Go get that off the file share” • Single source for the organization • Dependencies are now scriptable • Version explosion – hard to know when to remove an old version – hard to know which to use 17 #PackageReposWebinar
  • 18. “I’m waiting for the internet to download” • Using Maven Central as a binary repository 18 #PackageReposWebinar
  • 19. Deploy & Release: almost as bad as build 19 #PackageReposWebinar
  • 20. Agenda • Binaries and configuration management • Traditional approaches for dealing with binaries • Elements of a successful solution • Recipe for adoption 20 #PackageReposWebinar
  • 21. What they need • Developers – A description of dependencies – Location to get them (and easy updates) – Controlled official versions of dependencies • QA – What’s in my environment: A deployment manifest • Ops – The same manifest & everyone else’s house in order • CIO / Audit – Inventory of who deployed what where 21 #PackageReposWebinar
  • 22. ITIL Definitive Media Library • Location where the definitive and approved versions of all software configuration items are securely stored • Includes: – archive and retention periods – environment support (e.g. test and live environments) – tamper resistance Service Transition, ITIL v 3; Lacy & Macfarlane; 2007 22 #PackageReposWebinar
  • 23. Good binary management • Package Repository – authoritative place to store versioned binaries – access control – checksums for tamper resistance – release meta-data – retention periods • Dependency management – ITIL: “relationships between configuration items” 23 #PackageReposWebinar
  • 24. Build Dependencies • “Description of dependencies” is complex • Requires: – track compile time and runtime dependencies – automated retrieval from repository – traceable: give me a manifest 24 #PackageReposWebinar
  • 25. Deployment Manifests • Collection of versioned packages to deploy • How (also versioned) – Process – Configuration rules 25 source: http://www.flickr.com/photos/expertinfantry/5449659589/
  • 26. Package repos: hand off from Dev to Ops AKA: DSL, DML, Artifact Repo, Binary Repo 26 #PackageReposWebinar
  • 27. 27 #PackageReposWebinar
  • 28. Agenda • Binaries and configuration management • Traditional approaches for dealing with binaries • Elements of a successful solution • Recipe for adoption 28 #PackageReposWebinar
  • 29. Our recommended recipe 1. The dependency audit 2. Decide who will control dependency rules 3. Decide who will control the repository 4. Establish a binary artifact repository 5. Link scripts to repository 6. Migrate dependencies to repository 7. Deny the old methods 8. Develop tested stacks 29 #PackageReposWebinar
  • 30. Dependency Audit • Begin researching dependency relationships • Need to avoid breaking what we have today • Validate files are the version they claim to be • Requires understanding relationships between teams and their components • Where is there commonality? Conflicts? 30 #PackageReposWebinar
  • 31. Decide who will control repository • Will we have one repo or several? • How do new 3rd party artifacts get added? – architecture checks for duplication – security and compliance concerns • What internal systems can register versions? • What policies are used for removing old versions? 31 #PackageReposWebinar
  • 32. Decide who will control of dependency rules • Developers often best understand the project’s needs • Architects suggest components that should be used everywhere • CM team often set policy for what’s allowed • QA knows what’s been tested • Operations knows what’s approved for production use 32 #PackageReposWebinar
  • 33. Establish a package repository • Select a repository – Codestation, Maven, Yum, SCM Tool…. • Implement it – installation – configuration – disaster recovery – retention policy – security rules • authentication & authorization 33 #PackageReposWebinar
  • 34. Link scripts to repository • Build scripts • Deployment scripts • Provisioning scripts • Create a “walking skeleton” for a smooth, incremental transition http://alistair.cockburn.us/Walking+skeleton 34 #PackageReposWebinar
  • 35. Migrate dependencies to repository • Shouldbe easy • It won’t be 35 #PackageReposWebinar
  • 36. Deny the old methods • Turn off the file share • Firewall off Maven Central • Reject commits of libraries to source control 36 #PackageReposWebinar
  • 37. Develop tested stacks • Identify groups of components commonly used together • Test versions of those groups and create a “stack” – a version of the group • If you build your app on this stack, it will work in our environment – With infrastructure automation this becomes PaaS 37 #PackageReposWebinar
  • 38. Checking in with the team • Dan, new developer: quickly up to speed • Pam, experienced programmer: getting work done • Tom, tester: not wasting time on bogus bugs • Owen, operations: working a 40 hour work week • Cynthia, CIO: working on new initiatives 38 #PackageReposWebinar
  • 39. Key Takeaways • The package repository as a key role in your tool chain • Audit what you are using in this place now and consider alternatives that are better tailored • If it’s important, version it 39 #PackageReposWebinar
  • 40. Package Repo bundled in our Products • AnthillPro – All in one continuous delivery platform • uBuild – Build automation and CI for the hard problems • uDeploy – Deployment and release management • uProvision – Spins up virtual environments. Integrated with VMWare, Azure and EC2 40
  • 41. Q&A @UrbanCodeSoft @EricMinick Slideshare.net/Urbancode 41 #PackageReposWebinar