Solution
After careful consideration, Qantas chose the WSO2 Integration Agile Platform as its technology solution. Key factors in the decision were WSO2’s open source nature; flexible, hybrid deployment models; quality of customer support; and additional authentication capabilities. With the help of WSO2, Qantas re-architected its technology implementation around an API-first strategy. In order to meet all of the company’s requirements, it leveraged Agile development practices, RESTful APIs, microservices, and the cloud.
Today, WSO2 API Manager is used to provide internal software development teams and partners the ability to securely publish their APIs for use across Qantas. Meanwhile, WSO2 Identity Server is used as the key manager for the API manager. It also supports single sign-on (SSO) to the platform by federating identity to the relevant existing identity providers at Qantas. Together, the technologies helped to address three key requirements identified by Qantas:
- Deliver a good user experience for developers by providing self-service capabilities and integration into their own API CI/CD pipelines to enable automated API registration.
- Promote API reuse across teams by increasing visibility across the broad range of available APIs and providing a framework to facilitate a subscription-based model for sharing access.
- Employ API usage analytics and insights to ensure that all APIs are optimized.
Qantas developed services in Node.js to orchestrate the required integration between WSO2 API Manager and its developers’ build pipelines. This has enabled teams to simply provide a Swagger file describing their API along with a JSON configuration file to set configuration requirements, such as where to publish the API. Qantas also used Node.js to further extend WSO2 API Manager, so software developers could publish and invoke serverless APIs using Amazon Web Services (AWS) Lambda functions in addition to standard HTTP-based endpoints.
The entire API-driven platform is built on AWS where all the infrastructure requirements, product installation, and configuration scripts are stored as code under version control. A distributed architecture with blue-green deployments is used to help facilitate rapid changes to specific components of the solution.