Slashdot Mirror


Google Gets Slack with Software Updates

An anonymous reader writes "While Google's open source project titled 'Slack' was released over a year ago, last week's Australian Unix Users Group Conference marks the first time that Google has ever discussed the system in public. Corporate systems administrator Michael Still helped to illuminate a little bit about how Google uses Slack and how their network of computers fits together. From the article: '"Slack is a source deployment system and it's the way we install applications on servers," Still said, adding Slack is based around a centralized configuration repository which is then deployed onto selected machines in a "pull" method. Each of the "worker" machines asks for its new configuration regularly or when a manual command is run.'"

14 of 94 comments (clear)

  1. Name infringement? by From+A+Far+Away+Land · · Score: 2, Informative

    How closely is Google Slack, tied to Slackware? If it's not, why did they choose that name? The Slashdot icon and URL suggests this story has to do with Linux.

    1. Re:Name infringement? by brunascle · · Score: 2, Informative
      i was thinking the same thing, but i dont think it's tied. from the project page:
      slack is a configuration management system designed to appeal to lazy admins (like me).
    2. Re:Name infringement? by AslanTheMentat · · Score: 2, Informative
      "Slack" isn't a trademark first of all (AFAIK anyhow), but it may very well be something of an inside joke with some of the SubGeniues that Google has working for them...

      from the wikipedia article:
      The central belief in the Church is the pursuit of Slack, which generally stands for the sense of freedom, independence, and original thinking that comes when you achieve your personal goals. The Church states that we are all born with Original Slack, but that Slack has been stolen from us by a worldwide conspiracy of normal people, or "pinks". The Church encourages originality and frowns on actions seen as pinkness, which happens when one bows down to authority and the accepted limits of society. Popular Church phrases supporting these goals are "The SubGenius Must Have Slack" and "Fuck 'Em If They Can't Take A Joke."
      The Linux distribution Slackware is named for Slack.

      Fnord!
    3. Re:Name infringement? by nsanders · · Score: 3, Informative

      It's an acronym

      S.L.A.C.K. - Sysadmins' Lazy Auto-Configuration Kit

  2. Here's the source code by Benley · · Score: 5, Informative

    Before anybody says "Hey! Where's the source?!", let me just provide a link right now:

    http://www.sundell.net/~alan/projects/slack/

    Do me a favor and don't destroy sundell's server, or he's likely to hurt me :-P

  3. Coral Cache by dch24 · · Score: 5, Informative

    I doubt it will get too slashdotted, but just in case, this is the link with the downloads coming from coral cache:

    Index of /~alan/projects/slack

    [TXT] COPYING 13-Oct-2006 00:09 1k
    [TXT] ChangeLog 13-Oct-2006 00:09 7k
    [ ] slack-0.13.1.tar.gz 08-Jan-2005 20:01 28k
    [ ] slack-0.13.2.tar.gz 09-Feb-2005 11:27 28k
    [ ] slack-0.14.0.tar.gz 13-Oct-2006 00:09 47k

    Short Description:

    slack is a configuration management system designed to appeal to lazy
    admins (like me). It's an evolution from the usual "put files in some
    central directory" that is faily common practice. It's descended from an
    earlier system I also wrote, called "subsets", and uses a multi-stage
    rsync to fix some of the problems I had there.

    Basically, it's a glorified wrapper around rsync.

    License:
    See the file COPYING.

    Getting slack:
    http://www.sundell.net/~alan/projects/slack/

    Documentation:
    Not much, but there's some in doc/

    Reporting problems:
    Send an email to <sundell (at gmail.com)>. Probably want to put
    "slack" in the subject and be patient for replies. :)

    $Id: README,v 1.5 2006/09/25 21:35:22 alan Exp $

  4. Re:Confusing title? by ardran · · Score: 5, Informative

    FWIW, the name is an acronym: SLACK - Sysadmins' Lazy Auto-Configuration Kit

  5. Kinda similar to APT by Tarlus · · Score: 3, Informative

    What they're describing there is like Debian's apt-get, or BSD's portage (also incorporated in Gentoo). Each of those technologies I listed are most commonly used to install packages from a common central repository over the internet (per distro). But, each of them can be configured to retrieve and install packages from a localized server. It's actually a very handy thing to have in large-scale networks because instead of installing and updating packages on each machine over the internet from a remote repository, you just update one machine from the internet and let all the rest of them update from it, thus cutting way back in internet usage and greatly reducing the time needed for the local machines to download and install updates.

    Sounds like Slack is a simplified version of all of that.

    --
    /* No Comment */
    1. Re:Kinda similar to APT by nsanders · · Score: 4, Informative

      Some what. We use APT here in our department. One of the big changes from SLACK is that it doesn't require you to compile packages like RPMs or DEBs. We have a couple of very large applications that take up 1-3GB and it takes a very long time to rebuild the packages. Slack negates such a need.

    2. Re:Kinda similar to APT by apachetoolbox · · Score: 2, Informative

      For the record *BSD did NOT create the gentoo portage system.

      FreeBSD = Ports Collection
      Gentoo = Portage

  6. Re:So its part of the Active Directory for Unix by Zombie+Ryushu · · Score: 4, Informative

    You mean OpenLDAP, Samba, Kerberos, Bind.
    I can give you one better.

    I use Mandriva Linux as my Domain Controllers and workstations.

    With urpmi's parallel operation with SSH support is a Godsend. See my Secure Shell server is GSSAPI enabled (Kerberos.) Because of the fact every machine is authorized by LDAP, and authenticated by Kerberos, I can do this:

    urpmi samba-server --auto --parallel dcs

    This will install Samba on all Domain Controllers

    urpmi gnumeric --auto --parallel all

    This will install gnumeric on every machine in my Domain.

    urpmi.update -a
    urpmi --auto --auto-select --parallel all

    This will update every machine I have in my Domain while resolving dependancies. There are problems with doing it this way. The big one is, under AD, updates can be pushed to offline machines. For this to work, all machiess must be online.

    Also this does not update the urpmi catalogue synthesis.

  7. BZZZT! by SanityInAnarchy · · Score: 3, Informative
    What they're describing there is like Debian's apt-get, or BSD's portage (also incorporated in Gentoo).

    Gentoo is not Ports. Ports is not Gentoo. Gentoo is inspired by BSD's ports, which is why the Gentoo package manager is named portage. But there are huge differences.

    Last I checked, Ports was primarily a distribution system. Portage is a full-fledged package manager that happens to use source packages, and happens to have a file called "make.conf".

    Each of those technologies I listed are most commonly used to install packages from a common central repository over the internet (per distro). But, each of them can be configured to retrieve and install packages from a localized server.

    True, and they mention this. Gentoo's probably the closest, but their main motivation for rolling their own is to be able to go into a filesystem and tweak it, instead of having to tweak, build an RPM (or Deb, or whatever), download that to the target machine, etc etc.

    It's also simultaneously a like cfengine, which is used to manage configurations. That is, it's not just for packages, but also for app configurations. That is, if your webserver goes down, hard, you can bring a new one up in an hour, 100% automated, and it will be configured the exact same way as the old one. If you need to add a new webserver to the cluster, same process. Want to change the config on a webserver? Test it on a local machine, then put the new httpd.conf on the Slack server, and watch all the frontend machines download it.

    Personally, I think they should've at least looked into cfengine, but APT alone is not enough. Saying APT could do it is like saying you can write a webserver in assembly -- yes, you can, but why would you want to?

    --
    Don't thank God, thank a doctor!
    1. Re:BZZZT! by drsmithy · · Score: 3, Informative

      Personally, I think they should've at least looked into cfengine [...]

      Maybe they did ? I looked into cfengine for automating our server configurations and my head asploded.

      Then I experimenting with it for a few weeks, but I could never quite grok how it was supposed to work and always had the feeling that "this is as much work as managing all the systems manually anyway". It seems extremely capable, but it's very difficult to use if you want to do anything that's more trivial than pushing (or pulling) a bunch of files (for which some rsync fiddling is _vastly_ easier).

  8. Re:Makes sense by Benley · · Score: 3, Informative

    You (and most others here) are largely missing the point. Slack is not a replacement for apt or rpm. It's more comparable to something like cfengine, although it's only vaguely in the same universe because Slack is so much simpler. Here's what goes in a slack role:

    • a preinstall script
    • a set of files (config files, little scripts, etc)
    • a "fixfiles" script for setting permissions on the files before they're moved into place
    • a postinstall script

    That's it. You don't tar it up, you don't make a package, you don't have to learn a special language to describe your changes, etc. Nothing fancy. I know those four items sound similar to what you can do with a package management system, and they are, but that's not what this is for. You don't put binaries (for example) in a Slack role - slack is for higher-level stuff like your customized config files. You *could* roll custom packages for your config files and whatnot, but that's a lot of work (relatively speaking).

    Say I've got a slack role for my web server. In the preinstall script, I'd make sure the right packages are installed, so I'd do something like "apt-get install apache2". Then in the files section, I'd have etc/apache2/httpd.conf along with whatever other config files I use for my installation. In the postinstall script I could check to see if I've just installed new config files and restart apache if I have.

    That's all there is to it - it's purposely extremely simple, to make it easier than just copying files from an existing server to a new one when you set one up. Laziness usually wins out (a law of human nature, not a statement about google sysadmins :-P), so if config management is too much work, it either has to be forced upon everybody or it won't be used. Additionally, since you don't do anything with the files and scripts you put in a slack role, you can trivially put your slack repository in Subversion or CVS or your revision control du jour, so getting people to use Slack has the nice side effect of also getting them to use revision control for their config files!

    And yes, I use it on my personal server with two admins :-P