CONTINUOUS INTEGRATION; TIPS & TRICKS

Similar documents
Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

Creating pipelines that build, test and deploy containerized artifacts Slides: Tom Adams

Jinkun Jang Samsung Electronics

Con$nuous Deployment with Docker Andrew Aslinger. Oct

NetApp Jenkins Plugin Documentation

Continuous Integration using Docker & Jenkins

Serverless Architecture meets Continuous Delivery. Andreas

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Jenkins CI for MacDevOps. Tim Sutton Concordia University, Faculty of Fine Arts Montreal

Netflix OSS Spinnaker on the AWS Cloud

By: Jeeva S. Chelladhurai

DEPLOYMENT MADE EASY!

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Continuous Delivery for Python Developers PyCon 8, 2017

Continuous Integration (CI) with Jenkins

BUILDING A GPU-FOCUSED CI SOLUTION

Docker at Lyft Speeding up development Matthew #dockercon

DevOps Foundations : Infrastructure as Code

JetBrains TeamCity Comparison

The Long Road from Capistrano to Kubernetes

Follow me!

Red Hat Quay 2.9 Use Red Hat Quay

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

ci-management Release 1.0.0

Index. Bessel function, 51 Big data, 1. Cloud-based version-control system, 226 Containerization, 30 application, 32 virtualize processes, 30 31

ThinkPalm s BreakThrough DevOps Capabilities ThinkPalm

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg

swiftenv Documentation

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

Swift Web Applications on the AWS Cloud

Pursuit of stability. Growing AWS ECS in production. Alexander Köhler Frankfurt, September 2018

MOOSE-Based Application Development on GitLab

DevOps in the Cloud A pipeline to heaven?! Robert Cowham BCS CMSG Vice Chair

DevOps Course Content

Continuous Testing at Scale

FROM VSTS TO AZURE DEVOPS

Continuous Integration with Selenium and Jenkins

DEVOPS COURSE CONTENT

An Introduction to Eclipse Che Lets build a custom cloud IDE. October 2015 Tyler Jewell, Eclipse Che Project

DevOps Online Training

/ Cloud Computing. Recitation 5 February 14th, 2017

/ Cloud Computing. Recitation 5 September 27 th, 2016

Serverless Architecture meets Continous Delivery

SCALING DRUPAL TO THE CLOUD WITH DOCKER AND AWS

Composer Best Practices Nils Private Packagist

[Docker] Containerization

Technical Comparison Sheet: ez Platform Cloud vs Other Hosting Approaches

CONTINUOUS DELIVERY IN THE ORACLE CLOUD

Cloud platforms T Mobile Systems Programming

Build & Launch Tools (BLT) Automating best practices for enterprise sites

INDIGO PAAS TUTORIAL. ! Marica Antonacci RIA INFN-Bari

TangeloHub Documentation

Container Orchestration on Amazon Web Services. Arun

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

DevOps and DevSec with

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Docker on VDS. Aurelijus Banelis

~Deep dive into Windows Containers and Docker~

Build, test and release your python packages

DevOps Agility in the Evolving Cloud Services Landscape

Installation and setup guide of 1.1 demonstrator

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

Continuous Integration & Code Quality MINDS-ON NUNO 11 APRIL 2017

iems Interactive Experiment Management System Final Report

Tenable.io Container Security. Last Updated: November 02, 2018

Running Splunk Enterprise within Docker

/ Cloud Computing. Recitation 5 September 26 th, 2017

Bitdock. Release 0.1.0

RED HAT QUAY. As part of OCP Architecture Workshop. Technical Deck

Going Journey to Docker Production. Add picture here. Bret Fisher. DevOps Consultant Docker Captain Author of Udemy's Docker Mastery

JenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

Version Control System - Git. zswu

Rubix Documentation. Release Qubole

Continuous Delivery for Cloud Native Applications

Installing and Using Docker Toolbox for Mac OSX and Windows

CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

Important DevOps Technologies (3+2+3days) for Deployment

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer

Attacking Modern SaaS Companies. Sean Cassidy

Cloud providers, tools and best practices in running Magento on Kubernetes. Adrian Balcan MindMagnet Software

What I ll be talking about. About me & bol.com The CI/CD bol.com Current setup. The future in the cloud

Automating the Build Pipeline for Docker Container

The age of orchestration

Release Pipelines in Microsoft Ecosystems

CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING IN CLOUD

Step 1: Setup a Gitlab account

DOCKER 101 FOR JS AFFICIONADOS. Christian Ulbrich, Zalari UG

Handel-CodePipeline Documentation

Leveraging Docker and CoreOS to provide always available Cassandra at Instaclustr

Microservice Deployment. Software Engineering II Sharif University of Technology MohammadAmin Fazli

CSE 331 Software Design & Implementation

Transcription:

CONTINUOUS INTEGRATION; TIPS & TRICKS

BIO

I DO TECH THINGS

I DO THINGS

I DO THINGS

BLUE OCEAN

BEEP BEEP

REFACTOR PEOPLE S HOUSES

MY TIPS & TRICKS FOR CI - CI Infrastructure - CI Architecture - Pipeline Architecture - CI Security - CI Debugging - Docker Tips

CI SERVER ARCHIECTURE - Dockerized workers? docker in docker? Can t be good for stability or speed - Availability: Set your executors to 4 per machine (odd numbers are for weirdos) - Speed: If you want pipeline speed, set your executor to 1 per build

PICK YOUR CI TOOL - Pick a CI Product - Jenkins: gives you everything you want - gotta know how to tame the beast - GoCD / DroneCD - for hipsters - it ll die out and you ll be back to Jenkins again anyway - CircleCI / Bitbucket / Gitlab - they re alright

OWN YOUR OWN SLAVE INFRA - Always use your own infra - don t use shared infra - it s slow - it s insecure - you don t control its speed or execution times - you can t SSH into the boxes and do stuff

CLOUD DOCKER BUILD - AVOID - docker hub - quay.io - google s one - slow execution time - queued - slow servers

CONTROL YOUR DOCKER BUILD - Give yourself a 32 core machine - it s cheap - AWS spot instance is like $2 / hour - Run all your docker builds in parallel - easy peasy

CONTROL YOUR DOCKER BUILD

CI INFRASTRUCTURE - Use AWS EC2 Plugin (Best) - Use terraform plugin (AWS Slaves) - Write your own bash to register your slave

CREATE YOUR OWN AMI - put things in it like: - java, docker, docker-compose, - pre-download tools/libraries you need at runtime

CHOOSE YOUR INSTANCE SIZE JENKINS MASTER (dockerized) BIG SLAVE (x1) BIG SLAVE (x1) SMALL SLAVE (x4) BIG SLAVE (x1) BIG SLAVE (x1) SMALL SLAVE (x4) BIG SLAVE (x1) BIG SLAVE (x1) SMALL SLAVE (x4)

WARMING YOUR SLAVES - docker pull commonly used images - docker pull base images (nginx, upstream?) - put some creds on the box, if you really need to

PIPELINE ARCHITECTURE

FAST BUILD INITIALISATION - Skip fetching tags (git) (defer until the end) - Shallow Clone (fast) - Jenkins Optimized Mode

SETUP A BUILD TAG - ASAP

ABSTRACT YOUR PIPELINE STEPS

ABSTRACT YOUR PIPELINE - Use bash - You can re-run the same commands on local or on CI box when debugging

TURN OFF PARTS OF YOUR PIPELINE

CHECKING FOR ON/OFF

SETUP COMMIT HOOKS

INIT

NOTIFY SLACK

INIT

INIT

LINTING

BENEFITS OF LINTING - you get early feedback on your code before even thinking about a docker build or npm install - pre-built environments where linting tools exist (docker images) - put your code into the container, run the linter, publish the results

THINGS YOU CAN LINT - terraform validate - spellcheck (check bash scripts) - cloudformation: github.com/awslabs/cfn-python-lint - docker-compose -f docker-compose.yml config - SCSS: github.com/brigade/scss-lint - TypeScript - TSLint - github.com/palantir/tslint - github.com/jakubonderka/php-parallel-lint - Dockerfile: github.com/projectatomic/dockerfile_lint

NODE - ASSET COMPILATION

USING NODE_MODULES?

USING NODE_MODULES?

PARALLEL NODE ING - don t run npm install in a Dockerfile unless you re shipping npm into prod - extract that out to bash scripts that you mount into the container and run for you

COMPILING ASSETS IN PARALLEL

PARALLEL NODE ING

DOCKER BUILDING

DOCKER BUILDING - docker build --pull -t ${BACKEND_IMAGE_FULL}. - always push these to the registry, if all docker builds steps pass, even if test suites fail - you can then pull down the images onto localhost and debug them

UNIT TESTING

UNIT TESTING - don t just run only unit tests - run prep steps for next stage

INTEGRATION / E2E TESTING

PARALLELISATION - parallelise the running of test suites - parallelise the tests within each test suite - show selenium browser scaling - show protractor settings for parallel - show VNC watcher for test runs

PARALLELISATION - parallelise the running of test suites - parallelise the tests within each test suite - show selenium browser scaling - show protractor settings for parallel - show VNC watcher for test runs

POST-PIPELINE RUNS - push docker images to registry - push git tag - push other artifacts - with some logic in place

CI DEBUGGING

POST-PIPELINE RUNS

POST-PIPELINE - DOCKER PUSH

POST-PIPELINE - DOCKER PUSH

CI DEBUGGING - CLEANUP - Don t wipe the workspace at the end of the pipeline - leave the HDD intact - Beginning of pipeline

CI SECURITY

USING SECURE CREDENTIALS

CHEERS CONSULTING / TRAINING EMAIL: PAUL@TEAM-NEEV.COM TWITTER: @DR4GOONIS 63