- Resharper 8 is out, making Visual Studio usable [link]
- Also YouTrack 5, I’ve never had the pleasure of that particular issue manager [link]
- I’d love to go to FutureStack, New Relic’s user conference [link]
- Heroku have announced a lab of their pipeline support. At Neo we have several apps deployed on Heroku, so I road tested it this morning. Does what it says on the tin, and shows what commit went where. There’s a challenge for some of the addon providers who offer a similar service. [link]
(A guest post by Dan Gordon of Electric Cloud)
Enterprises are building, testing, and deploying software faster and more frequently now than at any point in the past. Faced with unprecedented demands, many of these software development organizations are realizing their rollout processes are haphazard, at best. These improvised procedures lead directly to heightened numbers of costly, time-consuming errors that degrade their business agility. Production deployments remain the last mile hurdle in the agile world due to the disconnect between the Dev and Ops teams.
Fortunately, there is a well-regarded, proven collection of best practices and supporting technologies that can go a long way towards making the software deployment process more streamlined, safer and more robust. These fail-safe software deployment techniques deliver an impressive array of business and technological advantages.
- Design for manufacturability – Transform your software design and implementation procedures into a more mechanized, repeatable series of steps. This help make test results from earlier phases in the delivery cycle relevant for later stages, and lets you perform consistent test in many scenarios over time.
- Leverage the power of automaton for your software delivery process – Eliminate the unrefined, often manual deployment processes that plaque so many software development organizations. Comprehensive automation technology can have a meaningful impact on productivity and accuracy, just as it has for many other sophisticated businesses practices.
- Design with failure in mind – The bottom line is failures will occur despite your best efforts, so prepare for inevitable breakdowns. Determine what is an acceptable failure, and by acceptable, we mean a failure that doesn’t need to halt the entire deployment process. Define success and failure thresholds by tier, and allow for partial deployments to complete successfully.
- Test early and test often – Build a consistent deployment model and test it throughout the entire software deployment lifecycle. Your software deployment platform should reside at the heart of your testing efforts. Taking this approach uncovers any issues well before a crisis develops and lets you evolve the process so your production deployments are smooth and fail-safe.
- Zero in on defects efficiently – Identifying and correction defects tends to be laborious and inadequate, but fortunately, specialized automation solutions are great for isolating and resolving these problems. This makes troubleshooting complex deployments much more efficient, and results in faster time-to-market.
These techniques can make your software deployment experience faster, smoother and more reliable. By transforming complex software delivery processes into fail-safe production deployments, you will benefit from increased DevOps collaboration, reduced cost and a higher quality of delivered software.
Dan Gordon is a Product Manager at Electric Cloud. Dan brings over 20 years of experience in the IT software industry. At Electric Cloud, Dan is responsible for product strategy, product marketing, tactical alignment and execution with product development, sales and pre-sales enablement and support. Previously, Dan was a product manager and systems architect for the enterprise IT automation software business within HP Software. Dan has also held managing and systems engineering roles at Opsware and Sun Microsystems. Dan holds a bachelor of science in information and computer science from the University of California, Irvine.
Happy summer, Northern Hemisphere dwellers. There’s a break in the rain at Build Doctor South HQ, have some news:
- IBM acquired UrbanCode. I guess Build Forge wasn’t addressing the DevOps market the way UrbanCode had. Top marks to Maciej, Eric, and the guys for a) building multi-stage CI in 2006, and b) pivoting and responding to DevOps. One consequence of the deal is, they are no longer blog sponsor for The Build Doctor. Thanks for your support over the years, guys! [Link]
- Team City 8 is out, and it’s more affordable. It looks like they focussed on making it a load more usable and faster. [Link]
- Sonatype just launched Nexus Pro CLM edition, which allows you to set per-environment policies for artifact promotion. They are still banging the security drum. It makes me wonder about the viability of an attack via the M2 repository. In other news, would you like to use my new meta logging library that delegates to every other logger in the world? It doesn’t phone home, honest. [Link]
- Electric Deploy now integrates with PTC Integrity. I have to admit that I’d never heard of the latter tool. [Link]
- Atlassian have release Bamboo 5, with better support for Release Candiates, deploy jobs, and features (authorization and communication) about those. Looks useful. I’m going to investigate further. [Link]
- Speaking of Bamboo, there’s a security advisory, get your upgrades in. [Link]
- Sauce Labs have announced multi user accounts, and a round of funding – congratulations! [Link]
- CloudBees have a new LTS release of Jenkins, with an emphasis on availablity, including the ability to restart aborted builds [Link]
My blogging break has been so long, I feel like a vampire emerging from the grave in a Hammer Horror film.
I’m interrupting my relentless working day to announce that I’ll be at:
ASWEC 2013 – I’ll be presenting the Neo4j Tutorial on the 4th of June Agile Australia – I’ll be doing a talk that mixes up Cloud, PaaS, Devops and NoSQL. Bingo!
- I’ve proposed a talk for DevOps Down Under in July
- I’ll also be at Graph Connect San Francisco
Back to flogging Ruby code.
Update: for various reasons, both the struck out appearances are cancelled. Back to flogging ruby code. (I do actually use flog).
- Bamboo 4.4 includes loads of performance tuning, and virtual private cloud support for build agents.
- If you haven’t upgraded Go and Mingle this year, go and do it right now. Go has had 2 vulnerabilities via Rails, so go make sure.
- James Turnbull of Puppet Labs just released his book on logstash. I don’t think he sleeps much. [link]
- DevOps Down Under is on July 12, 2013 in Sydney. I hope to be there. The call for proposals is out. [link]
- DevOpsDays Auckland is on March 8. I will be there. [link]
- Congrats to Luke and the crew at Puppet Labs on a massive investment from Vmware. [link]
- Amazon continue to reduce price and make badass instances. Long may they continue.
- Kohsuke is doing a useful webinar today: [link]
- Urbancode (who sponsor this blog) are doing a webinar on how to avoid evil DevOps teams [link]
- RubyMine 5 got released, with Puppet support. Now you can raise more feature requests.
- We’re still looking for someone to work on our Cloud team. [link]
We’re looking for someone to help extend and run our Cloud platform.
This is a role in a small team with lots of autonomy: we want to build an awesome cloud service to match our awesome product. We’re funded, we’re selling our product like hotcakes and we want you. Link below.
I haven’t had a chance to do any code in public recently. Skewer and XFD have had to take a back seat to the day job, where I’ve been working on our Heroku Add-on. We recognised that a PaaS won’t work for everyone, so I was asked to take a look at deploying Neo4j on EC2.
The original plan was to make an AMI that people evaluating Neo4j could instantiate on EC2. I didn’t want to create a machine by hand and then build an image from that machine: it seems more repeatable to have a process where you bootstrap the OS using VeeWee and then use Puppet or Chef to finish the job. In the end I decided to start with Puppet and Ubuntu and see how far I got.
I started by fixing our Neo Technology Debian repository so we could get signed packages. That had benefits on its own – our release process is simpler now. Then I wrote a Puppet module to install the packages on Ubuntu and apply some configuration changes on top to make it usable (for example, Neo4j doesn’t listen on all interfaces by default). The README suggests that you download and run a wrapper script that will fetch the module, the dependencies, and then run them. It’s looking decent.
We strongly suggest that people use the Oracle JDK, so I had to come up with a way to get that installed, without distributing the JDK myself. Also, I felt it was important that the user signal their acceptance of the terms and conditions of the Java end user license, so I found a way to do that. Also, doing anything on the cloud without authentication is foolish, so made it possible for the user to pass a username and password to use at runtime. It’s looking useful.
Then I put myself in the position of someone who wants to install Neo4j, but isn’t familiar with the territory of EC2 and Ubuntu servers. It wasn’t enough. So I wrapped the entire thing in CloudFormation to create the AWS resources that the user needs, bootstrap the Puppet module, and pass down the parameters. Now we’re getting somewhere.
The finished product is at https://github.com/neo4j-contrib/neo4j-puppet. Feedback welcome. I’m not sure I need to bother with an AMI.
I’m thinking about:
- Making it compliant with Puppet Forge
- Supporting other Linux distributions
- Making it easier to get SSL going (though there’s no getting around the fact that the end user will need a cert, I guess)
- Supporting multiple regions on AWS
- Ancient Configuration Management community, cmcrossroads has relaunched, by it’s new owners TechWell. It’ll be interesting to see how this works out. Configuration Management is one of the disciplines that’s been folded into DevOps – but will we lose something in the cooking? [link]
- Rubymine Enoki will be officially released soon, with some very basic Puppet support – syntax highlighting, and a basic first pass at validation. Keep those bug reports coming!
- Go is affected by the Ruby security bug. Go install the patch, right now. [link]
- There are Puppet Camps in SF, Sydney and Ghent this January. Sydney’s a mere 1337 miles away (auspicious number) from Build Doctor HQ, but I’m unlikely to make that one. [link]
- UrbanCode (who sponsor this blog) just releases uRelease 4.0, giving more orchestration goodness. [link]
- Tonight, we did some tree maintenance at the New Zealand Build Doctor HQ: some of them haven’t been trimmed in 15 years. I was reminded of an old PragDave post. [link]
- Malte Ressin (nice guy who I met at XP Day in 2011) is doing a survey on software development and localisation. Want to do him a good turn while you’re still full of Christmas Cheer? [link]
- Urbancode (Sponsor Danger) are doing a webinar on managing dependencies at build time. [link]
- SauceLabs have an OSX client so you can sport a ponytail (OK, I did Mac support in the 90′s) and do browser testing on real operating systems. They’re also giving away free service to OSS projects. [link]
- Splunk are courting developers with a REST API on Splunk Storm (I always misread that), and Java/Python SDK’s for the enterprise product [link]
- Update: I forgot to mention that Heroku now support Jruby. Huge. [link]
Happy Xmas, all.