Plutora Brings DevOps to the Enterprise

Plutora Blog

Subscribe to Plutora Blog: eMailAlertsEmail Alerts
Get Plutora Blog: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Article

Key Takeaways from Continuous Discussions (#c9d9) Episode 42: Release Pipelines

Release Pipelines

release-pipelines-devops

Last week, we hosted another episode of our Continuous Discussion (#c9d9) podcast- this time discussing Release Pipelines.

Our expert panel included: Gioia Ballin, software engineer at Measurance; Jamie Ingilby, software development leader; Juni Mukherjee, author of “Continuous Delivery Pipeline – Where Does It Choke?”; J. Paul Reed, Managing Partner at Release Engineering Approaches and host of the ShipShow podcast ; and our very own Anders Wallgren and Sam Fell.

During this episode, we covered the hard truths and common hurdles along your pipeline- from code check-in to Release- and some best practices to address them on your path to achieving Continuous Delivery. We discussed Continuous Integration, the importance of testing, and challenges of configuration, deployment and release, and more. Continue reading for best practices and advice from our expert panelists.

Continuous Integration

Configuration and deployment is not a tooling problem, its a process problem | @JuniTweets

 

 

  • BallinGioia-Ballin on CI in small teams: “When your team is very small, time resources are scarce, and you have to give power to the developers. You don’t have the time to ask someone to deploy your service; you have to be able to deploy your service by yourself.”
  • juni-devops-c9d9The way Mukherjee sees CI? “The way I visualize it is you have the feature branches, where you are relatively isolated and can make mistakes without really putting the entire team up for sale. Then, when you check into main line, mentally prepare yourself to see it in production. That way you go into main line with the amount of confidence that you had before.”
  • jamie-ingilbyIngilby on the challenges of CI in legacy and monolith applications: “In these applications where there isn’t maybe the branching strategy to support it, Continuous Integration is sometimes the first hurdle that people have to get over. And sometimes it’s a lot more difficult to get through that one first hurdle than we might otherwise think.”
  • j-paul-reed-c9d9-devops-podcastFirst, operationalize Continuous Integration, says Reed: “Often times, legacy applications or not, I find that the conversation really starts around operationalizing your Continuous Integration platform, and then having the organization react to when it fails – when they’re failing unit tests, leaving them red for months at a time, or having tests that might be flapper tests, that go red and green, actually spend time on fixing those.”

Testing

Testing is where a lot of orgs fail right away - it's not an optional thing, it is mandatory. @anders_wallgren

 

Testing is the hardest part of CD, per @jpaulreed. It's a nonfunctional requirement that we just assume works. 

 

  • jamie-ingilbyAdvice on testing in release pipelines, per Ingilby: “You have to consider everything that is considered ‘testing’ for your product – we’re not just talking about functional testing, or acceptance tests, it could be everything that’s required in order for you to build confidence in your artifact as a releasable product.”
  • j-paul-reed-c9d9-devops-podcastTesting is the hardest part of Continuous Delivery, according to Reed: “Testing is the hardest part, because we talk about unit tests and static tests and all these different types of tests. We say that we should have them – and the fact that we’re still saying that – the more interesting question to me is – it’s not that we don’t get it, it’s just that we don’t do it.”
  • juni-devops-c9d9According to Mukherjee, tests move you from “suicidal speed” to “responsible speed.” She goes on to say, “Tests are first class citizens – a test pipeline is as meaningful as anything else.”
  • Gioia-BallinTesting can save you dollars, according to Ballin: “Software testing is so important because software always contains defects, defects leads to failures, and failures potentially lead to money losses.”

Configuration, Deployment, Release

"Focus on the quality of the product and don't waste your time on the conveyor belt" @anders_wallgren

 

"treat the pipeline like a product, otherwise you aren't delivering value to customers in a sustainable way" - @samueldfell

 

  • j-paul-reed-c9d9-devops-podcastReed stresses the importance of release engineering. He says successful organizations: “[Are] caring about those none functional requirements of operational requirements, release engineering, tooling, asking how to do AB testing and feature flagging.  All these things are release engineering problems, and we’re starting to see its impact on security.”
  • juni-devops-c9d9Mukherjee: “Don’t make this a tooling problem. It’s essentially a process problem, and if you say process drives architecture and architecture drives tools, then once we lay out a cool process for ourselves, I think it’s very reasonable to then follow it up with the right architecture and the right tool set – and the tools will evolve.”
  • Gioia-BallinAdvice for when you have multiple environments before production, per Ballin: “If you have several environments and you have to pass through all the environments, the best way in my opinion is to streamline the pipeline until the very last step before production.”
  • jamie-ingilbyEveryone on the team should be akin to the release process, according to Ingilby: “It’s important that the final step is part of a step that anyone on the team feels confident in doing. There are lots of organizations that have formal, or even informal, deployment heroes that do all of the deploying and have special access – this isn’t a scalable pattern and doesn’t encourage your software architecture to be easily deployable and resilient.”

Watch the full episode here:

 

 

 

c9d9-devops-and-cd-for-embedded-iot-hardware

Want more Continuous Discussions? We hold our #c9d9’s every other Tuesday at 10 a.m. PST, which features expert panelists talking about DevOps, Continuous Delivery, Agile and more. Next Tuesday on Continuous Discussions, we’ll be talking about DevOps and CD for Non-Web Apps.

More Stories By Anders Wallgren

Anders Wallgren is Chief Technology Officer of Electric Cloud. Anders brings with him over 25 years of in-depth experience designing and building commercial software. Prior to joining Electric Cloud, Anders held executive positions at Aceva, Archistra, and Impresse. Anders also held management positions at Macromedia (MACR), Common Ground Software and Verity (VRTY), where he played critical technical leadership roles in delivering award winning technologies such as Macromedia’s Director 7 and various Shockwave products.