All Hail the DeployBot!


So..we made a thing. One of the fun problems we run into on a daily - shoot, almost a few times a day - is a “deploy” from IT. That is when they upload a bunch of new updates and fixes for both the website and our internal system.

Now, if you are working on something in our internal system when a “deploy” goes through, the site locks up. If you were trying to save something (like updating a shipping address or adjusting stock in storefront) it won't and everything that you did resets and everyone hates you.

We usually try to pay attention to the SparkFun IRC chat where our friends in IT let us know that it's going to happen, but that is certainly not a failproof system. No, we needed something more visual, something loud, something that says, “Stop working for like...a second." IT made a light and alarm system for this exact purpose - they call it "DeployBot" and it lights up and plays a little song when they are about to load data onto SparkFun.

And there it was - a sudden spark of genius!


Let's copy IT's DEPLOY LIGHT!

After begging them to tell us how to do it, we grabbed an MP3 trigger, a bunch-o-wires, a beefcake relay control kit, power supply, an Arduino Ethernet Pro, and one of those cool police lights.

After connecting everything in what we thought were the right places, we soldered, burnt some fingers, broke some stuff, fixed it, programmed it and marveled at what we made.

Then we hung out for a month.

And then we realized we haven't finished it.

So we plugged it in to test it and the power supply fried...and we were sad. After gutting a new power supply and adjusting the code we now have a working flashing light thing that yells at us when something important is going to happen.

Basically we have the Ethernet shield plugged into our internet jack with an IRC client listening for key words written by IT or anyone else in the company trying to inform us of anything important (Deploy, First Platoon, Meatbags). When the Ethernet shield catches something it activates the relay powering the light and the MP3 trigger with a sound effect or song. For us it blurts out “LOCKDOWN” and the light flashes and we all cry because these are terrible words with red flashing colors, but hey, it sure is cool!

Thanks to: Todd, for making the first one and troubleshooting with us all steps of the way, IT for giving us the idea in the first place, and also IT for fixing Sparkle so that our DeployBot is now no longer necessary and has been made obsolete before we even really got it started...


Comments 46 comments

  • Best product idea EVER:

    SparkFun should sell a product called a “SparkFun Surprise Box”. It would contain an unknown assortment of working products that have a combined material cost that is equal (or greater?) that the price of the box itself. What makes it so cool is that it is sold at the cheapest price SparkFun can achieve, and thus the buyer of the box gets to find a way to use some of the things that they might have not been able to afford before. This also would be a great thing to get those who didn’t win a FREEDAY ticket a second chance, while also getting them to stop complaining!

    • I think I probably speak for all of us when I say that sounds like way too much work.

      • Why? Just randomly grab a few products, make sure they are the right price, and put in a box…

        • Brennen is right, it is way too much work. The overall RoI (Return on Investment) is nearly zero. How would a profit be made? Remember, whatever you buy from SFE goes to funding future products and paying employees.

          You have to think in large quantity of units to sell. Yes in large quantities items are cheap individually, but look at the purchasing. It forces SFE to BUY more than they really need (it’s better to have less stock in a business, because the more you have in inventory the more money you waste). Plus, boxes can get expensive (Cardboard sheets are cheap, but it’s the cutting of these boxes is where you see the price).

          Overall, not a bad idea for a type of “grab bag” product, but there is no profit to be made. The only way to make money is by marking up the product to the point that you can sustain purchasing and made a significant profit. As an example, if it ends up being mostly LEDs and resistors in the box, you’d have to match the box price with the individual products. That means you’re spending TWICE as much as you should for a product. Boxes are designed to contain more expensive products or a lot of little products with their sum value > the price of the box. This is why you don’t see them ship a handful of LEDs in a 6"x6"x6" box.

          Why do companies exist? To make money. How do they make money? By sound investments in product sales, low backend costs (employees, office equipment, purchasing, etc), and pricing products to be competitive, but not so low that there is a loss.

    • Please read this and if you like it star it!

    • … Actually, a Grab Bag of the same SMD components they use on their boards would blow everything else out of the water.

      Benefits:

      • Eagle library compatibility.

      • We have SF boards we can touch and see already at home so we KNOW how the component fits and looks.

      • No need to sort through thousands of Diferent SMD packages on and online distributor.

      • I DON’T really need a 1000 unit TAPE REEL of SMD diodes…

      • cheaper parts because of volumes for us and SF.

      • If one of us makes a cool board, SF could produce it cheaply as we use the same generic SMD components they work with.

      Win Win

      Just a thought.

      —-I should clarify Iam refering to Capacitors, resistors, Power Jacks, diodes, Inductors, … passives in general—–

      (FORMATING TOOLS SUCK… OH MY GOD)

    • Wait… Doesn’t that make SFE lose a ton of money? Or have really expensive boxes?

      • I guess SFE could add a little to the price of the “SparkFun Surprise Box” but a lot less than what they do with the rest of the products they sell.

        I’ve seen many of the SFE products on other sites for half as much on SFE. It’s not that SFE is overpricing things because your paying for the income of less than 200 employees. If you think about it, if one person ran today’s SFE, each item sold would need to sold for >200% the material cost…

        • But how many of those sites are selling for a profit? Straight from the manufacturer should be the cheapest, so other sites selling SFE products at half their rate means one of two things:

          • They are selling at a loss to drum up customers
          • They took the OSHW products and made it their own in house (high doubtful)

          If one person ran SFE, it would be out of business in a matter of weeks due to people canceling and the company having to eat that loss of revenue.

          • I assume you’re only talking about “finished goods”, because if you’re talking about everything available at the store then you’re way off base if you believe that. I love sparkfun and they’re great for finding esoteric items, breakout boards, finished goods etc. But many times if you’re talking lowest-level components and general tools/supplies many of the products CAN be found elsewhere for much lower prices. If you just need an IC, LEDs, wire, resistors etc. then look at a digikey or mouser. You don’t think digikey and mouser like to make money? Of course they do.

            Sparkfun is great because of their niche products. And while you’re already placing an order, it might make sense on throwing in some hand tools or components so you don’t have to pay separate shipping from someplace else. But if one day you find that you ONLY need some components or supplies, please look around before you assume that you’ll find the best price here.

            The “surprise box” idea is perfectly sound IF you realize that they would probably use old stock, overstock items. Things that they may have made up too many of and they’re not selling well, or are reaching end-of-life as new versions come out. Of course they’re not going to take a hit on new products, but stores frequently have to move old inventory to make way for new. Heck just check out their ding ‘n dent section sometimes. Scrap boards are sold for solder practice. I think they’ve sold old soldermasks before. A year or two ago they got a huge batch of BAD microcontrollers from China and they sold them off as “curiosities” (why anybody would intentionally pay a quarter for a bricked POS uC is beyond me). Bags of sweepings of stuff that got dropped by the pick 'n place machines are sold. Sparkfun does a great job of monetizing their scrap, a “surprise box” is more of the same sort of thing. Just don’t expect to find a Raspberry Pi in there.

            • I was referring to SFE finished products because OP mentioned SFE products (was I wrong in my assumption?) I usually check Digikey, Mouser, and Newark before I check SFE for a non-finished products. Sometimes, I order the small stuff from Sparkfun because it’s a convenience to have everything come in one order than multiple.

              Let me explain why the “surprise box” is not a profitable idea, even with the dings and dent products SFE sells. One, those products are already a loss in the accounting books. Why else would they sell them for dirt cheap? They’re worthless to them, and they already took the hit in manufacturing. So, why not sell them for cheap to free up inventory space? It’s better to have less inventory than a lot of it. The fake MCUs was also another loss. However, there might have been some other business deal behind the scenes we don’t know about that might have fixed that issue, but again, they’re trying to free up inventory space for other products they need.

              The whole idea of monetizing scrap isn’t that they are able to make a quick profit (in reality they are probably just able to break even or for less of a loss).

  • what i like the most is not the idea you put together but the presentation i love the “we made a thing” and “broke things then fixed them”

    love that kind of presentation!

  • Speaking of product ideas, I want to see a kit of 4000-series logic chips like BCD counters, 7 segment display decoders, 16 to 4 line decoders, etc. Because wiring stuff together is SO MUCH MORE FUN :D and doesn’t require computer stuffs!

    • Interesting idea. For the most part, and I could be wrong here, I think people are just going to Arduino and foregoing the discrete logic, opting to do it all in code instead. It’s easier, quicker and cheaper. But I’ll still bring this up at the next engineering meeting.

      • Yeah, but the buffers (4009 and 4010), shift registers, and multiplexers/demultiplexers would be really useful to have. I know that you already carry a few of these, maybe not in the 4000 series, but I’d still love a kit.

        So much awesomes: http://en.wikipedia.org/wiki/List_of_4000_series_integrated_circuits

      • See my comment above on this page… bring that up on the same meeting you talk about…

        SPARKFUN: Y U NO SMD?

    • +1: I was thinking of suggesting a 4000-series kit just a few days ago after sifting through my meager collection of chips :(

  • I’m sure everyone at Sparkfun are kind and gentle people and would never do this, but at my work public knowledge of such a device would mean the light/siren would be going off CONSTANTLY.

    IRC Log:

    [RobertC] DEPLOY

    [RobertC] DEPLOY

    [RobertC] DEPLOY

    [RobertC] DEPLOY

    [RobertC] DEPLOY

    • Please don’t give RobertC any ideas! Tech support has to share the room with customer service!

  • I can hear the sound of awesome as it deafens me. Keep up the good work :) … and find me some ear plugs…

  • VIDEO NOW!

  • I think the song should be the favorite “stuffs about to happen” song from Inception Edith Piaf - Non, Je ne regrette rien

  • No code or schematics? I’d love to know how to hook and arduino up to an IRC chat and listen for key words! This could be extremely useful for other things!

    • I built the original deployBot about a year ago, so the Arduino code isn’t compatible with v1.0. It’s definitely a mess, and will need some work to make it compatible, but here it is.

  • Wow. that code is a bit of a mess. but wont take much to update it. PS: i’m ripping some of it (you’ll get credit) for my Aquarium manager project, as IRC is a much nicer method to manage than building an entire HTTP server to do it [current version] :)

  • Or you could dio the pragmetic and simple method that most companies do. And that’s write a brief Request For Change, inform all the people and pick a service window to implement the change – preferably in the evening when the other people are at home enjoying a beer.

  • So now you have a cool light thingy and siren with no purpose. Sounds like a good enough reason to rig a sensor to the mens bathroom stall so when some one enters it it sounds a siren (perhaps the ones that sound before a nuke test in the old videos) and makes the light do its thing? Could also hook up a gas sensor… Probably not my best idea but I laughed so here it is for your pleasure.

  • Is the guy in the black related to the girl in the first photo?

  • We have a much simpler system. I defined an update window that happens at the same time every day or week and just simply told everyone about it. No one expects to get any work done during a maintenance window. We just simply send out a reminder every now and then.

    A simple solution to a simple problem, imho.

    • We don’t always have the luxury of running deploys during the same daily or weekly time slot. Some days we will need multiple deploys, some none at all. If there’s a pressing bugfix that is causing someone a major headache, we don’t want to wait for the next maintenance window.

      We’re not quite running with continuous deployment, but we are getting darn near close to it.

      It’s also worth noting that deploying causes no customer-facing downtime; we just lock down our internal system for 30 seconds or a minute while we run it.

  • I think it’s great that sparkfun allows IT to do deploys in the middle of the day, When I worked for comcast rights after AT&T sold it to them. All of us IT guys had to work the graveyard shift in order to deploy all of our updates.

  • “in what we though were the right places” that should be “thought

    • You people really confuse me. If you told me to look at a single sentence for mistakes, I would take >10 minutes to pick that up. What is this magic?

    • Good find - thanks! Should be fixed now.

  • Change the code to check sparkle and you still get your super cool warnings!!!

    • The problem isn’t that there’s no warning - they still get that from their DeployBot. The problem is that Todd built an alert system inside Sparkle so that a more or less friendly message pops up on everybody’s screen when a Deploy is about to happen. This kind of makes DeployBot redundant. It’s still more fun than a popup, though.

      • Of course the real problem is that we still have a deployment mechanism so primitive it involves downtime at all, but I imagine we’ll fix that eventually.

      • You know this would be great for that system in California they are talking about on PBS for alerting people that an earthquake is coming. hmmm…. Put this up in a office and monitor the local earthquake (www . pnsn. org/ earthquakes/ recent -take out the spaces to see PNSN) web page. Might give you 20 seconds to get under your desk, or stop the elevator (or have the elevator move to the closest floor). According to the show I was watching they are looking for a cheap way of implementing the system.

      • I understood that the issue was “fixed” but come on who doesn’t want warning lights and sounds throughout the day, it might help IT’s self esteem.


This Week

This Month

Heartbleed

Happy Arduino Day!

SXSW Create 2014