The Man Behind Swiss Federal Mapping Discusses What's in His Cloud Stack
Recently, we at OStatic launched our "What's in Your Cloud Stack?" series, where we discuss components and processes that power some of the most sophisticated cloud computing deployments with people who know a whole lot about the cloud. The series began with our conversation with PHP Fog founder Lucas Carlson, where he provided many insights into a smart cloud stack.
Now, in a follow-up to that discussion, Hanspeter Christ, Deputy Process Manager of the Federal Spatial Data Infrastructure (FSDI) for Swisstopo--Switzerland's federal office of topography--caught up with us to discuss Swisstopo's cloud stack. Shown here, Hanspeter runs a cloud stack that makes special use of the Puppet open source IT management platform, among other tools. Here are Hanspeter's thoughts on the Swisstopo cloud stack.
Hanspeter, what is the structure of Swisstopo's cloud stack?
A picture is worth a thousand words. See the graphic:
What technologies, particularly open source tech, do you use in your cloud stack?
The Swiss Federal Office of Topography (Swisstopo), Switzerland's national cartography agency, primarily uses open source technologies and software to operate its spatial services and GIS applications (among many others, this includes the map viewer of the geoportal of the Swiss Confederation). These are currently deployed in the public cloud of Amazon Web Services. Here are a few of our key open source components:
In our cloud stack, the systems managment tool Puppet has vital importance. It empowered us to drastically reduce the complexity of our server infrastructure by delegating different tasks to different servers while improving the fault tolerance. Thanks to the automated and standardized way we nowadays manage our servers with Puppet, we can trust that all our servers are kept in a "defined state."
In case of serious incidents that potentially may occur in the cloud, we have our Puppet recipes handy, and can restore our systems from scratch in a very short time. Using Puppet in a cloud setup also significantly reduces the vendor lock-in to a specific cloud infrastructure provider and enables a coexistence of traditional on-premise and cloud infrastructure setups.
GIT is the central repository for all our Puppet recipes. Thanks to GIT we can centrally audit all the changes in our cloud infrastructure and even roll them back without any problems, if necessary.
We monitor all our servers in the cloud with Nagios, and don't use proprietary offerings from the IaaS-Vendors (with Amazon CloudWatch being an example) in order to avoid vendor dependency in the quickly evolving cloud market.
Varnish is used to accelerate the access performance on our millions of pre-produced map tiles in the map viewer of the geoportal of the Swiss Confederation and other Web-GIS applications. It is also used as a reverse proxy for load-balancing our application servers.
MapFish is our framework of choice for building scalable and rich web-mapping applications. It's the solid groundwork for our map viewer from the geoportal of the Swiss Confederation
How do you guarantee an open platform that users can modify?
We respect open standards (especially those published by the OGC, which are mostly relevant in the open GIS sector). We are also actively involved in the steering committees of successful open source projects like MapFish which is a framework for building web-mapping applications and the "glue" for many other open source projects like OpenLayers and GeoExt.
This week, our office organized a so-called "Code Sprint" with the main goal being to work on OpenLayers and extend its capabilities to support mobile devices.
What impact has cloud computing had on your organization?
We significantly shortened the time-to-market for our services and applications, drastically reducing our CapEx and OpEx, and improving our service excellence. The cloud shift also facilitated more focus on our customer needs, because we got rid of a lot of "undifferentiated heavy lifting" such as capacity planning, bandwidth bottlenecks, and more.
What cloud management tools do you use, other than Puppet?
We don't use a dedicated cloud management tool (or if you can label Puppet as a cloud management tool, it's ours). Beside Puppet, we're planning to implement MCollective in our cloud setup. Our vision is to use it as a building block for a real-time dashboard, which would show us the real-time state of all our cloud servers, data versions, applications and services. We plan to implement a first version of such a dashboard by the end of 2011.