With so many tools, techniques, and industry trends crossing over into the mainstream, 2012 is shaping up to be one of the most interesting years in software development in a long while. The landscape is literally changing underneath us developers at the moment.
It occurs to me that in scalable systems engineering (the sort of thing I do for a living), you only tend to see Bi-fan networks and Bi-parallel ones.
This video explores DevOps best practices with cross-platform mobile apps.
My company is hiring, and I’ve been thinking a lot more about what types of question are appropriate for a phone interview, but still give enough detail to lead me to a conclusion as to whether I think the person on the other end is competent.
Sometimes while testing you may want to be able to simulate network latency, or packet loss, or low bandwidth. I have done this with Linux and tc/netem as well as with Shunra on Windows, but I had never done it on Mac OSX.
When you are running long term applications like web applications, it is good to know some statistics about them, like number of requests served, request durations, or the number active requests.
This post explores using the Munin ip_ plugin to monitor traffic to and from particular hosts using iptables.
A few weeks ago I was reading through the chef documentaion and I came across the page “Just Enough Ruby for Chef.” This inspired me to put together a quick article on how much Linux a developer needs to know.
Stopping or delaying the majority of trains (and thousands of people) for days isn't the best advertising for large releases.
DevOps stems from the idea that developers and operations should work more closely together – communicating, knowledge sharing, and collaborating to increase the quality of the systems that we build and operate.
Rsync has a simple protocol that replicates a directory (one or more) on a single server to other servers. This can be achieved in two different methods...
It’s in vogue right now to claim that there’s no such thing as a DevOps team or warn about certain kinds of teams that brand themselves DevOps but are not. Jez Humble’s doing it. Patrick Debois has made similar noises in the past.
In case you missed them last week, here's a roundup of noteworthy IT ops links, including Firefox's new approach to page load, 61 countries that can't be easily cut off from the web, and a hack that leverages Amazon's Silk browser for backdoor cloud computing.
While I’m collecting Devops Protocols which highlight healthy patterns in your organization, let’s take a quick look at the opposite: Devops anti-patterns. Would you be able to spot the warning signs when your team starts to slip in the wrong direction?
I’ve spent most of the last decade working on problems in build, deployment and release management. While automation has been a focus of mine, the hard part in these domains have always been around dependency management.
I get easily tired of doing the same thing over and over again, and will, wherever possible, script or automate it to make life easier for myself. This could be in the form of a lightweight webapp/REST api for stuff, or in this case, I used Jenkins.
Enter the real world: Your network is disconnected. DNS goes downs. Your HTTP hooks and downloads stall. Interprocess communication hangs. Here is an example how to create timeouts and notifications in a shell script.
An outstanding issue is how to get changed config data (JSON) to the nodes in a production stack that need it. Here's a brain-dump of the choices, without mentioning specific languages.
We figured that we could learn a thing or two about continuous delivery from Facebook, so we reached out to Chuck Rossi, Facebook’s first release engineer and the head of their release engineering team.
A few weeks ago Jez Humble wrote a blog post titled “There’s no such thing as a ‘DevOps team.’” Here are some thoughts about the article and what a DevOps team actually is.
I’ve been spending a bit of time recently pushing a few Puppet modules to the Forge. I started doing it as a bit of an experiment, to find out what I liked and what worked and I decided to writeup a few opinions.
So you have your executable web application in JAR with bundled Tomcat (make sure to read that one first). However there are these annoying Tomcat logs at the beginning, independent from our application logs and not customizable
I’ve heard quite a bit about the “G-WAN Application Server” over the past few weeks. Initially it was a Serverfault question that left me thinking “WTF.”
Often when inspecting an UNIX server as a sysadmin you need to find and kill a (hung) process running with a certain command line arguments.
FitNesse is a lightweight testing framework that is meant to implement integration testing in a highly collaborative way, which makes it very suitable to be used within agile software projects. With Jenkins and Maven it is quite easy to trigger the execution of FitNesse integration tests automatically.