Continuous Discussions (#c9d9): Episode 13 Recap – Version Control and Continuous Delivery

Written by: Electric Bee

As a developer, I interact with source control on a daily basis. In addition, as Team Lead for our Plugins group, my job also involves integrating with other source control systems, so I get the opportunity to help our team members when they have questions about usage or setup.

version-all-the-things

Version control can help provide fail-safe structure and repeatability to developers – and operations people – on their quest for Continuous Delivery. Our goal is to, basically, Version All The Things. This requires structure, discipline, and the right tooling.

Yesterday, I had a great time taking part in our #c9d9 episode on Version Control and Continuous Delivery.

Our team of panelists discussed the ins-and-outs of versioning: what files should be versioned, how does version control affect your CD pipeline, where is version control heading, and more. We even got to vent and share some version control horror stories (it's always helpful - and entertaining - to hear how we're all in the same boat, tackling the same issues, accidentally deleting the same repository ;))

Some interesting takeaways for me:

  • We were all pretty much in agreement that you should try to v ersion as much as possible (including artwork, images, and even marketing collateral). In terms of application deployment, you should version everything that ultimately contributes to your application: source code, configuration management scripts and even the build process, testing process and deployment processes.
  • As Brian Fox from Sonatype explains, in order for Version Control to be used across the system, we need to find a way to validate we are using the right component version  - no matter where it came from. We need to attach the right metadata/fingerprint, verify their integrity and use them appropriately. For example, as Brian explains, successfully restoring from a snapshot is great, but you may not want to go into production without assessing the security vulnerabilities that may have been found since the time the snapshot was created. So even though the snapshot works it may not be advisable to use it directly.
  • Melvin Laguren from Macy's mentioned that while versioning goes hand in hand with CD, you should try to avoid making things overly complicated . The set of tools you're using should match and support your pipeline - otherwise you may end up spending more time fighting your infrastructure and working around it instead of focusing on development.
  • Perforce's Jonathan Thorpe and our own Anders Wallgren both commented on how we sometimes construct our processes based on the limitations of the tools we have in place, rather than the other way around. As Anders points out, our thought-process should be "This is what we want our process to be, now let's figure out what tools can support our process." That way, we do not get trapped in the "that's what my tool can do, so this is our process" mindset.

Watch the Replay of this episode:

c9d9-episode-13-recap-versioning-and-cd This episode features:

jonathanBrian Fox VP of Product Management at Sonatype, an Apache Software Foundation Member and Apache Maven PMC member and committer. @brian_fox | blog.sonatype.com/author/brian/
jonathanJonathan Thorpe Technical Marketing Manager at Perforce, focused on Continuous Delivery and DevOps. @jonathan_thorpe | perforce.com/blog
 
melvinMelvin Laguren Staff Engineer at Macy's focusing on test automation and designing the CI/CD pipeline. @mlaguren | www.laguren.net
 
NikhilNikhil Vaze Senior Software Engineer on the CloudBees engineering team. He is a full stack engineer and loves to hack on things. @therealnikhil | https://electric-cloud.com/blog/author/nvaze/
 
tamirTamir Gefen Founder of GoMidjets, has 13 years experience in SCM, development processes, dev operations and tooling. @gomidjets | gomidjets.com/blog
 
 
 

 

 

 

 

 

 


 

c9d9-logo

On the Next Episode of Continuous Discussions:

unicorn-and-legacy

Join us on Tuesday, April 7th, at 10am PST , when we'll be talking about DevOps and Lean in Legacy Environments .

This episode will feature:

daveDave Mangot Systems engineer @Librato, DevOps aficionado, change agent, with a passion for metrics, monitoring, and scalability. @davemangot | tech.mangot.com
 
dimitrisDimitris Papathomopoulos Software Engineer, Tech Director @ InfoTech & RPAS Cloud Product Manager, Big fan of Agile, Lean Start Up, DevOps & Continuous Delivery. @DimitrisPapatho | infotechfb.com/blog/
 
uriUri Cohen Uri leads the product team at GigaSpaces. He’s a spare time coder & proud dad, & occasionally dapples in all-mountain & downhill biking. @uri1803 | getcloudify.org/blog
 
yuvalYuval Yeret Partner and CTO @ Agilesparks, Agile/Kanban/Scrum Coach. @yuvalyeret | yuvalyeret.com
 
 
 

 

 

 

Stay up to date

We'll never share your email address and you can opt out at any time, we promise.