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"
serverless
paas
"hERE IS MY CODE
run IT IN THE CLOUD for me
I DO NOT CARE HOW"
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."
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!"
"I interact with my PaaS via the CLI … the level of abstraction is 'applications', not 'containers' though"
DEMO TIME
opsupthestack
By Mick Pollard
opsupthestack
Moving operations up the stack - treating servers as a utility, just like electricity
- 4,025