119 karma · joined June 27, 2010
http://redbluemagenta.com is my website.
Want to contact me? cp[at]redbluemagenta[dot]com.
I don't blame them for not having a paycheck, I blame them for handling this incredibly terribly. If I had known there was even an exec-level review of my application, I would've acted otherwise. I don't burn bridges often, but given the amount of bullshit that exists in the tech industry, I'm okay with calling it out and risk burning bridges than to keep mum and allow shitty practices to continue.
Everything was assured - I turned down other offers either due to some bad timing or seemingly worse fit, related to waiting for this particular position to get back to me. Of course, no one should ever turn down other jobs unless you have an official offer letter in hand, but even then, an employer can rescind the offer even if you sign the paperwork.
* No web UI. This may be a blocker for business folks who want to update a blog. This is a blocker for folks who are using devices like iPad's to update blogs (which is a huge reason why I moved away from things like Octopress and moved toward things like Ghost or Wordpress.) This may be a blocker for folks who don't always have the tools on whatever machine they're using at the time in order to generate the site.
* No imposed structure. It's easier to impose a web UI form that locks folks into certain workflows than it is to just give them a git repository with all sorts of stuff strung about, with no apparent structure other than the FS structure.
You still have specializations - SDE's, systems engineers, DBA's, etc. However, if you write code and it ends up in production, you are responsible for the proper function of that code in production. As a friend of mine put it in terms of developers who don't want to be on-call: 'what, you don't trust the quality of your code?'
DevOps is simply a nicer way of just saying, "own your damn code." The corollary to this is that the organization must help you in getting to that state where you can effectively own your code - this means collaboration (so that you build maintainable systems) and building tools that enable fairly frictionless code ownership.
Keep up with CVE's, don't provide a wide attack area (so lock down interfaces to your machine and don't expose much to the world), and keep blast radii as small as possible (so even if your machine does get owned, you can possibly restrict it so it doesn't automatically mean they gain access to other systems in your network.)
Oh, and model the threats to your network/application. Make sure you're securing against the right threat. As an example, anti-malware is wholly ineffective against social engineering - maybe it's more productive to train employees and make sure that each employee doesn't have total access to all privileged systems.
(I'm trying to say that this platform is incredibly flexible, and you can reuse what's already out there. If you need support for X, Y, or Z, then you can likely write in support with Chef.)
traceroute -P udp <hostname>
This is super useful if you're probing a network that's hostile to ICMP packets - it's a lot more reliable than ICMP in many scenarios, from my experience.
It's also a bit insulting when you say that we 'in fact [do it] by hand', because sysadmins, as a whole, strive to not do that. Fine, I can see myself logging into a box and typing 'chef-client' or 'puppet' by hand - but this is too much work to be done by hand. That's why we automate. I don't know why you have this idea that we simply want to make things harder just for job security.
I'm a fan of both of those systems, because it's easier to express system state with them (and clearer, too), versus using shell scripts or what have you. I'm definitely not advocating using it as a way to deploy software, but it's definitely possible to do so (I'd likely build system packages, throw them in an internal repo, and use yum/apt to ensure software packages are up to date, or at a certain version.)
It's not the only solution, though. I've worked at shops where there have been exceptional software deployment pipelines that are absolutely not tied to a configuration management system. I'm also not a fan of using Chef or Puppet for doing a git/svn repository checkout of software.
Again, I want to reiterate my point: it's still not about the tools, but about identifying the problem you need to solve and discussing possible solutions to the problem. There's no right answer.
NT? (edit: you mean non-technical? I'm definitely not non-technical - I work as a systems engineer by trade.)
And, yes, you don't need to use Chef or Puppet to solve the software deployment problem. You use it to ensure system state, so you know you can throw software on top of it without any problems. (this can go on into a debate about golden images vs. configuration management, but I think this is a different discussion.)
That's probably true as well, though... I've been in shops without Chef or Puppet, and it's really not a big deal for me, either. The thing that stood out was the justification for not choosing Chef or Puppet, not really the fact that they weren't using it.
My point, however, was that tools should never be the focal point of solving a problem - if you recognize the problem first as a distributed locking problem, or as a configuration problem, then you can start deriving a solution (and maybe that solution might have Zookeeper in it, maybe you'll write a new piece of software, maybe you'll use Chef, etc.)
Best of luck - I'll keep an eye on it for sure.
I'm not trying to knock your product - I really do hope you get Kickstarter funding! But I just wanted to say that, to me, as a systems engineer, I only see a pretty interface, but not much value add over the other two products mentioned above
I also feel that comparing Commando.io to Puppet, Chef, or even Capistrano is disingenuous - Puppet and Chef are configuration management systems that are meant to keep your systems 'in policy', and Capistrano is meant for repeated tasks over SSH (mainly for deploying software, but it can be used for other things too.)
I took an English class in college that was probably one of my toughest classes in college (yes, about as tough as my math classes) - the professor and the TA's tore apart each paper ruthlessly, and judged them at a quality slightly below academic papers. I wrote a paper that was well formatted and had decent grammar in it, but it was summarily torn apart and was given a C on the paper, because my arguments in the paper sucked.
Also, I'd say that Philosophy is also a pretty damn tough subject in the 'soft subjects' of college. You're expected to be nearly as technical as a mathematician in your arguments, except you're writing essays/articles in prose, rather than with terse explanations and symbols. Philosophy took about as much time for me to study for as my math classes.
Pioneer Square is very low key, has cheap eats, and has lots of startups.
As I've said in the past, the consensus is simply "use a CM system," especially if you have to maintain these machines for a while (or if you have 50+ machines to take care of.) It's much better than dealing with various shell scripts or whatever else.
Puppet is also more lightweight than Chef in terms of the amount of dependencies it requires, given an already existing installation of Ruby (in fact, I think there's only one dependency: facter.) The only problem is that it comes with a lot less available language features out of the box than Chef, mainly because Puppet doesn't have a way to store and serve configurations of other machines out of the box without something backing the data store, like MySQL or CouchDB.
I've used both Puppet and Chef extensively, and they both do the same thing, they just go about it differently. (shameless plug of a blog post I wrote that compared the two: http://redbluemagenta.com/2011/05/21/puppet-vs-chef)
Also, it's almost always about how you approach configuration management - thankfully, with Puppet and Chef, you don't have to manage everything on a system in your CM right away. If you have to manage SSH authorized_key entries and it's getting annoying to do it by hand, then write a Puppet module / Chef cookbook to manage it for you. Then go on to manage /etc/hosts entries, then to deploying packages... you'll hit a point where you can reasonably rebuild a server from scratch without thinking about it.
There's other CM systems out there too: bcfg2, cfengine, etc.
I've personally taken a couple of film and English classes when I didn't need the credits - it doesn't help me one bit in my career, but at least it had helped me think of things in a different way than what I'm used to.
I usually refer to David Foster Wallace's graduation speech (http://online.wsj.com/article/SB122178211966454607.html) given to the class of 2005 at Kenyon College.