New API

API is an essential element of modern-day applications, allowing the cross-communication by sharing the data from one software to another. Due to this, Leon user can automatically send the schedule to Avinode or book flights in Leon directly from Schedaero. In order to facilitate the development process for both our partners and ourselves we have decided to introduce a new API that is now going live.

When selecting the technology for our API we wanted to make sure that it checks all of the appropriate boxes in terms of our requirements. By that I mean:

  • API’s development and update process have to be very fast, without the need for excessive coding.

  • Its usage should be as easy and intuitive as possible.

  • API user does not need to create a large number of http requests in order to simplify the code of applications using it.

  • API should be self-documenting to avoid issues related to outdated documentation.

  • Good tooling and high accessibility of client libraries for different programming languages.


We have been considering two possible options. Between a more traditional approach of REST API and a more modern GraphQL, we have ultimately decided to choose the latter. Not only GraphQL have met all of our requirements, it has also given us a fresh perspective on developing our software and improving its quality even more.

GraphQL is a technology initially developed by Facebook to solve several issues characteristic of REST APIs. It has become a new standard for several top tech companies, such as Facebook, Github, Netflix or PayPal, offering the easiest data access to applications with a complex business model. Due to its implementation in Leon, we have significantly extended data availability for external systems. GraphQL also helps our team to speed up the development of Leon as we use the same API.

Leon API


A complete documentation to Leon’s new API can be found here.

Infrastructure as code (IaC)

In the last few weeks we have concluded the process of migrating Leon to IaC.

What is IaC? Infrastructure as Code (IaC) is an approach to representing the infrastructure of application via code, which impacts the configuration of hardware. In a more traditional approach servers are run and set up by server admins, while when using IaC an infrastructure is done by coding. You can find more on this subject on Martin Fowler’s website.

For more than 2 years Leon was run on a server cluster, scalable on a basis of actual server load, yet a number of updates or maintenances forced us to modify the available resources manually. With the introduction of IaC we have managed to automate a large part of those tasks and still - this is just a fragment of possibilities the new approach offers.

Other advantages for Leon and our clients include:

  • An increased stability 

  • In some cases application errors may originate from differences between production environment (available for end users) and development/staging environment (where code is being initially deployed and tested). In case of IaC it is much easier to maintain the identical characteristics of each environment. What is more, an implementation of IaC greatly reduces the risk of human error, which is an unfortunate possibility during any manual change in the infrastructure.
  • Security 

  • IaC guarantees that all servers are identical, making the potential security vulnerabilities much less possible to happen. On top of that, it is much easier to conduct configuration audits as each modification of server infrastructure can easily be verified by other team members.
  • Faster deployment of more advanced features

  • Advanced features of software often require specialized server-side services. Due to IaC approach we are able to quickly expand the infrastructure without a lot of tedious manual work, which translates into a much faster deployment process.
  • Easier installation of security fixes 

    With the new automated approach it is now possible to install critical fixes repeatedly on the same day as we are able to avoid software conflicts that can occur during manual modifications of the infrastructure, affecting the frequency of updates.


As a result of the aforementioned change we have introduced a new deployment system, using the Canary Release technique. It can be regarded as a huge upgrade, further reducing risks of a current 2-week release cycle, allowing us to monitor the deployment process and act quickly should any potential issues arise. Furthermore, we are able to reduce any risk related to dependency issues in a similar fashion to the way it is handled by tech market leaders, such as Spotify.

 


More information on the current Leon technology can be found under links below:

Terraform - www.terraform.io

Packer - www.packer.io
AWS Lambda - aws.amazon.com/lambda

Don’t forget to visit our Community, where our developers share their know-how on the new API and other latest updates.



pszmagaj

PAWEŁ SZMAGAJ linkedin logo

CTO at Leon Software

 

 

Since 2007 he is supervising the development and introducing new technology standards to help Leon Software maintain its position as a leading scheduling software provider for Business Aviation.