Florian Dambrine - Senior DevOps Engineer
@DambrineF
~ 7 Engineers
~ 20 Engineers
~ 3 Engineers
~ 12 Engineers
10.5 Engineers for 1 DevOps
~ 4 Engineers
250 servers for 1 DevOps
#!/bin/bash
Configuration Management
Dockerfiles
Ansible Container
Before 2000
2008 - 2014
2014 - 20XX
2016 - 20XX
### Dockerfile
FROM nvidia/cuda:7.5-cudnn5-devel-ubuntu14.04
RUN apt-get update \
&& apt-get -y install \
software-properties-common python-software-properties \
&& add-apt-repository -y 'ppa:ubuntu-toolchain-r/test' \
&& apt-get -y update \
&& apt-get -y install \
gcc-4.9 \
g++-4.9 \
build-essential \
cmake \
git \
wget \
python-dev \
python-pip \
python-boto python-botocore \
libssl-dev \
libcurl4-openssl-dev \
libjsoncpp-dev \
libprotobuf-dev \
libleveldb-dev \
protobuf-compiler \
libgflags-dev \
libgoogle-glog-dev \
libsnappy-dev \
liblmdb-dev \
libhdf5-serial-dev \
python$PYTHON_VERSION-dev \
unzip \
libatlas-base-dev \
gfortran \
libjasper-dev \
libgtk2.0-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libjpeg-dev
### container.yml
---
version: "2"
services:
image-science-base:
image: "nvidia/cuda:7.5-cudnn5-devel-ubuntu14.04"
roles:
- image-science-base
### roles/image-science-base/tasks/main.yml
---
- name: Install apt dependencies
apt:
state: present
name: "{{ item }}"
update_cache: yes
with_items:
- software-properties-common
- python-software-properties
- name: Add toolchain PPA
apt_repository:
state: present
repo: 'ppa:ubuntu-toolchain-r/test'
- name: Install apt packages
apt:
state: present
name: "{{ item }}"
update_cache: yes
with_items:
- gcc-4.9
- g++-4.9
- build-essential
- cmake
- git
- wget
- python-dev
- python-pip
- python-boto python-botocore
- libssl-dev
- libcurl4-openssl-dev
- libjsoncpp-dev
- libprotobuf-dev
- libleveldb-dev
- protobuf-compiler
- libgflags-dev
- libgoogle-glog-dev
- libsnappy-dev
- liblmdb-dev
- libhdf5-serial-dev
- python$PYTHON_VERSION-dev
- unzip
- libatlas-base-dev
- gfortran
- libjasper-dev
- libgtk2.0-dev
- libavcodec-dev
- libavformat-dev
- libswscale-dev
- libjpeg-dev
#!groovy
pipeline {
agent any
stages {
stage('PREPARE') {...}
stage('BUILD') {...}
stage('UNIT_TESTS') {...}
stage('INTEGRATION_TESTS - Start up containers') {...}
stage('INTEGRATION_TESTS - Run integration tests') {...}
stage('INTEGRATION_TESTS - Shutdown containers') {...}
stage('CREATE_RELEASE') {...}
stage('DEPLOY_DEV') {...}
stage('QA_DEV') {...}
stage('DEPLOY_STAGING') {...}
stage('QA_STAGING') {...}
stage('OPS_SIGNING') {...}
stage('DEPLOY_PROD') {...}
}
}
Ops Team still working on Branching strategy and will figure out exactly what to do in the coming week with them
Web Team
Image Science Team
Data Science Team
ds.ecs.va.ggops.com
image.ecs.va.ggops.com
web.ecs.va.ggops.com
/<application>/<env>
/tws/DS-123
/logoserver/dev
/vertex/stage
/adbuilder/GS-987
/adbuilder/stage
target B
target A
target C
target D
target F
target E