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

how to exploit ci as a means of deployment
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

How to exploit CI as a means of deployment?

Breakout session 26-27th Feb 2018 58th CREST Open Workshop

slide-2
SLIDE 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

Prodo.AI

Mani Sarkar @theNeomatrix369

slide-3
SLIDE 3

Thank you

  • Mark Harman
  • Team behind CoW
  • UCL
  • Facebook and other sponsors
  • Guests and attendees
  • Prodo.AI
  • Anyone else not name…
slide-4
SLIDE 4

Agenda No agenda really! Discussions in chronological order

slide-5
SLIDE 5

Why CI/CD? Because….

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

Answer!!!

  • Local dev environment: IDE, git hooks
  • SCM integration
  • Compile & build step
  • Test execution step
  • Deployment step
slide-9
SLIDE 9

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

slide-10
SLIDE 10

Seamlessly apply patch & switch, without users noticing

Blue/green deployment

slide-11
SLIDE 11

Canary deployment Gradually apply patch without users realising

slide-12
SLIDE 12

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

slide-13
SLIDE 13

Facebook's Buck - buckbuild.com

  • ptimising build and deployment process
  • caching dependencies
  • speed up your builds
  • reproducible builds
  • correct incremental build
slide-14
SLIDE 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
slide-15
SLIDE 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
slide-16
SLIDE 16

Usage history: benefits

Learning from code history and CI usage history from multiple sources, how do we gather such proprietary data?

slide-17
SLIDE 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
slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 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)

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

GI Bots

slide-24
SLIDE 24

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

Closure: Java & JS optimisation project at Google

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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