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 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 version 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.
This episode features:
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/
Technical Marketing Manager at Perforce, focused on Continuous Delivery and DevOps.
@jonathan_thorpe | perforce.com/blog
Staff Engineer at Macy’s focusing on test automation and designing the CI/CD pipeline.
@mlaguren | www.laguren.net
Senior Software Engineer on the Electric Cloud engineering team. He is a full stack engineer and loves to hack on things.
@therealnikhil | http://electric-cloud.com.cn/blog/author/nvaze/
Founder of GoMidjets, has 13 years experience in SCM, development processes, dev operations and tooling.
@gomidjets | gomidjets.com/blog
On the Next Episode of Continuous Discussions:
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:
Systems engineer @Librato, DevOps aficionado, change agent, with a passion for metrics, monitoring, and scalability.
@davemangot | tech.mangot.com
Software Engineer, Tech Director @ InfoTech & RPAS Cloud Product Manager, Big fan of Agile, Lean Start Up, DevOps & Continuous Delivery.
@DimitrisPapatho | infotechfb.com/blog/
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
Continuous Discussions (#c9d9) is a bi-weekly series. See all episodes here.
Latest posts by Nikhil Vaze (see all)
- OpenStack for the Enterprise: What CIOs Need to Know - December 2, 2015
- OpenStack Tokyo, Docker, and Moving from Monolith to Microservices - November 11, 2015
- Continuous Discussions (#c9d9): Episode 28 Recap – Docker and Containers in Your CD Pipeline - November 4, 2015