SlideShare ist ein Scribd-Unternehmen logo
1 von 34
HOW TO
DRONE.IO
IN CI/CD
WORLD
eugene.starchenko@gmail.com
https://github.com/eugenestarchenko
Cloud Engineer
https://raw.githubusercontent.com/cncf/landscape/master/landscape/CloudNativeLandscape_latest.png
CHANGE
MANAGEMENT
APPROVAL
REQUEST?!W^#
^!@!&*#?
MODERN CI/CD SERVICE
• GitHub/Bitbucket/GitLab integration
• Support for many popular languages
• Deployments (AWS, GCE, Azure, Heroku etc)
• Build configuration stored in the repository
• Builds executed in virtual machines
• Output streamed live
• Pipeline as a code
• CLI support
• Plugins
• Notifications (Email, Slack, HipChat, etc)
https://blog.heroku.com/building-tools-for-developers-heroku-ci
https://blog.heroku.com/building-tools-for-developers-heroku-ci
https://github.com/blog/2463-github-welcomes-all-ci-tools
CHANGE
MANAGEMENT
APPROVAL
REQUEST?!W^#
^!@!&*#?
Why, Jenkins,WHY?!
• Maintenance!? (over 50+ Jenkins boxes…)
• High system resource usage (java in docker)
• Broken dependencies / plugin version
compatibility
• Complicated project settings
• Groovy?!
SPEED
MATTERS -
A LOT!
DevOps is about increasing deployment frequency
while improving quality
WHY
SHOULD
I
CARE?!
E
V
O
L
U
T
I
O
N
E
V
O
L
U
T
I
O
N
It is open source under an Apache 2 license and can be installed
on your own infrastructure for free.
https://github.com/drone/drone
DRONE.IO is a Continuous Delivery
platform built on Docker, written in Go.
Docker
as an encapsulation
method
for isolating
build and deploys!
HOW IT WORKS
CHANGE
MANAGEMENT
APPROVAL
REQUEST?!W^#
^!@!&*#?
DRONE PROS
• The service is nice and simple. Easy to setup & maintain!
• Lightweight CI/CD open source system written in Go (low resources usage)
• Multi tenant system
• Scales and grows with your team (drone agents)
• Source control driven configuration (YAML)
• Build on Docker for full customization (Isolated builds)
• Access granted via Github Oauth and scoped to repo perms automatically
• No more managing multiple jenkins (use docker modules)
• Plugins can be written in any language that can read env vars
• Support database engines (MySQL/Postgres/SQLite)
• Cross compatible with Jenkins or any other Docker based CI service
CHANGE
MANAGEMENT
APPROVAL
REQUEST?!W^#
^!@!&*#?
DRONE CONS
• The single DB used for storing data on build logs etc.
could be a single point of failure unless accounted for feature
• The lack of features compared to Jenkins
• Settings are too simple, with no way to customize (no
permissions configuration)
• No crons?!
• Limitations like "This feature is only available in
the Enterprise Edition" or "Coming Soon”
INSTALLATION
• Single binary, just execute (with only a single OS dependency --
Docker)
• Docker image (preferred way). Runs on ECS cluster as a service
• Configuration through environment variables
• Scale with build agents (poll the central drone server for jobs)
• Can use RDS PostgresSQL as an alternate storage (default storage
engine is an embedded SQLite database which requires zero
installation or configuration.)
INSTALLATION
CONCEPTS
• Plugins
• Pipeline
• Services
• Matrix
• Secrets
• Volumes
• DroneCLI
• Constraints
• API
CONCEPTS - Plugins
• Plugin is actually just a Docker image
• Container created and executed as part of
pipeline
• Exit code determines success or failure
http://plugins.drone.io
https://github.com/drone-plugins
CONCEPTS - Plugins
• Example configuration for success builds on Jenkins:
CONCEPTS - Pipeline
• List of steps to build, test and deploy your code
• Success determinates by exit code
• Defined in repo root dir as .drone.yml
• Drone retrieves the .drone.yml file for your commit / branch. If
you make a change to the .drone.yml in a branch it does not
impact master.
• Parallel step execution (group)
• Local build testing & debugging with drone cli
• Skip builds by [ci skip] [skip ci] in commit
####
#DRONE example - Build and Deploy Lambda Functions | Complete Lambda project’s pipeline
####
pipeline:
build:
image: python:2.7-alpine
commands:
- apk update && apk add zip
- pip install -r requirements.txt -t .
- zip -r -9 lambda-project-${DRONE_BUILD_NUMBER}.zip *
s3-publish:
image: plugins/s3
acl: private
region: us-east-1
bucket: some-bucket
target: lambda-dir
source: lambda-project-${DRONE_BUILD_NUMBER}.zip
####
#DRONE example - Build and Deploy Lambda Functions | Complete Lambda project’s pipeline
####
deploy-lambda:
image: omerxx/drone-lambda-plugin
pull: true
function_name: my-function
s3_bucket: some-bucket
file_name: lambda-dir/revenue-report-${DRONE_BUILD_NUMBER}.zip
notify-slack-releases:
image: plugins/slack
channel: product-releases
webhook: https://hooks.slack.com/services/ABCD/XYZ
username: Drone-CI
CONCEPTS - Services
• Set of services needed in build process
(databases, ip server)
• Available on the same network namespace as
build containers
• Services are accessed using custom hostnames
• Handy for DB`s used in testing
CONCEPTS - Matrix
• Build and test a single commit against multiple
configurations
• Variables are interpolated in the yaml using the
${VARIABLE} syntax, before the yaml is parsed
• Drone executes a separate build task for each
combination in the matrix
CONCEPTS - Matrix
CONCEPTS - Matrix
CONCEPTS - Secrets
• Keep your secrets out ofVCS (credstash, aws ssm parameter-store)
• Injected into build containers as vars or plain text =)
• Secrets can be added to the Drone secret store through CLI or UI (drone
secret add  )
• Limit to specific container or all images, repository in your pipeline
• Available in the env. Mount a .env file into to container at /.env and drone
would read parameters from this file.
• Secrets in parameter expressions should be escaped (echo $${SECRET})
CONCEPTS - Constraints
• Pipeline Conditions (branch name, prefix/* , build status, github
events, environment)
• Step Conditions: limit steps build status or by Events: tag, push,
pull_request, deployment
• Execute a step using custom include and exclude logic
• Platform:[linux/*, windows/amd64]
• Limit execution of build steps by instances
• String Substitution (build metadata, ${DRONE_BRANCH///-})
• EnvVariables Reference (DRONE_COMMIT_SHA, etc.)
DO NOT BE
SEDUCED BY
THE
TECHNOLOGY!
A curates list of awesome Drone resources
https://github.com/drone/awesome-drone
https://github.com/drone-demos
https://habrahabr.ru/post/324588/
https://www.2d1o.ru/episodes/s02e02.html
https://github.com/go-training/drone-tutorial
THANK
YOU!
DEMO!
eugene.starchenko@gmail.com
https://github.com/eugenestarchenko

Weitere ähnliche Inhalte

Was ist angesagt?

[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 [OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 OpenStack Korea Community
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codeAxel Quack
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...Docker, Inc.
 
Red hat ansible automation technical deck
Red hat ansible automation technical deckRed hat ansible automation technical deck
Red hat ansible automation technical deckJuraj Hantak
 
Continuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on OpenshiftContinuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on OpenshiftCharles Moulliard
 
Running stateful services in containers - ContainerDays Boston 2016
Running stateful services in containers - ContainerDays Boston 2016Running stateful services in containers - ContainerDays Boston 2016
Running stateful services in containers - ContainerDays Boston 2016Jonas Rosland
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeAcademy
 
Kubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen FisherKubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen FisherDoiT International
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker, Inc.
 
Docker for developers on mac and windows
Docker for developers on mac and windowsDocker for developers on mac and windows
Docker for developers on mac and windowsDocker, Inc.
 
Building Your Docker Swarm Tech Stack
Building Your Docker Swarm Tech StackBuilding Your Docker Swarm Tech Stack
Building Your Docker Swarm Tech StackBret Fisher
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelDocker, Inc.
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...
Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...
Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...VMware Tanzu
 
Nginx conference 2015
Nginx conference 2015Nginx conference 2015
Nginx conference 2015ING-IT
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarCodefresh
 
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkinsdevopsdaysaustin
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDocker, Inc.
 

Was ist angesagt? (20)

[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 [OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
 
How Docker simplifies CI/CD
How Docker simplifies CI/CDHow Docker simplifies CI/CD
How Docker simplifies CI/CD
 
Red hat ansible automation technical deck
Red hat ansible automation technical deckRed hat ansible automation technical deck
Red hat ansible automation technical deck
 
Continuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on OpenshiftContinuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on Openshift
 
Running stateful services in containers - ContainerDays Boston 2016
Running stateful services in containers - ContainerDays Boston 2016Running stateful services in containers - ContainerDays Boston 2016
Running stateful services in containers - ContainerDays Boston 2016
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
 
Kubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen FisherKubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen Fisher
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
 
Docker for developers on mac and windows
Docker for developers on mac and windowsDocker for developers on mac and windows
Docker for developers on mac and windows
 
Building Your Docker Swarm Tech Stack
Building Your Docker Swarm Tech StackBuilding Your Docker Swarm Tech Stack
Building Your Docker Swarm Tech Stack
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...
Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...
Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deploym...
 
Nginx conference 2015
Nginx conference 2015Nginx conference 2015
Nginx conference 2015
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for Beginners
 

Ähnlich wie HOW TO DRONE.IO IN CI/CD WORLD

What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSRyan Crawford
 
Microservices with containers in the cloud
Microservices with containers in the cloudMicroservices with containers in the cloud
Microservices with containers in the cloudEugene Fedorenko
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson LinHanLing Shen
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersLakmal Warusawithana
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersImesh Gunaratne
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIalexanderkiel
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with ContainersAmazon Web Services
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsRightScale
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Anthony Dahanne
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for DatabricksDatabricks
 
Container orchestration k8s azure kubernetes services
Container orchestration  k8s azure kubernetes servicesContainer orchestration  k8s azure kubernetes services
Container orchestration k8s azure kubernetes servicesRajesh Kolla
 

Ähnlich wie HOW TO DRONE.IO IN CI/CD WORLD (20)

What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaS
 
Microservices with containers in the cloud
Microservices with containers in the cloudMicroservices with containers in the cloud
Microservices with containers in the cloud
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CI
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
 
Dev Ops
Dev OpsDev Ops
Dev Ops
 
Container orchestration k8s azure kubernetes services
Container orchestration  k8s azure kubernetes servicesContainer orchestration  k8s azure kubernetes services
Container orchestration k8s azure kubernetes services
 

Mehr von Aleksandr Maklakov

GraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaGraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaAleksandr Maklakov
 
AWS Certification from scratch
AWS Certification from scratchAWS Certification from scratch
AWS Certification from scratchAleksandr Maklakov
 
How to stop dreaming about security and start implementing
How to stop dreaming about security and start implementingHow to stop dreaming about security and start implementing
How to stop dreaming about security and start implementingAleksandr Maklakov
 
Secure perimeter with AWS workspaces
Secure perimeter with  AWS workspacesSecure perimeter with  AWS workspaces
Secure perimeter with AWS workspacesAleksandr Maklakov
 
How to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsHow to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsAleksandr Maklakov
 
Architecture of NoSQL distributed clusters on AWS
Architecture of NoSQL distributed clusters on AWSArchitecture of NoSQL distributed clusters on AWS
Architecture of NoSQL distributed clusters on AWSAleksandr Maklakov
 
Managing users and aws accounts
Managing users and aws accountsManaging users and aws accounts
Managing users and aws accountsAleksandr Maklakov
 

Mehr von Aleksandr Maklakov (14)

GraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaGraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS Lambda
 
AWS Certification from scratch
AWS Certification from scratchAWS Certification from scratch
AWS Certification from scratch
 
Chronicle of ReInvent 2019
Chronicle of ReInvent 2019Chronicle of ReInvent 2019
Chronicle of ReInvent 2019
 
How to stop dreaming about security and start implementing
How to stop dreaming about security and start implementingHow to stop dreaming about security and start implementing
How to stop dreaming about security and start implementing
 
Secure perimeter with AWS workspaces
Secure perimeter with  AWS workspacesSecure perimeter with  AWS workspaces
Secure perimeter with AWS workspaces
 
Going Serverless on AWS
Going Serverless on AWSGoing Serverless on AWS
Going Serverless on AWS
 
AWS Security Best Practices
AWS Security Best PracticesAWS Security Best Practices
AWS Security Best Practices
 
AWS Container services
AWS Container servicesAWS Container services
AWS Container services
 
How to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsHow to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startups
 
AWS CloudFront
AWS CloudFrontAWS CloudFront
AWS CloudFront
 
Amazon EC2 container service
Amazon EC2 container serviceAmazon EC2 container service
Amazon EC2 container service
 
Continuous operations in AWS
Continuous operations in AWSContinuous operations in AWS
Continuous operations in AWS
 
Architecture of NoSQL distributed clusters on AWS
Architecture of NoSQL distributed clusters on AWSArchitecture of NoSQL distributed clusters on AWS
Architecture of NoSQL distributed clusters on AWS
 
Managing users and aws accounts
Managing users and aws accountsManaging users and aws accounts
Managing users and aws accounts
 

Kürzlich hochgeladen

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 

Kürzlich hochgeladen (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

HOW TO DRONE.IO IN CI/CD WORLD

  • 3. CHANGE MANAGEMENT APPROVAL REQUEST?!W^# ^!@!&*#? MODERN CI/CD SERVICE • GitHub/Bitbucket/GitLab integration • Support for many popular languages • Deployments (AWS, GCE, Azure, Heroku etc) • Build configuration stored in the repository • Builds executed in virtual machines • Output streamed live • Pipeline as a code • CLI support • Plugins • Notifications (Email, Slack, HipChat, etc)
  • 7. CHANGE MANAGEMENT APPROVAL REQUEST?!W^# ^!@!&*#? Why, Jenkins,WHY?! • Maintenance!? (over 50+ Jenkins boxes…) • High system resource usage (java in docker) • Broken dependencies / plugin version compatibility • Complicated project settings • Groovy?!
  • 8. SPEED MATTERS - A LOT! DevOps is about increasing deployment frequency while improving quality
  • 12. It is open source under an Apache 2 license and can be installed on your own infrastructure for free. https://github.com/drone/drone DRONE.IO is a Continuous Delivery platform built on Docker, written in Go.
  • 13. Docker as an encapsulation method for isolating build and deploys!
  • 14.
  • 16. CHANGE MANAGEMENT APPROVAL REQUEST?!W^# ^!@!&*#? DRONE PROS • The service is nice and simple. Easy to setup & maintain! • Lightweight CI/CD open source system written in Go (low resources usage) • Multi tenant system • Scales and grows with your team (drone agents) • Source control driven configuration (YAML) • Build on Docker for full customization (Isolated builds) • Access granted via Github Oauth and scoped to repo perms automatically • No more managing multiple jenkins (use docker modules) • Plugins can be written in any language that can read env vars • Support database engines (MySQL/Postgres/SQLite) • Cross compatible with Jenkins or any other Docker based CI service
  • 17. CHANGE MANAGEMENT APPROVAL REQUEST?!W^# ^!@!&*#? DRONE CONS • The single DB used for storing data on build logs etc. could be a single point of failure unless accounted for feature • The lack of features compared to Jenkins • Settings are too simple, with no way to customize (no permissions configuration) • No crons?! • Limitations like "This feature is only available in the Enterprise Edition" or "Coming Soon”
  • 18. INSTALLATION • Single binary, just execute (with only a single OS dependency -- Docker) • Docker image (preferred way). Runs on ECS cluster as a service • Configuration through environment variables • Scale with build agents (poll the central drone server for jobs) • Can use RDS PostgresSQL as an alternate storage (default storage engine is an embedded SQLite database which requires zero installation or configuration.)
  • 20. CONCEPTS • Plugins • Pipeline • Services • Matrix • Secrets • Volumes • DroneCLI • Constraints • API
  • 21. CONCEPTS - Plugins • Plugin is actually just a Docker image • Container created and executed as part of pipeline • Exit code determines success or failure http://plugins.drone.io https://github.com/drone-plugins
  • 22. CONCEPTS - Plugins • Example configuration for success builds on Jenkins:
  • 23. CONCEPTS - Pipeline • List of steps to build, test and deploy your code • Success determinates by exit code • Defined in repo root dir as .drone.yml • Drone retrieves the .drone.yml file for your commit / branch. If you make a change to the .drone.yml in a branch it does not impact master. • Parallel step execution (group) • Local build testing & debugging with drone cli • Skip builds by [ci skip] [skip ci] in commit
  • 24. #### #DRONE example - Build and Deploy Lambda Functions | Complete Lambda project’s pipeline #### pipeline: build: image: python:2.7-alpine commands: - apk update && apk add zip - pip install -r requirements.txt -t . - zip -r -9 lambda-project-${DRONE_BUILD_NUMBER}.zip * s3-publish: image: plugins/s3 acl: private region: us-east-1 bucket: some-bucket target: lambda-dir source: lambda-project-${DRONE_BUILD_NUMBER}.zip
  • 25. #### #DRONE example - Build and Deploy Lambda Functions | Complete Lambda project’s pipeline #### deploy-lambda: image: omerxx/drone-lambda-plugin pull: true function_name: my-function s3_bucket: some-bucket file_name: lambda-dir/revenue-report-${DRONE_BUILD_NUMBER}.zip notify-slack-releases: image: plugins/slack channel: product-releases webhook: https://hooks.slack.com/services/ABCD/XYZ username: Drone-CI
  • 26. CONCEPTS - Services • Set of services needed in build process (databases, ip server) • Available on the same network namespace as build containers • Services are accessed using custom hostnames • Handy for DB`s used in testing
  • 27. CONCEPTS - Matrix • Build and test a single commit against multiple configurations • Variables are interpolated in the yaml using the ${VARIABLE} syntax, before the yaml is parsed • Drone executes a separate build task for each combination in the matrix
  • 30. CONCEPTS - Secrets • Keep your secrets out ofVCS (credstash, aws ssm parameter-store) • Injected into build containers as vars or plain text =) • Secrets can be added to the Drone secret store through CLI or UI (drone secret add ) • Limit to specific container or all images, repository in your pipeline • Available in the env. Mount a .env file into to container at /.env and drone would read parameters from this file. • Secrets in parameter expressions should be escaped (echo $${SECRET})
  • 31. CONCEPTS - Constraints • Pipeline Conditions (branch name, prefix/* , build status, github events, environment) • Step Conditions: limit steps build status or by Events: tag, push, pull_request, deployment • Execute a step using custom include and exclude logic • Platform:[linux/*, windows/amd64] • Limit execution of build steps by instances • String Substitution (build metadata, ${DRONE_BRANCH///-}) • EnvVariables Reference (DRONE_COMMIT_SHA, etc.)
  • 32.
  • 33. DO NOT BE SEDUCED BY THE TECHNOLOGY! A curates list of awesome Drone resources https://github.com/drone/awesome-drone https://github.com/drone-demos https://habrahabr.ru/post/324588/ https://www.2d1o.ru/episodes/s02e02.html https://github.com/go-training/drone-tutorial THANK YOU!