Skip to content

Commit c4afa7e

Browse files
committed
Orange API management user story
1 parent 94452a6 commit c4afa7e

File tree

3 files changed

+116
-0
lines changed

3 files changed

+116
-0
lines changed

_data/authors.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,3 +586,9 @@ melloware:
586586
emailhash: "50d0c0653cd1a798bcc5ba1cbfc70ded"
587587
job_title: "Chief Technology Officer"
588588
bio: "Chief Technology Officer at KSM Technology Partners LLC"
589+
tsegismont:
590+
name: "Thomas Segismont"
591+
email: "tsegismont"
592+
emailhash: "6ba99aebb0acd409215e7cdbfb561b7f"
593+
job_title: "Principal Software Engineer"
594+
bio: "Principal Software Engineer at Red Hat and Vert.x team member"
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
layout: post
3+
title: 'How Orange leverages Quarkus for seamless access to Telco network capabilities'
4+
date: 2025-03-12
5+
tags: user-story
6+
synopsis: Learn how Orange successfully deployed APIs across various 4G/5G network cores.
7+
author: tsegismont
8+
thumbnailimage: /assets/images/posts/quarkus-user-stories/orange/orange-logo.png
9+
---
10+
11+
:imagesdir: /assets/images/posts/quarkus-user-stories/orange
12+
13+
= How Orange leverages Quarkus for seamless access to Telco network capabilities
14+
15+
image::orange-logo.png[alt=Orange,align=center,width=256]
16+
17+
== Introduction
18+
19+
As a global telecommunications leader, https://www.orange.com[Orange] has always been at the forefront of innovation.
20+
Along with Deutsche Telekom, Telefónica, and Vodafone, Orange co-founded the https://camaraproject.org[Camara Project], an initiative aimed at simplifying the consumption of 5G APIs for third-party application developers.
21+
22+
To achieve this goal, Orange needed a flexible and lightweight framework capable of handling constrained API exposure while ensuring compatibility with existing network core systems.
23+
24+
After a rigorous evaluation of multiple frameworks and toolkits — including Quarkus, Ktor, Micronaut, and Vert.x — Orange selected Quarkus as the ideal solution.
25+
26+
https://www.linkedin.com/in/patriceconil/[Patrice Conil], software craftsman at Orange, told us why.
27+
28+
== Why Quarkus? A Framework Evaluation
29+
30+
The team at Orange embarked on a comparative study to test alternatives to Spring Boot in a well-defined API wrapper exposure context.
31+
Key evaluation criteria included:
32+
33+
- Learning Curve: How easily could a Spring developer transition?
34+
- Kotlin Compatibility: Could the framework work seamlessly with Kotlin?
35+
- Runtime footprint: Could it operate efficiently in a constrained environment?
36+
- Ease of Deployment: How smoothly could it be deployed on Kubernetes?
37+
38+
After extensive testing, Quarkus stood out for multiple reasons:
39+
40+
- Simplicity: A relatively simple learning curve, especially for those familiar with JAX-RS / Jakarta REST.
41+
- Dev Mode: Very fast startup, live reload and zero configuration Dev Services (Vault, Redis) result in great developer productivity.
42+
- Modularity: Only required dependencies were embedded, keeping applications lean.
43+
- Documentation: Well-organized, versioned documentation with working examples.
44+
- Native Compilation: The ability to generate compact native binaries for Kubernetes deployment.
45+
46+
Despite the strong competition from a vibrant JVM ecosystem, these advantages made Quarkus the preferred choice for exposing 5G APIs at Orange.
47+
48+
== Lessons Learned from Adopting Quarkus
49+
50+
=== Migration & Development Experience
51+
52+
Transitioning from Spring to Quarkus was not overly complex, especially for those familiar with JAX-RS / Jakarta REST.
53+
54+
The https://quarkus.io/guides/dev-services[Dev Services] significantly enhanced productivity in dev and test modes, but required careful consideration for their CI/CD environments, where no container runtime is availabe.
55+
56+
The modular approach ensured applications remained lightweight but introduced a large number of small dependencies to manage.
57+
58+
=== Spec-First API Development
59+
60+
As spec-first practitioners, integrating OpenAPI specification generation was a crucial requirement that Quarkus handled effectively.
61+
62+
=== Java & Kotlin Interoperability
63+
64+
While Quarkus supports Kotlin, writing full Kotlin extensions proved challenging at times.
65+
The team retained some Java code, and Java-Kotlin interoperability worked smoothly.
66+
67+
=== Native Compilation & Performance
68+
69+
Native compilation produced compact native executables, but the process of producing them was lengthy.
70+
The team reserved it for the final build stage when absolutely necessary.
71+
72+
Some fine-tuning was required to prevent class pruning issues.
73+
74+
=== Reactive Programming & Mutiny
75+
76+
Having worked extensively with Reactor, the transition to Mutiny had a learning curve.
77+
78+
While effective and more intuitive thanks to its navigable API, it was perceived as more verbose for the simple cases.
79+
80+
== Architecture Overview
81+
82+
Orange designed a microservices-based architecture to expose 5G APIs efficiently:
83+
84+
=== Microservices & API Wrappers
85+
86+
Each API wrapper was implemented as a dedicated microservice for better version control.
87+
The team leveraged Reactive APIs wherever possible, since there are a lot of time-consuming asynchronous tasks to be performed on the core network side and saving resources is a business goal.
88+
89+
=== CI/CD & Deployment
90+
91+
Each microservice had its own GitLab repository with an independent build pipeline for its Docker image.
92+
93+
Renovate was used to automate dependency upgrades.
94+
A dedicated deployment project pushed new Docker images to an OpenShift cluster using Kustomize + ArgoCD.
95+
96+
=== Infrastructure Components
97+
98+
Additional services included:
99+
100+
- Vault for secrets management
101+
- Redis for caching
102+
- Neo4j for database operations
103+
- Kafka for messaging
104+
105+
Vert.x HTTP Proxy was used for routing and backend protection.
106+
107+
== Results & Impact
108+
109+
After implementing Quarkus in production, Orange successfully **deployed ten APIs** across various 4G/5G network cores.
110+
Over time, the team performed **multiple Quarkus version upgrades (2.11 → 3.14)**, all well-managed through Renovate with minimal code adaptation—except for necessary adjustments during the migration to Jakarta EE.
Loading

0 commit comments

Comments
 (0)