Apple includes a new prefPane in Xcode 4.1 and Lion called “Network Link Conditioner” that simplifies network simulation, and even includes a few profiles to get you started. Pretty cool feature. Especially useful for iOS developers.
Ayende Rahien describes a very interesting problem (and a fairly common one) around monitoring events that you want to happen, but don't. You might have a big problem if no error notifications are sent in these situations.
If you're having issues with Puppet scalability for a large number of workstations, Tom O'Connor has a fix to share that uses Passenger/mod_rack. O'Connor also tries a solution for fixing his problems with apt-cacher-ng server.
I’m a big fan of Ant, I’d usually choose it (or probably Gradle now) over Maven any day of the week, but there was already an existing Ant build system in place, which had grown a bit monolithic (that’s my polite way of saying it was a huge mess), so I didn’t want to go there! And besides, the first project that would be going into the new continuous delivery system was a simple Java project – way too straightforward to justify rewriting the whole ant system from scratch and improving it, so I went for Maven.
OASIS has released information about a proposed new cloud portability standards initiative: TOSCA. Take a look to see if this a standard that you would use.
This article on "Murder," a web application deployment tool, is not a “Beginners Guide” but rather a collection of d hints/tips that that can help you deploy any web application from SVN.
The traditional model is to have Ops ask Dev what metrics they need monitored & to set those up. But this is a bad practice because this often means that monitoring can’t start until the metrics are available in the code, which can take days or weeks.
Travis CI is a hosted distributed continuous integration for the open source community. It has some features that aren't found anywhere else. It is integrated with GitHub and offers first class support for multiple technologies. Today the project has added support for Java, Scala, and Groovy!
Dave Farley is co-author of the book "Continuous Delivery" which describes the use of high levels of automation and collaboration in the delivery process to ensure high quality software and a reduction in errors and late nights. His talk at Devoxx introduces the ideas of Continuous Delivery as a practical everyday process, using some of the techniques and technologies that LMAX employ in their development environment as an example.
I’ve been using Puppet to mange systems for the last four years (at least!) however a new contract has meant I’ve needed to learn Chef. A few months ago I was looking for a blog post on the differences between puppet and Chef written from an objective point of view and the fantastic @nathenharvey produced a blog post about exactly that topic. This post is more of a comment on my feelings about the two different systems and comparing the way in which they work.
I have a weird idea. What if, with every change we made to our codebase, we tried to increase our understanding of it a little bit? This is challenging because codebases always go in the opposite direction. How do you increase understanding on a large scale, then? Let's go through a few approaches, none of which are earth shattering.
Your avoidance of Technical Debt shouldn't block all other tasks because of one issue. It's better to have a partially automated solution, than none at all.
It’s literally a 15 minute job to setup automated data syncing with SQL Data Compare and see it in your TeamCity CI build list including the output describing what was affected. And of course you get all the usual TeamCity notifications if something goes wrong.
There are many advantages Jenkins can offer Apache Subversion users, one of which is the option of automatically polling Subversion repositories for changes, and creating a new build whenever changes are detected. Implementing this functionality is made easy in this tutorial.
Learn the answer to three questions regarding filename expansion in bash that you should have been considering long ago: What does the example script do if there is a file abc in the current directory? What if you run the same script in a directory without any files? And what if you run the example script and in a directory with no filename?
Collectd is a powerful tool for gathering metrics using its wide range of plugins, such as cpu, disk, load, memory, etc. But there is a lack of good frontend tools for visualizing the data collectd produces. Graphite is an amazingly powerful tool from Orbitz for visualizing metrics, but there is a lack of tools for gathering host-level stats and sending into graphite. Wouldn't it be great if we could leverage the strengths of both tools?
Using tools like Maven in the Java world or Bundle in Rubyland you can explicitly list all the dependencies and versions you need. But there are some critical dependencies that are never set. It is just too simple. However, from the point of view of the operations team the number of requirements is complex.
Moncli is a generic MONitoring and metrics collector CLIent which executes and processes requests on an external system in order to interact with the host's local information sources which are normally not available over the network. Get the full introduction to this decentralized, horizontally scalable monitoring framework from the creator and his documentation.
We have taken advantage of an under-appreciated feature of Puppet that allows us to manage our servers in a completely decentralized manner. It's called Master-less Puppet and supply_drop. In this tutorial you'll learn how and why you would use these features for Puppet.
According to one report, “applications carry on average $3.61 of technical debt per line of code”. The figure seems a bit arbitrary and absolute in a context where there can be so many variables. This review will give you a better idea of technical debt by looking at different kinds of technical debt, and how much they might cost you.
I’m currently working on a project that involves running Drupal on Amazon EC2. To save time in setting up future new VM instances, I decided to take the opportunity to learn puppet. I’m using a single VM to run the full LAMP stack and running puppet without a server by copying my puppet manifest to the VM and using puppet’s apply command to apply it locally.
In my latest post I described an approach we’d been taking when analysing how to rewrite part of an existing system so that we could build the new version in an incremental way.
One blogger has made his opinion known about DevOps recently, calling it a power grab for devs and cloud vendors who envision a "NoOps" world. I have a few opinions about what he says, but let's hear what you think.
By now most developers and IT folks recognize the groundswell behind OpenStack and why it's so awesome to be able to build your own cross-platform cloud infrastructure. If you want some simple tools, scripts and guides to get you started with OpenStack without having to learn about every aspect of the technology.
This article suggests a common solution to the common problem of users trying to access information within a company using applications that have not been developed as part of a cohesive strategy. Morgenthal looks to DevOps to foster communication between engineering and operations.