Moving OPERATIONS up the Stack

Mick Pollard

@aussielunix

in the year 2000

OPS installed:
Linux
Apache
Mysql
Php

devs BUILT the website

devs deployed the website

devs deployed the website
with ftp

in the year 2015

OPS installed:
Linux
Apache
Mysql
Php

devs BUILT the website

devs deployed the website

devs deployed the website
with automation

in the year 2016

OPS installed:
Linux
docker

DEVS:
bUILT A WEBSITE

DEVS:
craftED a Dockerfile



FROM aussielunix/lamp
MAINTAINER Mick Pollard 

COPY site/ /var/www/html/


EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
FROM centos:5

RUN yum update -y && yum install -y \
  curl \
  && yum -y clean all

RUN curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm \
    && rpm -Uvh epel-release-latest-5.noarch.rpm \
    && rm epel-release-latest-5.noarch.rpm

COPY yum.repos.d/* /etc/yum.repos.d/
ADD http://de.iplantcollaborative.org/dl/d/D293B8D0-00E6-4394-962F-E1B761B3992E/R-RM2-0.0-4.el5.noarch.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/003F9900-6F84-4C51-82C2-0DDF4BE56F36/R-biglm-0.4-1.el5.1.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/2E0A5AB2-13CA-477F-8DAB-5ACDF249A2C5/R-DBI-0.2.5-3.el5.noarch.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/9A5F7DB7-B766-4CBA-8714-4E5697CB0BBE/R-RScaLAPACK-0.5.1-10.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/DC4FAAD6-4EA4-4BCE-B910-CE10D90625B8/R-core-2.15.2-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/598A732F-E87D-4F5F-9DB4-9E33B2B8C185/R-hdf5-1.6.9-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/80617FF1-3D18-4027-9890-30EBAEBFD761/R-lmtest-0.9.29-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/EA03BF40-48F8-46AD-B6B6-FEA42104D011/R-car-1.2-16.1.el5.noarch.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/1FA9033C-850C-4F61-891B-F45CAF604C5F/R-multcomp-0.993-1.el5.noarch.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/8AEC7825-7874-4CA6-B8E6-EA26657082CE/R-msm-1.1-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/91D9AB23-5570-4B91-B02B-51364A6A9324/R-mvtnorm-0.9.9991-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/F008359B-1A10-4BD9-B9C2-3BC12358C6F2/R-systemfit-0.8-6.el5.noarch.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/B52E39E7-5239-476C-8F52-BE83375AC975/R-nws-1.7.0.1-3.el5.noarch.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/16BA1CD4-3D6B-46FA-A103-08CC2D818C76/R-zoo-1.7.6-2.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/D4DA247A-014A-479D-BD7C-9330A9A6B580/R-qtl-1.29.2-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/3C167066-B14E-4B82-A297-456A7E43D274/libRmath-devel-2.15.2-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/6C4FAA1C-FE02-4EEC-99FB-7B37049CD657/R-2.15.2-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/A967C202-D23F-4369-9766-3448336A19F8/R-devel-2.15.2-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/D172302A-8988-468C-B162-0B3F2E158657/libRmath-2.15.2-1.el5.x86_64.rpm /rpms/
ADD http://de.iplantcollaborative.org/dl/d/4A092F95-39AC-4C68-B3DA-916E7228CF78/R-library.tar.gz /R-library.tar.gz
ADD http://de.iplantcollaborative.org/dl/d/7DFDA524-3073-4A4C-9D2E-A705EFF62802/python24-libs.tar.gz /
...
...
ADD http://de.iplantcollaborative.org/dl/d/7DFDA524-3073-4A4C-9D2E-A705EFF62802/python24-libs.tar.gz /
ADD http://de.iplantcollaborative.org/dl/d/D69F7547-BD83-4FBB-A84B-C2769B0205C8/python26-libs.tar.gz /
ADD http://de.iplantcollaborative.org/dl/d/88EFCA72-091C-4DD8-8FF9-C2588CBDA1F4/BioPerl-1.6.1.tar.gz /
ADD http://de.iplantcollaborative.org/dl/d/71537FC1-6207-48FF-9583-2A7FDC3655F6/perl5-libs.tar.gz /
RUN yum update -y && yum install -y \
a2ps \
acl \
acpid \
alacarte \
alsa-lib \
alsa-lib-devel \
alsa-utils \
amtu \
anacron \
antlr \
apr \
apr-util \
aspell \
aspell-en \
at \
atk \
atk-devel \
atlas \
at-spi \
attr \
audiofile \
audiofile-devel \
audit \
audit-libs \
audit-libs-python \
authconfig \
...
...
authconfig \
authconfig-gtk \
autoconf \
autofs \
automake \
automake14 \
automake15 \
automake16 \
automake17 \
avahi \
avahi-compat-libdns_sd \
avahi-glib \
basesystem \
bash \
bc \
bind-libs \
bind-utils \
binutils \
binutils220 \
bison \
bitmap-fonts \
bitstream-vera-fonts \
blacs \
blacs-devel \
blas \
blas-devel \
blt \
bluez-gnome \
bluez-libs \
bluez-utils \
boost \
...
...
boost \
boost-devel \
bridge-utils \
brlapi \
bsf \
bsh \
bwidget \
byacc \
bzip2 \
bzip2-devel \
bzip2-libs \
cadaver \
cairo \
cairo-devel \
ccid \
cdda2wav \
cdparanoia \
cdparanoia-libs \
cdrdao \
cdrecord \
centos-release \
centos-release-notes \
cfitsio \
checkpolicy \
chkconfig \
chkfontpath \
compat-gcc-34 \
compat-gcc-34-g77 \
compat-libf2c-34 \
compat-libstdc++-33 \
comps-extras \
...
...
comps-extras \
conman \
control-center \
coolkey \
coolkey-devel \
coreutils \
cpio \
cpp \
cpuspeed \
cracklib \
cracklib-dicts \
crash \
crontabs \
cryptsetup-luks \
cscope \
ctags \
cups \
cups-libs \
curl \
curl-devel \
cvs \
cyrus-sasl \
cyrus-sasl-devel \
cyrus-sasl-lib \
cyrus-sasl-md5 \
cyrus-sasl-plain \
db4 \
db4-devel \
dbus \
dbus-devel \
dbus-glib \
...
...
dbus-glib \
dbus-glib-devel \
dbus-libs \
dbus-python \
dbus-x11 \
dcraw \
dejavu-lgc-fonts \
denyhosts \
desktop-backgrounds-basic \
desktop-file-utils \
desktop-printing \
dev86 \
device-mapper \
device-mapper-event \
device-mapper-multipath \
dhclient \
dhcpv6-client \
dialog \
diffstat \
diffutils \
dmidecode \
dmraid \
dmraid-events \
dnsmasq \
docbook-dtds \
dogtail \
dos2unix \
dosfstools \
doxygen \
dump \
dvd+rw-tools \
...
...
dvd+rw-tools \
e2fsprogs \
e2fsprogs-devel \
e2fsprogs-libs \
e4fsprogs-libs \
ebtables \
ecryptfs-utils \
ed \
eel2 \
eject \
ekiga \
elfutils \
elfutils-libelf \
elfutils-libelf-devel \
elfutils-libelf-devel-static \
elfutils-libs \
elinks \
enscript \
eog \
epel-release \
esc \
esound \
esound-devel \
ethtool \
evince \
evolution \
evolution-connector \
evolution-data-server \
evolution-webcal \
expat \
expat-devel \
...
...
expat-devel \
expect \
fbset \
fetchmail \
file \
file-roller \
filesystem \
findutils \
finger \
fipscheck \
fipscheck-lib \
firefox \
flac \
flex \
fontconfig \
fontconfig-devel \
foomatic \
fping \
freetype \
freetype-devel \
ftp \
gail \
gamin \
gamin-python \
gawk \
gcalctool \
gcc \
gcc44 \
gcc-c++ \
gcc-gfortran \
GConf2 \
...
...
GConf2 \
GConf2-devel \
gd \
gdb \
gdbm \
gdbm-devel \
gd-devel \
gdm \
gedit \
geos \
gettext \
ghostscript \
ghostscript-devel \
ghostscript-fonts \
giflib \
gimp \
gimp-data-extras \
gimp-help \
gimp-libs \
gimp-print \
gimp-print-plugin \
gimp-print-utils \
gjdoc \
glib2 \
glib2-devel \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
glx-utils \
gmp \
...
...
gmp \
gmp-devel \
gnome-applets \
gnome-audio \
gnome-backgrounds \
gnome-desktop \
gnome-doc-utils \
gnome-games \
gnome-icon-theme \
gnome-keyring \
gnome-keyring-devel \
gnome-mag \
gnome-media \
gnome-menus \
gnome-mime-data \
gnome-mount \
gnome-netstatus \
gnome-panel \
gnome-pilot \
gnome-power-manager \
gnome-python2 \
gnome-python2-applet \
gnome-python2-bonobo \
gnome-python2-canvas \
gnome-python2-desktop \
gnome-python2-extras \
gnome-python2-gconf \
gnome-python2-gnomeprint \
gnome-python2-gnomevfs \
gnome-python2-gtksourceview \
gnome-python2-libegg \
...
...
gnome-python2-libegg \
gnome-screensaver \
gnome-session \
gnome-speech \
gnome-spell \
gnome-system-monitor \
gnome-terminal \
gnome-themes \
gnome-user-docs \
gnome-user-share \
gnome-utils \
gnome-vfs2 \
gnome-vfs2-devel \
gnome-vfs2-smb \
gnome-volume-manager \
gnupg \
gnutls \
gok \
gpg-pubkey \
gphoto2 \
gpm \
gpm-devel \
graphviz \
graphviz-devel \
grep \
groff \
grub \
gsl \
gsl-devel \
gstreamer \
gstreamer-plugins-base \
...
...
gstreamer-plugins-base \
gstreamer-plugins-good \
gstreamer-tools \
gthumb \
gtk2 \
gtk2-devel \
gtk2-engines \
gtkhtml2 \
gtkhtml3 \
gtksourceview \
gucharmap \
guile \
gzip \
hal \
hal-cups-utils \
hal-devel \
hal-gnome \
hdf5 \
hdparm \
hesiod \
hesiod-devel \
hicolor-icon-theme \
hmaccalc \
hpijs \
hpijs3 \
hplip \
hplip3 \
hplip3-common \
hplip3-libs \
hsqldb \
htmlview \
...
...
htmlview \
htop \
httpd \
hwdata \
ifd-egate \
ImageMagick \
ImageMagick-devel \
imake \
im-chooser \
indent \
info \
initscripts \
iproute \
ipsec-tools \
iptables \
iptables-ipv6 \
iputils \
irda-utils \
irqbalance \
iscsi-initiator-utils \
isdn4k-utils \
iso-codes \
itcl \
itk \
iwidgets \
jasper-libs \
java-1.4.2-gcj-compat \
java-1.6.0-openjdk \
java-1.7.0-openjdk \
java-1.7.0-openjdk-devel \
jdk \
...
...
jdk \
jline \
joystick \
jpackage-utils \
js \
jwhois \
kbd \
kernel \
kernel-devel \
kernel-headers \
keyutils \
keyutils-libs \
keyutils-libs-devel \
kpartx \
krb5-auth-dialog \
krb5-devel \
krb5-libs \
krb5-workstation \
ksh \
kudzu \
kudzu-devel \
lam \
lam-libs \
lapack \
lapack-devel \
launchmail \
lcms \
lcms-devel \
less \
lftp \
libacl \
...
...
libacl \
libacl-devel \
libaio \
libao \
libart_lgpl \
libart_lgpl-devel \
libattr \
libattr-devel \
libavc1394 \
libbonobo \
libbonobo-devel \
libbonoboui \
libbonoboui-devel \
libcap \
libcap-devel \
libcroco \
libdaemon \
libdap \
libdmx \
libdrm \
libdv \
liberation-fonts \
libevent \
libexif \
libffi \
libfontenc \
libFS \
libgail-gnome \
libgcc \
libgcj \
libgcrypt \
...
...
libgcrypt \
libgcrypt-devel \
libgfortran \
libglade2 \
libglade2-devel \
libgnome \
libgnomecanvas \
libgnomecanvas-devel \
libgnomecups \
libgnome-devel \
libgnomeprint22 \
libgnomeprintui22 \
libgnomeui \
libgnomeui-devel \
libgomp \
libgpg-error \
libgpg-error-devel \
libgpod \
libgsf \
libgssapi \
libgtop2 \
libhugetlbfs \
libICE \
libICE-devel \
libicu \
libIDL \
libIDL-devel \
libidn \
libidn-devel \
libiec61883 \
libieee1284 \
...
...
libieee1284 \
libjpeg \
libjpeg-devel \
libmng \
libmusicbrainz \
libnotify \
libnotify-devel \
libogg \
libogg-devel \
liboil \
libpcap \
libpng \
libpng-devel \
libpurple \
libraw1394 \
libRmath \
libRmath-devel \
libRmath-static \
librsvg2 \
librx \
libsane-hpaio \
libselinux \
libselinux-devel \
libselinux-python \
libselinux-utils \
libsemanage \
libsepol \
libsepol-devel \
libsilc \
libSM \
libsmbclient \
...
...
libsmbclient \
libSM-devel \
libsoup \
libstdc++ \
libstdc++-devel \
libsysfs \
libtermcap \
libtermcap-devel \
libtheora \
libtiff \
libtiff-devel \
libtool \
libtool-ltdl \
libusb \
libusb-devel \
libuser \
libuser-devel \
libutempter \
libvirt \
libvolume_id \
libvorbis \
libvorbis-devel \
libwmf \
libwnck \
libwpd \
libwvstreams \
libX11 \
libX11-devel \
libXau \
libXau-devel \
libXaw \
...
...
libXaw \
libXcursor \
libXcursor-devel \
libXdamage \
libXdmcp \
libXdmcp-devel \
libXevie \
libXext \
libXext-devel \
libXfixes \
libXfixes-devel \
libXfont \
libXfontcache \
libXft \
libXft-devel \
libXi \
libXi-devel \
libXinerama \
libXinerama-devel \
libxkbfile \
libxklavier \
libxml2 \
libxml2-devel \
libxml2-python \
libXmu \
libXp \
libXp-devel \
libXpm \
libXpm-devel \
libXrandr \
libXrandr-devel \
...
...
libXrandr-devel \
libXrender \
libXrender-devel \
libXres \
libXScrnSaver \
libxslt \
libxslt-devel \
libXt \
libXt-devel \
libXTrap \
libXtst \
libXv \
libXxf86dga \
libXxf86misc \
libXxf86vm \
linuxwacom \
lm_sensors \
lockdev \
lockdev-devel \
log4cpp \
logrotate \
logwatch \
lrzsz \
lsof \
ltrace \
lucene \
lvm2 \
m2crypto \
m4 \
mailcap \
mailx \
...
...
mailx \
make \
MAKEDEV \
man \
man-pages \
mcelog \
mcstrans \
mdadm \
meanwhile \
mesa-libGL \
mesa-libGL-devel \
mesa-libGLU \
metacity \
mgetty \
microcode_ctl \
mingetty \
minicom \
mkbootdisk \
mkinitrd \
mkisofs \
mktemp \
mlocate \
module-init-tools \
mpi-selector \
mtools \
mtr \
mutt \
mysql \
nagios-common \
nagios-plugins \
nagios-plugins-all \
...
...
nagios-plugins-all \
nagios-plugins-breeze \
nagios-plugins-by_ssh \
nagios-plugins-cluster \
nagios-plugins-dhcp \
nagios-plugins-dig \
nagios-plugins-disk \
nagios-plugins-disk_smb \
nagios-plugins-dns \
nagios-plugins-dummy \
nagios-plugins-file_age \
nagios-plugins-flexlm \
nagios-plugins-fping \
nagios-plugins-game \
nagios-plugins-hpjd \
nagios-plugins-http \
nagios-plugins-icmp \
nagios-plugins-ide_smart \
nagios-plugins-ircd \
nagios-plugins-ldap \
nagios-plugins-load \
nagios-plugins-log \
nagios-plugins-mailq \
nagios-plugins-mrtg \
nagios-plugins-mrtgtraf \
nagios-plugins-mysql \
nagios-plugins-nagios \
nagios-plugins-nt \
nagios-plugins-ntp \
nagios-plugins-nwstat \
nagios-plugins-oracle \
...
...
nagios-plugins-oracle \
nagios-plugins-overcr \
nagios-plugins-perl \
nagios-plugins-pgsql \
nagios-plugins-ping \
nagios-plugins-procs \
nagios-plugins-real \
nagios-plugins-rpc \
nagios-plugins-sensors \
nagios-plugins-smtp \
nagios-plugins-snmp \
nagios-plugins-ssh \
nagios-plugins-swap \
nagios-plugins-tcp \
nagios-plugins-time \
nagios-plugins-ups \
nagios-plugins-users \
nagios-plugins-wave \
nano \
nash \
nautilus \
nautilus-cd-burner \
nautilus-extensions \
nautilus-open-terminal \
nautilus-sendto \
nc \
ncurses \
ncurses-devel \
neon \
netpbm \
netpbm-progs \
...
...
netpbm-progs \
net-snmp \
net-snmp-libs \
net-snmp-utils \
net-tools \
NetworkManager \
NetworkManager-glib \
NetworkManager-gnome \
newt \
newt-devel \
newt-perl \
nfs-utils \
nfs-utils-lib \
notification-daemon \
notify-python \
nrpe \
nscd \
nspluginwrapper \
nspr \
nspr-devel \
nss \
nss_db \
nss-devel \
nss_ldap \
nss-tools \
ntp \
ntsysv \
numactl \
numpy \
oddjob \
oddjob-libs \
...
...
oddjob-libs \
opal \
openjade \
openldap \
openldap-devel \
openoffice.org-calc \
openoffice.org-core \
openoffice.org-draw \
openoffice.org-graphicfilter \
openoffice.org-impress \
openoffice.org-math \
openoffice.org-ure \
openoffice.org-writer \
openoffice.org-xsltfilter \
opensp \
openssh \
openssh-askpass \
openssh-clients \
openssh-server \
openssl \
openssl-devel \
oprofile \
ORBit2 \
ORBit2-devel \
orca \
pam \
pam_ccreds \
pam-devel \
pam_krb5 \
pam_passwdqc \
pam_pkcs11 \
...
...
pam_pkcs11 \
pam_smb \
pango \
pango-devel \
paps \
parted \
passwd \
patch \
patchutils \
pax \
pbzip2 \
pciutils \
pciutils-devel \
pcmciautils \
pcre \
pcre-devel \
pcsc-lite \
pcsc-lite-devel \
pcsc-lite-libs \
perl \
perl-Archive-Tar \
perl-BerkeleyDB \
perl-Class-Accessor \
perl-Compress-Raw-Bzip2 \
perl-Compress-Raw-Zlib \
perl-Compress-Zlib \
perl-Config-Tiny \
perl-DateManip \
perl-DBD-MySQL \
perl-DBD-Pg \
perl-DBD-SQLite \
...
...
perl-DBD-SQLite \
perl-DBI \
perl-File-Copy-Recursive \
perl-GD \
perl-GDGraph \
perl-GDGraph3d \
perl-GDTextUtil \
perl-HTML-Parser \
perl-HTML-Tagset \
perl-IO-Zlib \
perl-libwww-perl \
perl-libxml-perl \
perl-Math-Calc-Units \
perl-Nagios-Plugin \
perl-Params-Validate \
perl-String-CRC32 \
perl-URI \
perl-XML-LibXML \
perl-XML-LibXML-Common \
perl-XML-NamespaceSupport \
perl-XML-Parser \
perl-XML-SAX \
perl-XML-Simple \
pilot-link \
pinfo \
pirut \
pkgconfig \
pkinit-nss \
planner \
pm-utils \
policycoreutils \
...
...
policycoreutils \
poppler \
poppler-utils \
popt \
porklock \
portmap \
postgresql-libs \
ppp \
prelink \
procmail \
procps \
psacct \
psmisc \
pstack \
psutils \
pwlib \
pycairo \
pygobject2 \
pygtk2 \
pygtk2-libglade \
pyorbit \
PyQt \
pyspi \
python \
python26 \
python26-libs \
python-dateutil \
python-devel \
python-elementtree \
python-imaging \
python-iniparse \
...
...
python-iniparse \
python-ldap \
python-libs \
python-matplotlib \
python-nose \
python-numeric \
python-setuptools \
python-simplejson \
python-sqlite \
python-urlgrabber \
pytz \
pyxf86config \
PyXML \
qstat \
qt \
quota \
R \
R-biglm \
R-car \
R-core \
rcs \
rdate \
R-DBI \
R-devel \
rdist \
readahead \
readline \
readline-devel \
redhat-artwork \
redhat-logos \
redhat-lsb \
...
...
redhat-lsb \
redhat-menus \
redhat-rpm-config \
R-hdf5 \
rhgb \
rhino \
rhpl \
rhpxl \
rhythmbox \
R-lmtest \
R-msm \
rmt \
R-multcomp \
R-mvtnorm \
rng-utils \
R-nws \
rootfiles \
rpm \
rpm-build \
rpm-devel \
rpm-libs \
rpm-python \
rp-pppoe \
R-qtl \
R-RM2 \
R-RScaLAPACK \
rsh \
rsync \
R-systemfit \
R-zoo \
sabayon-apply \
...
...
sabayon-apply \
samba-client \
samba-common \
sane-backends \
sane-backends-libs \
sane-frontends \
scalapack \
screen \
scrollkeeper \
SDL \
sed \
selinux-policy \
selinux-policy-targeted \
sendmail \
setarch \
setools \
setserial \
setup \
setuptool \
sgml-common \
sgpio \
shadow-utils \
shared-mime-info \
sip \
slang \
slang-devel \
slrn \
smartmontools \
sos \
sound-juicer \
sox \
...
...
sox \
specspo \
speex \
splint \
sqlite \
sqlite-devel \
startup-notification \
startup-notification-devel \
strace \
stunnel \
subversion \
sudo \
sun-javadb-client \
sun-javadb-common \
sun-javadb-core \
sun-javadb-demo \
sun-javadb-docs \
sun-javadb-javadoc \
swig \
symlinks \
synaptics \
sysfsutils \
sysklogd \
syslinux \
sysstat \
system-config-date \
system-config-display \
system-config-language \
system-config-network \
system-config-network-tui \
system-config-printer \
...
...
system-config-printer \
system-config-printer-libs \
system-config-services \
system-config-soundcard \
system-config-users \
systemtap \
systemtap-client \
systemtap-devel \
systemtap-runtime \
SysVinit \
talk \
tar \
tcl \
tcl-devel \
tcllib \
tclx \
tcpdump \
tcp_wrappers \
tcsh \
telnet \
termcap \
tetex \
tetex-dvips \
tetex-fonts \
tetex-latex \
texinfo \
texinfo-tex \
time \
tix \
tk \
tk-devel \
...
...
tk-devel \
tkinter \
tmpwatch \
tmux \
tomcat5-jsp-2.0-api \
tomcat5-servlet-2.4-api \
totem \
traceroute \
tree \
trousers \
ttmkfdir \
tzdata \
tzdata-java \
udev \
udftools \
unix2dos \
unixODBC \
unixODBC-libs \
unzip \
urw-fonts \
usbutils \
usermode \
usermode-gtk \
util-linux \
valgrind \
vconfig \
vim-common \
vim-enhanced \
vim-minimal \
vino \
vixie-cron \
...
...
vixie-cron \
vnc-server \
vorbis-tools \
vte \
wdaemon \
wget \
which \
wireless-tools \
words \
wpa_supplicant \
wvdial \
xalan-j2 \
xdg-utils \
xen-libs \
xerces-c \
xerces-j2 \
xkeyboard-config \
xml-common \
xml-commons \
xml-commons-apis \
xml-commons-resolver \
xmlsec1 \
xmlsec1-devel \
xorg-x11-apps \
xorg-x11-drivers \
xorg-x11-drv-acecad \
xorg-x11-drv-aiptek \
xorg-x11-drv-ast \
xorg-x11-drv-ati \
xorg-x11-drv-calcomp \
xorg-x11-drv-cirrus \
...
...
xorg-x11-drv-cirrus \
xorg-x11-drv-citron \
xorg-x11-drv-digitaledge \
xorg-x11-drv-dmc \
xorg-x11-drv-dummy \
xorg-x11-drv-dynapro \
xorg-x11-drv-elo2300 \
xorg-x11-drv-elographics \
xorg-x11-drv-evdev \
xorg-x11-drv-fbdev \
xorg-x11-drv-fpit \
xorg-x11-drv-hyperpen \
xorg-x11-drv-i810 \
xorg-x11-drv-jamstudio \
xorg-x11-drv-joystick \
xorg-x11-drv-keyboard \
xorg-x11-drv-magellan \
xorg-x11-drv-magictouch \
xorg-x11-drv-mga \
xorg-x11-drv-microtouch \
xorg-x11-drv-mouse \
xorg-x11-drv-mutouch \
xorg-x11-drv-nv \
xorg-x11-drv-palmax \
xorg-x11-drv-penmount \
xorg-x11-drv-qxl \
xorg-x11-drv-s3 \
xorg-x11-drv-s3virge \
xorg-x11-drv-savage \
xorg-x11-drv-siliconmotion \
xorg-x11-drv-sis \
...
...
xorg-x11-drv-sis \
xorg-x11-drv-sisusb \
xorg-x11-drv-spaceorb \
xorg-x11-drv-summa \
xorg-x11-drv-tdfx \
xorg-x11-drv-tek4957 \
xorg-x11-drv-trident \
xorg-x11-drv-ur98 \
xorg-x11-drv-vesa \
xorg-x11-drv-vga \
xorg-x11-drv-via \
xorg-x11-drv-vmmouse \
xorg-x11-drv-vmware \
xorg-x11-drv-void \
xorg-x11-drv-voodoo \
xorg-x11-filesystem \
xorg-x11-fonts-100dpi \
xorg-x11-fonts-75dpi \
xorg-x11-fonts-base \
xorg-x11-fonts-ISO8859-1-100dpi \
xorg-x11-fonts-ISO8859-1-75dpi \
xorg-x11-fonts-misc \
xorg-x11-fonts-truetype \
xorg-x11-fonts-Type1 \
xorg-x11-font-utils \
xorg-x11-proto-devel \
xorg-x11-server-utils \
xorg-x11-server-Xnest \
xorg-x11-server-Xorg \
xorg-x11-server-Xvfb \
xorg-x11-twm \
...
...
xorg-x11-twm \
xorg-x11-utils \
xorg-x11-xauth \
xorg-x11-xfs \
xorg-x11-xinit \
xorg-x11-xkb-utils \
xsane \
xsane-gimp \
xsri \
xterm \
xulrunner \
xulrunner-devel \
xz \
xz-libs \
yelp \
ypbind \
yp-tools \
yum \
yum-fastestmirror \
yum-metadata-parser \
yum-updatesd \
yum-utils \
zenity \
zip \
zlib \
zlib-devel \
&& yum -y clean all

RUN yum install --nogpgcheck -y rpms/*.rpm && yum -y clean all
RUN yum install -y gd gd-devel && yum -y clean all
RUN tar -xzf /R-library.tar.gz && tar -xzf /python24-libs.tar.gz && tar -xzf /python26-libs.tar.gz
...
...
RUN tar -xzf /R-library.tar.gz && tar -xzf /python24-libs.tar.gz && tar -xzf /python26-libs.tar.gz

# Parts of this are borrowed from https://registry.hub.docker.com/u/genomicpariscentre/bioperl/dockerfile/
RUN bash -c "curl -L http://cpanmin.us | perl - --self-upgrade"
RUN cpanm -n CPAN::Meta \
        Convert::Binary::C \
        readline \
        Cairo \
        GD \
        GD::Graph \
        GD::Graph::smoothlines \
        GraphViz \
        Term::ReadKey \
        YAML \
        Digest::SHA \
        Module::Build \
        ExtUtils::MakeMaker \
        Test::More \
        Data::Stag \
        Config::Simple \
        Statistics::Lite \
        Statistics::Descriptive \
        Test::Most \
        Algorithm::Munkres \
        Array::Compare Clone \
        PostScript::TextBlock \
        SVG \
        SVG::Graph \
        Set::Scalar \
        Sort::Naturally \
        Graph \
...
...
        Graph \
        GraphViz \
        HTML::TableExtract \
        Convert::Binary::C \
        Math::Random \
        Error \
        Spreadsheet::ParseExcel \
        XML::Parser::PerlSAX \
        XML::SAX::Writer \
        XML::Twig XML::Writer
RUN cpanm -v -n /BioPerl-1.6.1.tar.gz

ADD http://download.osgeo.org/gdal/gdal-1.8.1.tar.gz /root/
RUN cd /root/ && tar xzf /root/gdal-1.8.1.tar.gz && cd gdal-1.8.1 && ./configure && make && make install
RUN tar -xzf /perl5-libs.tar.gz

COPY irodsEnv /root/.irods/.irodsEnv

ENV PATH=/usr/kerberos/bin:/usr/local2/icommands:/usr/local2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin:/usr/bin \
    irodsEnvFile=/root/.irods/.irodsEnv
VOLUME ["/usr/local2/", "/usr/local3/", "/data2/", "/condor01/"]
CMD ["/bin/bash"]

ARG git_commit=unknown
LABEL org.iplantc.de.backwards-compat.git-ref="$git_commit"

1187 sloc

DEVS:
craftED a Dockerfile



FROM aussielunix/lamp
MAINTAINER Mick Pollard 

COPY site/ /var/www/html/


EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]


FROM aussielunix/lamp
MAINTAINER Mick Pollard 

WORKDIR /var/www/html/
RUN git clone https://github.com/aussielunix/website.git ./

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

DEVS:
rAn UP a Docker container



lunix@boran]  -> docker build .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM aussielunix/lamp
 ---> bedece1f06ca
...
...

...
 ---> 78976f801ab4
Step 5 : RUN git clone https://github.com/aussielunix/website.git ./
 ---> Running in 669ea12d289d

Cloning into '.'...
...
...

...

Cloning into '.'...

fatal: could not read Username for 'https://github.com': \
No such device or address
The command '/bin/sh -c git clone https://github.com/aussielunix/website.git ./' 
returned a non-zero code: 128


FROM aussielunix/lamp
MAINTAINER Mick Pollard 

WORKDIR /var/www/html/
RUN git clone https://github.com/aussielunix/website.git ./

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

things haven't really changed in ~2 decades

lamp then is

still lamp now

SERVERS, OPERATING SYSTEMS ETC ARE MOSTLY SOLVED

except devs now

have more ops work

than they used to

except devs now

have more ops work

than they used to

but seriously

OPS should be creating LESS work for devs
NOT MORE !

IT IS TIME
we TREAT SERVERS

like A UTILITy

 

electricity is a utility

it has an api

240VOLTS/10AMPS
"IT JUST WORKS"

 

MOST DON'T CARE HOW

IT IS PRODUCED
but if you do,
consider working at a
utilities company

 

serverless

serverless
Faas

"hERE IS MY FUNCTION
run IT IN THE CLOUD for me
I DO NOT CARE HOW"

https://twitter.com/???

serverless
paas

"hERE IS MY CODE
run IT IN THE CLOUD for me
I DO NOT CARE HOW"

https://twitter.com/onsijoe

cloud.gov.au

~110 DEVELOPERS

~11 TEAMS

2 operations staff !

@auxesis
@aussielunix
@m_richo

wHAT DO aPPLICATION DEVELOPMENT TEAMS NEED?

A WAY TO GET THEIR CODE RUNNING IN FRONT OF USERS !

INSIGHT INTO HOW THAT CODE IS WORKING OR FAILING

SAFETY
&
CONFIDENCE

MAKE DEPLOYMENTS
SIMPLE, FAST
&
PAINLESS

HELP TEAMS MAKE
THE JOURNEY
TO GO LIVE

"Engineering velocity requires tools and guardrails to empower engineers to work without fear."

https://twitter.com/charleshumble

RELEASES ARE A NON EVENT

zero downtime
deploys

pAAs eliminates classes of problems

pAAs allows your teams to focus on building things that matter

"As a developer, CloudFoundry means that I NO longer have to care about details of hostnames,VMs, IP addresses,ports, containers, file systems!"

https://twitter.com/mdcarlson

"I interact with my PaaS via the CLI … the level of abstraction is 'applications', not 'containers' though"

https://twitter.com/simonbrown

DEMO TIME

opsupthestack

By Mick Pollard

opsupthestack

Moving operations up the stack - treating servers as a utility, just like electricity

  • 2,283

More from Mick Pollard