Why Monitoring Sucks

by Jack Hughes on January 9, 2013

Found an interesting old post by John E. Vincent, Why Monitoring Sucks tweeted by MonkChips. What is interesting is what John did next. He created a GitHub account so that he could collaborate with people to rectify the problem.

The most interesting part (to me anyway) is the tools-repos repository in which all of the different monitoring tools are listed.

Enjoy! :)

PS: as a counter point, read this post entitled #monitoringlove – a true story by Ulf Månsson.

{ Comments on this entry are closed }

Continuous delivery every single day

by Jack Hughes on August 14, 2012

It has taken 20 years as a professional programmer to get to this point, but I have finally taken the final step to continuous delivery.

We’ve been practicing continuous integration for well over a year now. It seemed a logical step to deploy the software automatically. When a process is done manually you tend to make a lot of mistakes. I did anyway. I’d run the database upgrade script before the new one had been installed and of course I would take a long time performing the upgrade. The machine is able to do the upgrade in a matter of a few seconds, I used to take several heart thumping minutes to do the same job.

Xsensior 2.3 in TeamCityContinuous integration involves building and running tests on each change. Each time we change the software, TeamCity pulls the software from the repo and builds it, then runs the unit tests. If either the build fails or any of the tests fail, then TeamCity lets the culprit know via email so they can fix it.

Every night at 10pm TeamCity takes all of the changes from the day and runs all of the tests, the unit tests again and the integration tests.

The unit tests are fast running single aim tests with very few dependencies and the integration tests exercise pretty much the whole stack end-to-end. Typically, you are going to have quite a lot more unit tests than integration tests.

If the nightly build is successful, TeamCity then kicks off a deployment to our dev server.

Until fairly recently, automated deployment was quite a painful business in the .NET world. Microsoft have a solution for deploying ASP.Net websites but we found it to be unsatisfactory for our requirements. We use Octopus Deploy for managing the deployment process.

Octopus Deploy provides a nice web based console to help you visualize and manage the release process. We maintain a release pipeline of dev, stage and production but the specific workflow is quite flexible. The TeamCity nightly build process pushes the newly built software into the dev server. The developers are then able to test the software on dev and when we believe a feature is working we push it to the stage server. That’s when the wider company can get involved in testing the feature. When satisfied that the feature is working on stage, we then push the release into production.

Apart from the initial TeamCity push to dev, the process is adminstered manually. You tell Octopus to push the software to stage and then production. But, the actual deployment process is automatic. And crucially, the software deployed further down the pipeline is exactly the same software you were testing earlier in the process.

What are the benefits of continuous delivery?

  • Fewer failed deployments – if you manually deploy, you will make mistakes;
  • Greater code coverage – even without automating tests you are ensuring that each part of your product is being tested. Of course, it is best to automate a lot of the testing but there are always going to be parts of the software that are tricky to get to. Auto deployment can help you test these parts. For instance, the Xsensior Live database layer code does not yet have any integration tests, but because we auto deploy I know that the database update script is being executed at least twice prior to it being run against the production database. So, I have a reasonable amount of confidence that the upgrade will work as expected.

The last thing you want as a software developer, is for your customer to do your testing for you. Continuous delivery helps you exercise your product before your customers. Never a bad thing.

{ Comments on this entry are closed }

TimeTag fork away!

February 21, 2012

I finally got around to posting the TimeTag source code up on Google Code this afternoon. You can find the project here. Whilst I’ve no intention of working on TimeTag, I figured that it would be useful for people learning PowerShell development to have a reasonably large sample available, and useful for someone to have [...]

Read the full article →

Planet Network Management Highlights 2010 Week 22

June 4, 2010

Highlights from Planet Network Management for Week 22. High-tech careers, IT cost management and cloud computing – the emergence of cloud computing in the last few years has created demand for cloud based skills in the job market Managing Amazon EC2 nodes with Puppet – how to create easily create manageable Amazon EC2 instances The [...]

Read the full article →

Planet Network Management Highlights 2010 Week 21

May 28, 2010

Highlights from Planet Network Management for Week 21. Location based Traffic Reports – GeoLocations in NetFlow Analyzer – how GEO location of your IP addresses can help you manage your network Measuring Application Utilization with Wireshark – how to track an applications network usage using Wireshark Over 2 years of #mollom satisfaction – 2 years [...]

Read the full article →

Planet Network Management Highlights 2010 Week 20

May 21, 2010

Highlights from Planet Network Management for Week 20. The Fastest way for Analyzing Network Spikes – NetFlow Analyzer – how to analyse network traffic spikes in near real time OpenNMS 1.6.11 and OpenNMS 1.7.90 Released – new versions of both the development and stable releases of OpenNMS Network Security Review – CACE Pilot – a [...]

Read the full article →

Planet Network Management Highlights 2010 Week 19

May 14, 2010

Highlights from Planet Network Management for Week 19. RiverMuse Announces New Commercial Product – RiverMuse announces the release of RiverMuse Pro v2.0 Bug #3000000 – Pandora FMS is honoured to have bug #3000000 on SourceForge Datacenter Barometer: Building a Cloud Ark for the Coming Data Flood – with the volume of data currently being produced [...]

Read the full article →

Planet Network Management Highlights 2010 Week 18

May 7, 2010

Highlights from Planet Network Management for Week 18. Europe 2010 – OUCE Day 1 – Tarus Balog’s commentary on day one of the OpenNMS European Conference in Frankfurt, Germany Whats New in NetFlow Analyzer 8 !! – ManageEngine announce the release of version 8 of their NetFlow Anaylzer product Happy Birthday Icinga and THANK YOU [...]

Read the full article →

Planet Network Management Highlights 2010 Week 17

April 30, 2010

Highlights from Planet Network Management for Week 17. Detecting Trojan and Worm with Capsa Network Analyzer – how to detect trojans and worm infections using a packet capture tool Review of Dualcomm 5-Port Pass-Through Port Mirroring Switch (by Betty DuBois) – a review of Dualcomm Technology’s 5-Port 10/100/1000 PoE pass-through port mirroring switch Splunk for [...]

Read the full article →

Planet Network Management Highlights 2010 Week 16

April 23, 2010

Highlights from Planet Network Management for Week 16. Top 5 Troubleshooting Tips for Your WMI Problems – WMI is a big part of any Windows Admins arsenal, these tips will come in handy when you need to find out why things aren’t working as they should Zenoss 3.0 Alpha #1 – QA Test Day April [...]

Read the full article →