geOrchestra is the free, modular and secure Spatial Data Infrastructure software born in 2009 to meet the requirements of the INSPIRE directive in Europe. It is built on top of the latest stable versions of GeoServer and GeoNetwork. In this talk we will briefly present the geOrchestra SDI, before going through the major contributions during the previous year, to answer the following questions:
* how the project moved from tainted to generic artifacts (war files, debian packages, docker images)
* how to deploy a geOrchestra SDI instance in 10 minutes
* how to build your robust, high performance and high availability SDI in the clouds.
2. 2/35www.camptocamp.com /
About ...
Camptocamp
○ Geo, Business, IT
○ 3 countries
○ 50+ employees
○ R&D, Support, Training
○ @camptocamp
Me
○ Geospatial Engineer
○ geOrchestra PSC
○ Father of 3
○ Chambéry, France
○ OSM contributor
○ @fvanderbiest
10. 10/35www.camptocamp.com /
What's in the core ?
From a client-side POV,
it's the OGC servers*:
■ GeoServer – WMS, WFS(-T), WCS, WPS
■ GeoWebCache – WMTS, TMS, WMS-C
■ GeoNetwork – CSW
* you know, these things for INSPIRE ...
11. 11/35www.camptocamp.com /
From a software architect POV,
it's the security-proxy application:
■ It handles the user session
■ It routes requests to modules
■ It optionally logs requests
12. 12/35www.camptocamp.com /
What are the modules ?
For the end-user:
■ Metadata catalog (GeoNetwork)
■ Several viewers
■ Simple – « an easy-to-use & responsive viewer »
■ Intermediate – « handles multiple layers in a tree »
■ Advanced – « a feature-packed OGC viewer &
editor »
■ Extractor – « OGC services in, Geo Files out »
■ Simple catalog – « a simple CSW client »
13. 13/35www.camptocamp.com /
For the administrators:
■ Console
Manages users, groups & roles
■ Analytics
Displays stats on OGC Services usage
14. 14/35www.camptocamp.com /
Why would I choose
geOrchestra ?
■ Single Sign On for all your services
■ Easy-to-use web-based tools to manage users
■ Plenty of modules and extensions (GeoFence!)
■ Adding new modules is really easy
■ Streamlined installation process
17. 17/35www.camptocamp.com /
We focused on :
■ Generic artifacts (.deb, .war, ...)
■ Deployment automation (Ansible)
■ Docker in production
We also upgraded our core service providers:
■ GeoServer from 2.5.x to 2.8.x
■ GeoFence from 2.x to 3.x
■ GeoNetwork from 2.x to 3.x
18. 18/35www.camptocamp.com /
GeoServer 2.5 → 2.8
So many improvements … but to name a few :
■ Performance
■ I18n
■ WPS production-ready
■ Styling & rendering improvements (color blending …)
Major bugfix :
■ WMS 1.3.0 failed to serve rasters in their native projection
19. 19/35www.camptocamp.com /
GeoFence 2 → 3
■ No more separate UI : integrated in GeoServer
■ Easier to reorder rules
■ Rules for delegated workspace admin
20. 20/35www.camptocamp.com /
GeoNetwork 2 → 3
Main improvements:
■ User Interface
■ Modern technologies
■ Better MD editor (incl. suggestions)
■ MD validation tool
■ Integrated viewer
21. 21/35www.camptocamp.com /
Generic Artifacts
■ Previously: we were building tainted wars
■ Now, if the georchestra.datadir system property is
defined (JAVA_OPTS), each webapp reads its config
from the « data dir » location + module name
■ Considering the number of modules, this was a
HUGE work !
■ As a result, we distribute a template « data dir » :
https://github.com/georchestra/datadir/
■ Debian packages contain the generic WAR +
associated datadir files
22. 22/35www.camptocamp.com /
Deployment automation
Ansible recipe: https://github.com/georchestra/ansible
geOrchestra VM cookbook:
■ sudo apt-get install vagrant virtualbox ansible
■ git clone https://github.com/georchestra/ansible.git
■ cd ansible
■ vagrant up
23. 23/35www.camptocamp.com /
How to generate Docker images?
■ Previous attempt: Dockerfile pulls generic webapp from
Continuous Integration
■ More interesting: docker images built directly from the
source code, using docker-maven-plugin by Spotify
mvn clean package docker:build -Pdocker proxy
→ It allows us to simultaneously address the dev + prod usecase
25. 25/35www.camptocamp.com /
Docker in production
■ Source code on public repo
■ Config on private repo
■ Internal CI (jenkins) builds* from source & config
■ Images are pushed to a private docker hub repo
■ Rancher pulls images* on production instances
■ Production instances on a public cloud provider
(OVH)
* still a manual step
33. 33/35www.camptocamp.com /
What we're up to ?
■ As a company :
○ Migrating customer productions to Docker
○ Taking advantage of the ELK + Prometheus/Grafana stacks
○ Investigating HA / HP with Docker and Rancher
■ As a community-driven project:
○ Trying to have a proper CLA
○ We had roles, now we're adding groups
○ Defining a new, responsive, advanced viewer
○ More industry-specific modules (eg : cadastre ...)
https://www.flickr.com/photos/hytam/24566832215