% debian-slides.tex -- Slides for Debian Enterprise talk.
% $Id$
%
% Written by Russ Allbery <rra@stanford.edu>

\documentclass[landscape,semhelv]{seminar}
\usepackage{url}
\usepackage{hyperref}

\newpagestyle{mypagestyle}%
  {Stanford University \hfil \thedate \hfil \thepage}%
  {\hfil Russ Allbery (rra@stanford.edu) \hfil}
\pagestyle{mypagestyle}

\begin{document}

\begin{slide}
  \begin{center}
    {\large Using Debian for Enterprise Infrastructure} \\
    Stanford University: A Case Study

    \vspace{1in}
    
    Russ Allbery \\
    August 3, 2010
  \end{center}
\end{slide}

\begin{slide}
  \section*{Introduction}

  \begin{itemize}
  \item Stanford University, IT Services, Infrastructure Delivery Group
  \item Maintain campus core infrastructure, including
    \begin{itemize}
    \item Authentication (Kerberos, WebAuth, Shibboleth)
    \item E-mail routing and mail delivery
    \item Web servers, including www.stanford.edu
    \item Distributed file system (AFS)
    \item Account provisioning
    \item Active Directory
    \end{itemize}
  \item Sister group does system administration for hire
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{What enterprise means}

  \begin{itemize}
  \item Large user population
  \item Diverse array of services
  \item Ubiquitous, invisible, and foundational services
  \item Diverse client platforms and requirements
  \item Diverse server and application platforms and requirements
  \item ...including Windows
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Enterprise means working with Windows}

  \begin{itemize}
  \item Windows is not your enemy in the environment
    \begin{itemize}
    \item Mutual disrespect helps no one
    \item Worth earning a reputation of being passionate but fair
    \end{itemize}
  \item Windows supports standard protocols to a surprising extent
    \begin{itemize}
    \item LDAP
    \item Kerberos
    \item Web services and Negotiate-Auth
    \end{itemize}
  \item Example of Active Directory account creation
  \item Working with Windows mandatory to get into the conversation
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Enterprise means conservative}

  \begin{itemize}
  \item Enterprise infrastructure is not the business or goal
  \item Infrastructure technology should be reliable and invisible
  \item Infrastructure problems can break your organization, but rarely
    make it succeed
  \item Organizations leery of solutions only one person understands
  \item Known quantities are lower risk
  \item Did they read about it in CIO magazine?
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Getting into the conversation}

  \begin{itemize}
  \item Debian has a lot of features, but first it has to get in the
    running
  \item Competing largely against other Linux, particularly Red Hat
  \item Large software repository is a huge selling point
  \item Pre-packaged scientific software helpful in some environments
  \item Stable release cycle and speed is perfect
  \item Stable plus backports hits a flexibility versus stability sweet
    spot
  \item Debian is both integrated and flexible
  \item Debian is not that different
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Practicality matters most}

  \begin{itemize}
  \item Does it work?
  \item Is it efficient?
  \item Does it hurt hiring?
  \item Can it build flying cars?
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Building flying cars}

  \begin{itemize}
  \item Flexibility and open standards are the key
  \item Most problems are integration problems
  \item Technology is driven by shiny products acquired by clients
  \item What's shiny is outside your control
  \item Solution needs to work, not be the thing someone read about
  \item Emphasize solutions over products
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Enterprises run many environments}

  \begin{itemize}
  \item Deploy applications on the platforms they understand
  \item Running multiple environments is expensive
  \item The expense is worth it --- sometimes
  \item Know where Debian is a fit and where it isn't
    \begin{itemize}
    \item Proprietary software with support contracts is a hard battle
    \item Well-understood commodity services are much easier
    \item Integration of obscure free software is ideal
    \end{itemize}
  \item Keep the overhead of adding Debian low
  \item Don't say no
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Enterprise means customized}

  \begin{itemize}
  \item Different problem than what stock Debian is solving
  \item Different problem even than Debian EDU
  \item Can share a lot of packages and infrastructure
  \item There will be local customization, but you can keep it minimal and
    often transient
    \begin{itemize}
    \item Postfix and address lookups
    \item Cyrus SASL and server identity
    \item OpenLDAP packaging
    \end{itemize}
  \item You must be prepared to customize
  \item An enterprise looks a lot like a Debian derivative
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Your local repository}

  \begin{itemize}
  \item Don't skimp; this is where your customization goes
  \item Stanford using debarchiver, moving to reprepro
  \item Multiple repositories for different purposes
  \item Need custom archive distributions for particular services
  \item Need good package build mechanisms
  \item Supporting multiple releases is challenging
  \item Supporting Ubuntu as an instance of that is challenging
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Package everything}

  \begin{itemize}
  \item Policy to package anything that isn't a configuration file
  \item Everything packaged means everyone learns how to package
  \item Debian packaging has a difficult learning curve
  \item People package on stable
  \item cowdancer is awesome, but people struggle when builds fail
  \item Debian's packaging documentation is first-rate, but huge
  \item Very important to have a local expert
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Installation issues}

  \begin{itemize}
  \item FAI is great
  \item FAI versus VM cloning
  \item Prefer to rebuild from scratch periodically
  \item Need to think about keying infrastructure
  \item Remote console is extremely important
  \item Need a configuration management system in addition to FAI
  \item We're very happy with Puppet
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Internal documentation is vital}

  \begin{itemize}
  \item Debian offers lots of options, which is great for Debian
  \item Inside the enterprise, document the one way to do it
  \item Packaging teams, please help!
  \item Good documentation partly addresses hiring, training concerns
  \item Debian needs work on package checking, repository analysis
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Where Debian could help}

  \begin{itemize}
  \item Java
  \item Language packaging teams, document how to package
  \item Better multi-platform build automation integrated with repo
  \item Better package checking for local package sets
  \item Better monitoring and reporting of Debian-specific things, such as
    installed packages and pending updates
  \item Packaging has a long and slow learning curve
  \item Keep doing what we're doing
  \end{itemize}
\end{slide}

\begin{slide}
  \section*{Summary}

  \begin{itemize}
  \item Enterprise is about integration, customization, and flexibility
  \item Debian packaging skills are enterprise sysadmin skills, and vice
    versa
  \item Ideology is important, but not the public face to present
  \item ...except after all other things are equal
  \item A local expert is essential
  \item Commercial software and being unusual are the biggest challenges
  \end{itemize}
\end{slide}

\begin{slide}
  \begin{center}
    {\huge Questions?}
  \end{center}
\end{slide}

\end{document}
