Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Google Gets Slack with Software Updates

Posted by ScuttleMonkey on Tue Oct 17, 2006 02:35 PM
from the showing-off-your-toys dept.
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.'"
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • 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.
    • Re: (Score:2, Informative)

      i was thinking the same thing, but i dont think it's tied. from the project page [sundell.net]:
      slack is a configuration management system designed to appeal to lazy admins (like me).
    • by Noryungi (70322) on Tuesday October 17 2006, @02:56PM (#16475091) Homepage Journal
      You mean... Google uses Slackware Linux? AH! I knew it! :-)

      More seriously, re-read TFA summary: Google Slack is a configuration manager, and not necessarily Slackware-Linux-related. OTOH, The fact that the Google engineers used that adjective may be an hommage to the oldest surviving Linux distribution.

      "Slack" is, after all, a perfectly valid ajective in the English language. Even though it has deep religious overtones for the Subgeniuses out there... This being said, Slackware is still, for me one of the best Linux distribution out there.
      • Or maybe the googadmins have a sense of humor.


        Naming an automated package management/software update system after Slackware? That's cute.

      • Its not just slackware, there was a project to simplify slackware further called 'slack' IIRC. It died fast, but Slackware like its maintainer is still alive and kicking.

        I'd love to see slackware get a major lease in life just like its two competitors in 1996, redhat and debian. Its a crowded market there now with arch linux, puppy and many other smaller and embedded distros getting in the 'simple' Linux market. Slackware is the single best distro for learning Linux, reminds me of minix even. Everthing else
    • Re: (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 [wikipedia.org] 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 conspi

      • The Linux distribution Slackware is named for Slack.

        Not to mention the default screensaver of the flaming face of J. R. Bob Dobbs himself!

        tm

    • Re: (Score:3, Informative)

      It's an acronym

      S.L.A.C.K. - Sysadmins' Lazy Auto-Configuration Kit
  • by Benley (102665) on Tuesday October 17 2006, @02:41PM (#16474825) Homepage Journal

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

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

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

    • i bet he can serve up a 28-47K archive pretty reliably
    • sundell.net rate-limits http so the server should be ok. Hopefully. Game on, I suppose.

      (This isn't alan, just another s.n user.)
    • Coral Cache (Score:5, Informative)

      by dch24 (904899) on Tuesday October 17 2006, @02:53PM (#16475025) Journal
      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 [nyud.net] 08-Jan-2005 20:01 28k
      [ ] slack-0.13.2.tar.gz [nyud.net] 09-Feb-2005 11:27 28k
      [ ] slack-0.14.0.tar.gz [nyud.net] 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/ [sundell.net]

      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 $
          • No, it wouldn't. Because you're going to rate limit it. :-)

            But the real way to do this effectively is through UDP multicast, but few people are comfortable enough with that to create cool hacks with it unless it involves streaming media, which is a shame for us sysadmins who are stuck with unicast methods.
  • Makes sense (Score:3, Interesting)

    by frosty_tsm (933163) on Tuesday October 17 2006, @02:46PM (#16474911)
    Google has what, 700,000 servers? I would imagine that along the way they would have found existing solutions inadequate. Now they are making a version of their tool available other developers.
    • Re: (Score:2, Funny)

      they are slack to update them all by hand
    • Depends how you look at the problem.

      Microsoft have rather more than 700,000 getting updates automatically - although I'm not sure their model would be a good one to copy, when Google discover it doesn't work with a proxy server quite right, and you need a GUI on every box to run IE ;)

      Even the Debian repositories update more than 700,000 machines. But then they use a wrapper around rsync as well.....

      Indeed the article suggests that the GNU/Linux package solutions like Redhat RPM, and Debian debs, may be over
      • I'm going to go out on a limb here and say it probably works really good on a large scale.

      • Re:Makes sense (Score:4, Informative)

        by Benley (102665) on Tuesday October 17 2006, @06:35PM (#16478045) Homepage Journal

        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

        • Re: (Score:2, Interesting)

          1) The number of servers being used at any given time is pretty transparent. Do you think the average Google engineer has a way to do an actual count? Google's implementation of GFS (http://labs.google.com/papers/gfs.html) indicates that a user doesn't really have an idea of what server their using at what time... or if they're even using the same servers they were the day before. The actual filesystem is distributed and mirrored.

          Well I imagine that accounting would have an accurate idea. And I was inte

          • mapreduce would presumably make it very easy to count Google's servers in near realtime.

            Finally a program using "mapreduce" that I could write without my brain hurting.
  • by Anonymous Coward
    "I think SLackware sounds better than Microsoft" -- Pat.

    Can't google come up with their own name?

    --
    Submit goats: http://www.historymatters.org.uk/output/page97.asp [historymatters.org.uk]
  • by nsanders (208050) on Tuesday October 17 2006, @02:47PM (#16474939) Homepage
    We run Ubuntu in my department and ended up building an in-house Apt repository/svn/rsync system to maintain all our machines. We also use custom scripts that monitor NFS shares to emergency push operations. Obviously our down side is that an entire .deb package must be rebuilt for each change, but it's nice to see Google's method isn't out of this world after all.
  • I'm sure I'm not the only one who immediately thought of this [slackware.com], am I?
    I'd have chosen something else, even at the risk of it sounding ridiculous.
    Like one of my projects [sf.net], for example.
  • by Rachel Lucid (964267) on Tuesday October 17 2006, @03:03PM (#16475215) Homepage Journal
    The SubGenius must have slack.
    Google makes Slack.
    Ergo,
    Google is the corporate incarnation of 'Bob'!


    ... What? Someone had to say it!

  • Not new (Score:5, Interesting)

    Sounds very much like CFEngine http://www.cfengine.org/ [cfengine.org] with subversion?

  • Kinda similar to APT (Score:3, Informative)

    by Tarlus (1000874) on Tuesday October 17 2006, @03:17PM (#16475419)
    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.
    • by nsanders (208050) on Tuesday October 17 2006, @03:28PM (#16475637) Homepage
      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.
    • Re: (Score:3, Informative)

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

      FreeBSD = Ports Collection
      Gentoo = Portage
    • BZZZT! (Score:4, Informative)

      by SanityInAnarchy (655584) <ninja@slaphack.com> on Tuesday October 17 2006, @03:36PM (#16475757) Journal
      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?

      • Re:BZZZT! (Score:4, Informative)

        by drsmithy (35869) <drsmithyNO@SPAMgmail.com> on Wednesday October 18 2006, @06:47AM (#16482865)

        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).

        • Maybe. It didn't look that hard to me.

          For one thing, it can just as easily use rsync to transfer files as its own protocol.

          You may be right, but the fact that I don't see any mention of it except in Slashdot comments suggests that they didn't know about it, or dismissed it out of hand, not that they were attempting to write a replacement for it (even if they did). In fact, I'd imagine that if they were going to roll their own stuff anyway, it might be easier to write a cfengine wrapper than an rsync wrapper
    • BSD's portage

      It's ports, not portage. Different system in quite a few fundamental ways.
  • radmind (Score:2, Interesting)

    by Anonymous Coward
    As soon as I read this I immediately though of radmind [umich.edu], which, by the vague descriptions seems to do exactly what is going on above. I encourage everyone to take a look!
  • CFengine (Score:5, Insightful)

    by Pegasus (13291) on Tuesday October 17 2006, @04:40PM (#16476553) Homepage
    How exactly does this compare to CFengine [cfengine.org]? From the short slack description it would seem like cfengine is a much more mature solution ...
  • by oohshiny (998054) on Tuesday October 17 2006, @04:40PM (#16476561)
    There are a bunch of widely used systems like this: rdist, cfengine, fai, ... In what way is "Slack" supposed to be better? Or is this simply a case of NIH?
    • by Zombie Ryushu (803103) on Tuesday October 17 2006, @03:34PM (#16475723)
      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.
        • Re: (Score:3, Interesting)

          No, its not possible. It's true (and I know) that OpenLDAP, Kerberos, Bind and a Network File system will give you a some of the functionality of the AD, if all you want is SSO and someway to centralize Automount settings and Printers. However doing DFS is not simple, pushing updates and revoking them is not as straight forward or robust, as the other poster pointed out and there is nothing like Group Policy.

          This project seems to just provide another way to push applications to systems, presumably with the
            • yes, and the weeks you need to actually set this all up together in an enterprise (read: supportable by larger groups of people) setting, plus the months you need to actually get it all stable, reliable, supportable, and just the way your business needs it (i.e. it integrates with lots of packages used in your enterprise) are *obviously* a much better investment of your time as opposed to doing something, well, more value-add for the people you work for. Like, solve real business problems. After all Active
                • not a troll, simple fact. I manager several hundred Linux servers, as well as a couple of windows servers. And yes, he was saying he was replacing AD, and no, he wasn't using FDS. Having said that, FDS still has a way to go before it is ready to replace AD.
    • by Anonymous Coward
      The parent is clearly not a troll, folks.

      The distribution tarball is 28k. This is a tiny little one-man project that is little more than exactly what the parent said. There are 90234580928345 other dumb little rsync wrappers on sourceforge, many of which are MORE functional. Why focus on this one?

      I'm not the only one who is getting sick and tired of everyone pulling out their e-penis at the slightest mention of Google and jerking vigorously. Nor am I the only one sick of half of all slashdot articles be