If someone asks you about the scalability of your operations, don’t tell them about the number of machines you run; tell them rather about what it costs you to tend them each month. The total cost of that burden can be summed up from the cost of hardware, software, maintenance, people, lost revenue during downtime, time lost during maintenance, and time wasted from not managing knowledge well.
When developing a large and flexible software system like CFEngine, it is an unfortunate truth that developers do not always get everything right at the first attempt. The source code is also changing frequently due to new features, optimizations and bug-fixes. As you can see from the Ohloh online statistics, thousands of lines are added and removed every week.
All changes have the risk of not working in every scenario, or breaking existing functionality. In addition, build errors may introduce unexpected behaviour that you want to detect before deploying to production.
Update [April 12, 2012]: Added information about the new templating engine.
Highlights The CFEngine Community 3.3.0 release is here, with the largest set of improvements since the introduction of version 3.0! We have added Virtualization and SQL promises to the open source edition and introduced service-promises for Unix. A new templating engine is in place. Some potential “gotcha” issues have been fixed, to streamline and simplify the use of CFEngine. The embedded database code has been significantly refactored, optimized and made much more robust. A large number of useful variables, classes and functions have been introduced. And as usual, a set of bugs have been fixed.
Hello - my name is Diego Zamboni, and I am very happy to have this opportunity to introduce myself. If you read the CFEngine forums, you have probably seen me around, but it’s nice to be able to step away from official business for a moment and just tell you about myself. I work for CFEngine AS since October of 2011, and my official title is “Senior Security Advisor”. In that capacity, I work on advocating CFEngine as part of the security toolset that any sysadmin should have, and also on providing internal guidance to make CFEngine even more powerful as a security tool. I have recently also started working on interacting with, promoting and nurturing the CFEngine user community. It is often me who posts in the @CFEngine_news twitter account, in the CFEngine Facebook and LinkedIn pages, and I’m often found on the #cfengine IRC channel as well. I very much enjoy interacting with people, writing, public speaking and teaching, so I am very happy in this role as well. I have been interested in computing and technology for as long as I can remember. My first computer was the venerable Timex-Sinclair 1000, which I got when I was 11 years old (and which came with an amazing 2kB of RAM!). Later I spent many, many hours playing with, tinkering with, and programming my Commodore 64, and later a C128. In fact, my first technical publication was in COMPUTE!’s Gazette, which published (in its September ‘91 issue) a program I wrote for cataloguing floppy disks. When I was in college studying computer engineering, I got a job as a sysadmin at the university’s supercomputer center. I was part of the team that managed both the Cray Y-MP4/464 supercomputer (how technology has evolved! That big, expensive supercomputer had 512MB of RAM, 1/16th of the laptop in which I’m typing these words) running UNICOS, and many other Unix systems running Ultrix, Irix, SunOS, NeXTSTEP, and other operating systems. It was during these days that I first started thinking about the issues surrounding the management of a heterogeneous mix of systems, and when I first read about and tried CFEngine, still back in version 1. It was also at this time that I got involved in computer security - there was a break-in into our Cray machine, and I participated in its investigation. I found the process fascinating. Afterwards I kept working in security, eventually founding the university’s first incident response team and computer security group, which continue to exist to this day, in a much more evolved form. Following my security path, I went to Purdue University, where I did my Ph.D. under the direction of Gene Spafford, one of the world’s top security experts. After graduating from Purdue in 2001, I went to work at the IBM Zurich Research Lab, where I worked for eight years doing research in intrusion detection and prevention, malware analysis and containment, and other fun things. In 2009 I returned to Mexico, and in the process switched to a vastly different job as a consultant for HP Enterprise Services. In 2010 I started writing, in my free time, a book about CFEngine. I had realized that CFEngine 3 was somewhat lacking in documentation (being relatively new, and very different from CFEngine 2), and I had been dreaming of writing a book for a long time, so the idea and the timing seemed right. Eventually I got my book proposal accepted by O’Reilly. As a result of this, I started a conversation with Mark Burgess, which eventually led to me getting a new job! I couldn’t be happier: I am working with a technology that I love, and surrounded by amazing and brilliant colleagues. As for my book, titled “Learning CFEngine 3”, I am happy to say that, as you read this, it should be available for sale from O’Reilly and amazon.com. If you have been looking to learn about CFEngine, or want to reinforce your understanding of how it works, please check it out! I hope you will enjoy reading it as much as I enjoyed writing it. So, there you have it, now you know a little more about me. I would love to hear from you. Leave a comment here, or contact me on twitter, where I am @zzamboni. I also keep a personal website and blog. See you around!
CFEngine is happy to see increased demand for our software, both the Open Source version, CFEngine Community, and the Enterprise Software version, CFEngine 3 Nova. We recently moved the CFEngine Community source code to GitHub and plan to use that platform to interact more closely with the general community (watch this space for hot topics to come!).
We have also put up a test drive environment as a part of making CFEngine 3 Nova more accessible to potential customers. Qualified users* will be able to access and test a fully operational version of our Enterprise Software for free, without having to install and set it up on their own system. Specifically, users will be able to:
We are extremely happy to announce that the source code for CFEngine Community is now hosted on GitHub, one of the largest code-hosting services in the world. This move has many important advantages for both the CFEngine development team and for users. For one, it marks the switch from subversion to git as the source code management system, allowing for a much more agile development cycle and the use of more advanced tools. Being on GitHub allows users to more easily find the code and follow its development, makes it very simple to check out the source code, and to communicate with the development team. Check it out!
How often should your configuration management system verify the integrity of your system? The default choices we’ve made by CFEngine are the results of almost 20 years of research into this area. Below you will find ten issues and references that explain why these choices are underpinned by the science. These ten things really all amount to the same thing: if you are playing ping-pong against the adversary of change, you need to be as quick on your feet as your opponent – and faster
One feature our customers have requested for the next version of CFEngine Nova (available before summer 2012) is having the ability to collect reported data through a REST API. It is already possible to get at reporting data through the Mission Portal web-interface, as well as the command-line client cf-report. However, as we want to provide our customers with greater flexibility, we are now introducing the addition of REST (HTTP) as another interface.
My CFEngine journey started in 2008, when I was still a student. I was working on my master’s degree in Mathematics, specialising in cryptography at the University of Tromsø. I had moved to Oslo to write my master’s thesis in cooperation with the Norwegian Defence Research Establishment. At the same time, I took a course in Business leadership at the University of Oslo. As part of this course, we got the opportunity to be interns at technology start-ups in Oslo.