RSS 2.0
RSS 0.91
ATOM 0.3
May 15, 2012

Cooking a delicious Server Infrastructure

Category: Server Admin Team

By: Steffen Gebert and Michael Stucki

This is a report about the TYPO3 Server Team meeting, which took place during the last weekend.

Since the TYPO3 Server Team was initiated in 2010, we always met for online meetings or during other TYPO3 events. We always planned for having a dedicated meeting, and finally we had the opportunity to do so.

The goal of the meeting - held in the form of a workshop - was to learn, how to use Opscode Chef for taking our server management to the next level. Chef is a tool to automatize a lot of tasks that are involved while managing servers.

How it started

When we started to move more and more servers and sites away from different various companies to bring them under own maintenance, a lot of the new work had to be done manually. We started using simple templates, which were used while creating new virtual machines. Over time, this farm had grown from 1 server into one of 5 physical machines with currently around 25 virtual servers running on them. These servers are distributed over 4 different locations - namely the data centers of our hardware sponsors, Jochen Weiland (at Hetzner), TU Eindhoven, and SpeedPartner.

First steps using Chef

When it became clear that we sooner or later need a configuration management software, Steffen Gebert started to get into using Chef. Chef allows to save configuration instructions in so called cookbooks, consisting of source code, just as we are used to code TYPO3 websites (except that Chef uses Ruby). The source code describing our infrastructure is stored inside a Git repository and thus versioned. We will go even one step further very soon and start reviewing code (=infrastructure) changes through Gerrit.

However, all this needs some time to get into using it and learning about best practices.

Fortunately, Christian Trabold, who became a member of the Server Team during the Developer Days in April, has already a lot of experience from his work at dkd and other community projects (like

Cooking with Chef

So the whole Server Team (Michael Stucki, Fabien Udriot, Peter Niederlag, Steffen Gebert, and Christian Trabold) and our welcome guest Tolleiv Nietsch came together to get a closer insight on using Chef. Christian Trabold and his employer dkd offered us to meet at their office during one weekend, getting a from-the-scratch introduction by Christian.

Day 1

When we arrived at the dkd office on Friday morning, Christian already had a Vagrant project prepared for us. With Vagrant we were able to start playing with Chef using our own virtual servers within VirtualBox. The benefits of Vagrant really impressed us and we recommend you having a closer look at it, because you will most likely find it very useful also for developing web sites!

Christian started with a short overview over the goals of the workshop and then continued with an introduction of Chef's basic concepts.

He gave insight on how dks is using Chef already and what lessons they had learned so far.

When Lunch time had already passed without anyone noticing it, we started writing our own first recipes. Finally, a delicious Pizza was the reward for working hard and progressing so well! :-)

Later in the afternoon, Christian explained to us, how we can write tests for our cookbooks and recipes, so we could immediately see if something goes wrong.

As then everybody was able to understand the main principles of Chef, we took a look at the existing setup that Steffen introduced for the TYPO3 infrastructure. We finished the first session day with configuring the Chef client on all of our own computers, so we are able to connect to our central Chef server (instead of only playing locally with Vagrant and Chef Solo). This was finally the case around 22:00 in the evening...

The day was finished in the nightlife of Frankfurt, enjoying drinks sponsored by some very kind Twitter followers. Thanks to all of you for the spontaneous offers!

Day 2

We started the Saturday at 9:30 - very early, when you would know when the last day ended ;-).

Our goals for the second day were to fix current issues and try to get more and more practical.

This was mainly done by Christian who worked on the big screen, while we supported him and mainly learned from that. An introduction of the application cookbook - a toolset which enables you to basically deploy everything™ gave us a lot of inspiration of how to deploy TYPO3, Redmine, and other software including all the required server software.

While Fabien, Peter, and Michi had to leave during the evening, Christian, Steffen, and Tolleiv staid one day longer to continue working on the cookbooks for the TYPO3 infrastructure. So we took the task to clean up all the cookbooks in use, minimize own customizations, and get rid of some of the beginner's faults. Defining a clever role structure of our servers opens the possibility for more flexible server management. With the aim to do a rollout to the complete TYPO3 server infrastructure on Sunday morning, the task was finished after a 17 hours "working" day.

Day 3

As we were well-prepared from the night before, bringing all our servers under the control of Chef went very well and without service interruption. A very nice advantage of Chef is that it usually does not harm existing infrastructure (unless you tell it), as it will not touch existing server configuration. For example, it will never uninstall any of your software.

Before noon we started discussing a universal "webserver" cookbook, which we still see lacking in the Chef community. Our aim with this is to abstract the configuration of different web servers and proxies (like Apache, Nginx, or Varnish) and make it usable to deploy while deploying an applications (like TYPO3, Redmine, and so on) including the whole server stack (like PHP, MySQL, etc.).

And we have a lot of such applications :-)

The whole meeting was a great event for us to get started using Chef, and we look very much forward to use it! Having the whole infrastructure included in Chef is a big step to be able to faster deliver new services to the TYPO3 community and other TYPO3 teams and without big time investments from our side.

Many thanks goes to

More information:


comment #1
Gravatar: Olivier Dobberkau Olivier Dobberkau May 15, 2012 18:43
Great report! It was a pleasure to have you guys here. Anytime you are looking for a place to meetup, come again!

comment #2
Gravatar: Martin Bless Martin Bless May 15, 2012 19:21
Wow - a thrilling report. Good to read! Sounds like a very progressive approach. Thanks for letting us know.

comment #3
Gravatar: David Zschille David Zschille May 16, 2012 00:08
That sounds really inspiring! Looking forward what comes next. ;)

Sorry, comments are closed for this post.