m CICD tool chains

Key Points


References

Reference_description_with_linked_URLs_______________________Notes______________________________________________________________






Jenkins
https://jenkins.io/
https://jenkins.io/doc/
https://jenkins.io/doc/pipeline/tour/getting-started/


https://medium.com/@gustavo.guss/quick-tutorial-of-jenkins-b99d5f5889f2Jenkins quick start article for Docker pipeline
https://www.youtube.com/watch?v=hMlr1KlazBkUsing Jenkins for builds with Docker microservices
https://medium.com/@systemglitch/continuous-integration-with-jenkins-and-github-release-814904e20776Linking Github changes to Jenkins builds - Github Release or file system changes?


Jenkins plugins
https://plugins.jenkins.io/groovyGroovy plugin
https://plugins.jenkins.io/groovy-events-listener-pluginEvents Listener plugin
https://jenkins.io/doc/pipeline/steps/azure-app-service/Run Jenkins Blue Ocean pipelines on Azure using App service


Jenkins tutorials


https://jenkins.io/doc/pipeline/steps/azure-app-service/Run Jenkins Blue Ocean pipelines on Azure using App service

https://auth0.com/blog/continuous-integration-and-continuous-deployment-with-jenkins/

auth0.com-Managing Continuous Integration Pipelines with Jenkins.pdf

blog - set up Jenkins with Blue Ocean pipelines and github integration tutorial

https://jenkins.io/doc/tutorials/build-a-java-app-with-maven/

jenkins.io-Build a Java app with Maven-Docker.pdf

Build Java app with Maven - Jenkins pipelines







Jenkins Key Concepts


Basic ideas

can run Jenkins and Jenkins pipelines on any platform including cloud

can opt to use the Cloud platform's CICD infrastructure with Jenkins ( eg Azure pipelines instead of Jenkins pipelines )




Using Jenkins Blue Ocean pipelines on Azure with App Service

https://jenkins.io/doc/pipeline/steps/azure-app-service/

Related









Potential Value Opportunities



Potential Challenges



Candidate Solutions



Hyperledger Fabric runs Jenkins with Azure pipelines


Hey Jim, this is the last updated documented piece we have https://chat.hyperledger.org/file-upload/qDgSxHpFGpiogDpYB/CICD_Proposal.pdf. The #fabric-maintainers and #cicd channels contain a ton of the deep dive details, as well as the maintainer call recording where I originally presented it. The crux of it is, we paid a fortune to LFIT to maintain Jenkins for us yearly. With that we got infrastructure and "24/7" Sev1 support. In reality, our infrastructure was running on a flaky cloud (network, I/O and CPU were all underperforming and varied day-to-day) you can see this by trying to download artifacts from Nexus, if you attempt to pull a few at the same time, bandwidth slows to a crawl. And the Sev1 support we expected was non-existent. Over the labor day holiday weekend, LFIT accidentally took Jenkins offline on Friday. We opened a Sev1 ticket and escalated it twice, we didn't even get a response until Tuesday morning, and then they fixed it, never responded to the ticket and closed it. We had to go hunt someone down to find out what happened (and learn they were the ones that broke it). So our original reason for leaving was wanting to drop LFIT for support and to get off the cloud vendor we were tied to. We also didn't want to manage the infrastructure ourselves so finding a managed solution was paramount. We originally proposed CloudBees (enterprise Jenkins) but the cost was WAAAAY out of line. Azure has provided us with all of the requirements we had, which you can see what they are in those slides, and they are giving us their solution for free. So we have gone from $300,000/year for CICD to $0/year. Which is going to allow HLF to reinvest that money in other CI services (like running Kube clusters) or providing other CICD solutions that teams might need (like CircleCI for another project) instead of Fabric eating up the entire budget
We loved the idea of being able to ensure Fabric didn't consume the entire CI budget and we could spread that around and bring more projects under the HLF CI umbrella
  • 2:53 PM
    I think $0/ year is always worth evaluating ... I assume at some point Microsoft will charge for support. I'm guessing we were using the Blue Ocean pipelines Jenkins has the Microsoft team created Azure pipelines from them ..You're right that bad support trumps good software every time. thanks for all the info.. much appreciated..
  • 2:57 PM
    So it sits on the free microsoft support tier, so we get 8x5 support for free. But we do get an 99.99% uptime in the SLA for infrastructure. Since everyone in the world is using the same instance they have to keep it up and running, as it going down doesn't just affect us. And we think the Linux Foundation has an ELA that we can tie into (which we havent yet) that will allow up to use their 24x7 support contract. But thus far we've opened ~10 tickets, and microsoft has responded to all of them the same day and fixed every problem we've had.
    But overall we are happy with what we've gotten out of it, though we do have some work to do to provide automation for some of the feature we liked in Jenkins that we don't have in AZP


2:59 PM
that's a winner every way --- congratulations !
I'll guess you can still create any Jenkins artifacts you want ( eg old style pipelines etc ) in addition to everything Microsoft has already done. So you have 2 different ways to create / run pipelines if needed

3:01 PM
Exactly, they recently released their Multi-Stage, Multi-Project Pipelines, which is the feature set we were really interested in, but it wasn't available when we started on this journey. So we are going to spend the next 2 months converting to pipelines where projects are dependent on each others success for publishing artifacts
So we can better guarantee the stability and production readiness of what we are releasing

3:03 PM
that's excellent. Sounds like there won't be any need to use the Jenkins pipelines with the Azure multi-project pipelines .. thanks




Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps