Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery with Drone

Continuous Delivery with Drone

The project has already outranked Jenkins on GitHub and is currently under active development. The main features of the platform, that are available out-of-the-box include the following:
* Declarative pipeline;
* Each build step is completely isolated and is executed in a separate Docker container;
* Language-agnostic plugins to extend the platform functionality.

Sources: https://github.com/vh/continuous-delivery-with-drone

Avatar for Vadim Homchik

Vadim Homchik

November 13, 2017

More Decks by Vadim Homchik

Other Decks in Programming

Transcript

  1. Requirements • Open source • Modern (containers, without legacy code)

    • Lightweight (clean) • Declarative pipeline (pipeline must be stored in git) • Easily extendable
  2. YO DAWG, I HEARD YOU LIKE DOCKER SO I PUT

    DOCKER CONTAINER IN A DOCKER CONTAINER SO YOU CAN DOCKER WHILE YOU DOCKER
  3. Pipeline pipeline: build: image: golang:1.9 commands: - go get -

    go build - go test 
 publish: image: plugins/docker repo: alconost/nitro-mailer
  4. Pipeline step build: image: golang:1.9 environment: - CGO=0 - GOOS=linux

    - GOARCH=amd64 commands: - go build - go test when: event: [ push, tag, deployment ] branch: master platform: linux/amd64
  5. Plugins pipeline: ... publish: image: plugins/docker repo: alconost/nitro-mailer tags: latest

    secrets: [ docker_login, docker_password ] notify: image: plugins/slack webhook: https://hooks.slack.com/services/... channel: nitro
  6. Caching • SFTP • S3 • Volumes Only via plugins

    Workspace Restore cache Rebuild cache Do some stuff
  7. Promoting deploy: image: maki/drone-gae project: alconost-nitro version: 1 secrets: [

    google_credentials ] when: event: deployment environment: production $ drone deploy <repo> <build> <environment>
  8. Cons • Still in beta (v0.8.1) • Weak documentation •

    Plugins directory (uncompleted) • No dashboard • No multi agent builds • Global secrets, registries only in Enterprise version ($)
  9. Pros • Open source • Easy to install / start

    using • Easy to extend (language-agnostic plugins!) • Declarative pipeline • Simple clean UI • Lightweight (very small server / agent footprints) • Best features which are not implemented! :)
  10. Project structure • Monolith (Java, Spring Boot, GWT) - Google

    App Engine • Microservices (Golang, Node.js) - Google Container Engine (Kubernetes) • Google Cloud Services • Datastore • Cloud SQL • PubSub • Storage
  11. Summary • Very easy to start and build pipeline •

    Super easy to extend functionality using plugins • Mostly stable • Startups love Drone! • Not ready for large teams