how to exploit ci as a means of deployment
play

How to exploit CI as a means of deployment? Breakout session - PowerPoint PPT Presentation

How to exploit CI as a means of deployment? Breakout session 26-27th Feb 2018 58th CREST Open Workshop About me - Software Engineer - Interests: code quality, testing, performance, AI/ML, NN, etc... - Strengthening teams and helping them go


  1. How to exploit CI as a means of deployment? Breakout session 26-27th Feb 2018 58th CREST Open Workshop

  2. About me - Software Engineer - Interests: code quality, testing, performance, AI/ML, NN, etc... - Strengthening teams and helping them go faster - Data processing and source code analysis at Mani Sarkar @theNeomatrix369 Prodo.AI

  3. Thank you - Mark Harman - Team behind CoW - UCL - Facebook and other sponsors - Guests and attendees - Prodo.AI - Anyone else not name…

  4. Agenda No agenda really! Discussions in chronological order

  5. Why CI/CD? Because….

  6. Question? About the locality of improvement? Where does GI sit in the CI/CD pipeline?

  7. Answer!!! CI/CD pipeline can be integrated at various points (suggesting changes or repairing)

  8. Answer!!! - Local dev environment: IDE, git hooks - SCM integration - Compile & build step - Test execution step - Deployment step

  9. Deploy patch and analyse Analyse results of patch deployment! Rollback or roll-forward accordingly!

  10. Blue/green deployment Seamlessly apply patch & switch, without users noticing

  11. Canary deployment Gradually apply patch without users realising

  12. Post patch deployment analysis Study the changes and its impact after patch is applied, and feedback to the System

  13. Facebook's Buck - buckbuild.com optimising build and deployment process - caching dependencies - speed up your builds - reproducible builds - correct incremental build

  14. Solution similar to snyk.io - scan / investigate repo(s) - detect vulnerabilities - produces daily/weekly reports - alerts on new / urgent vulnerabilities - eventually raise PR against the repo(s) - contains changes version of one or more affected libraries

  15. Using ML/AI to improve CI/CD process - Using ML to learn and fix the build process: - reads build logs to understand the issue(s) to hand - https://harness.io/2017/11/can-apply-machine-learning-con tinuous-delivery/ - Gathering feedback from CI/CD and feeding it back into the system - https://www.youtube.com/watch?v=iGQpe5FxjOQ

  16. Usage history: benefits Learning from code history and CI usage history from multiple sources, how do we gather such proprietary data?

  17. Transport/transplant vulnerability patches Publish patches to implement and transport/transplant them to F/OSS projects lacking them: - CVE Id - reference to the buggy code - patch to apply to remedy the vulnerabilities

  18. Research question? Patch transport/transplant and improvement: how do we make the process automatic?

  19. Research question? GI: good for first level or last mile improvement?

  20. Research question? Apply GI on itself: automating its own repair/healing process System learning from its environment and feeding back to itself (remembering / memory)

  21. Research question? How to fix flaky tests with noisy test results?

  22. Research question? How to do multi-platform deployments? And how to do it well?

  23. GI Bots Like chatbots ! GI Bots help each other, divide and conquer CI/CD tasks! Interact with other bots and developers Network or swarm of bots !

  24. Closure: Java & JS optimisation project at Google https://developers.google.com/closure/ took over the task of compiling and optimising submitted code applying best practices and optimisation to the code by GI project abandoned after sometime

  25. Citations All images used in this presentation are owned by the respective authors, and most of them come from the https://thenounproject.com

  26. Thank you For your time and attention! We hope you have enjoyed it and found it useful!

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend