Popular items

 

A peek in the engine room - part 2 of 4

Software

Blogpost by: Rob de Boer
From: woensdag 22 januari 2014

A good and fully functional hardware platform is half the effort of creating a good service providing system.

Onetrail tries to offer a stable system for their customers, with a diversity of communication protocols, methods and formats.
This includes the most used protocols like FTP and HTTP GET or POST. Methods like REST and AS2 are also available, as some other more exotic protocols.
The only relevant part is: We try to support as many protocols as possible. We will try to accommodate a new protocol or method when they become available.

This requires a flexible platform, to allow us to create all desired requirements.
Onetrail adopted open-source Linux as their main operation system. Linux is known for its stable foundation and high security, creating the best solution on a stable hardware platform.
But why should you use open-source software, since 99% of all users never look at the source code, or even fix bugs or add features? It is the other 1% (or less) of the users who check the code for backdoors (sorry NSA) and fix any bugs or add features. Those users are creating these stable platforms and software (keep that in mind when using this software, they often don’t get paid and some rely on donations for their efforts).

All our services are based on Java, and yes, this is closed-source. Although OpenJDK is available, the (enterprise) components are not fully compatible.
Our developers work on a variety of systems, ranging from Windows to OSX. Java is a good cross-platform programming language and compiled byte-code is cross-platform. This allows our developers and testers to work on almost any environment they wish, creating an effective flow.
All our code is stored on a subversion system, with remotely stored backups in case of fire or disaster at our office. The subversion system also allows us to manage the releases, in combination with our butler: Jenkins. Jenkins is our build server, used for continuous integration. Combined with test cases, this creates a solid solution for delivery.

The next part is testing this software, using DTAP (development-test-acceptance-production environment), the updates are released to our test environment. The D, T and A (of DTAP) happen during each iteration. The team works on the development of a feature and deploys this feature, when ready, to a development or staging environment. This feature is tested during the same iteration by the team, for instance using written Test Cases for each User Story and automated unit tests.
After approval to Acceptance and after a test period, released to production.

The heart of the system, as with most companies, is the database. Onetrail migrated last year from a closed-source environment to PostgreSQL. The database is one of the only non-virtualized servers, but the data is stored on external SAN storage. A (hot) backup machine is always standby, in case of a hardware failure, reducing the down time by using the same external storage.
PostgreSQL is one of the most leading open-source database servers available, and all our structured relational data is stored within it.
We also have non-SQL database servers, Mongo, running for all non-relational data. With the combination Solr and Mongo, a fast document search system was created, allowing good indexing on document and fast retrieval used by several internal and customer portals for setup, support and message tracking.

« Back to Blogs

Rob de Boer

System Architect

» More information

Add your reply

Reactieformulier

They chose Onetrail