table { border: #ddd solid 1px; } td, th { padding: 8px; border: #ddd solid 1px; } td p { font-size: 15px !important; }
Organizations across the globe and spanning various industries are turning to containerized microservices to innovate at speed. Many have adopted Red Hat OpenShift as a robust and highly-scalable enterprise-ready platform for hosting their containers.
There are so many Java frameworks available. Deciding which to use when developing on Red Hat OpenShift can be pretty challenging for developers. After all, the business needs the applications it relies on to run efficiently and to be able to scale up quickly when required.
This post compares how well three different Java frameworks – specifically Spring Boot, the community build of Quarkus on JVM, and the community build of Quarkus as a native Linux executable – optimized Java for Red Hat OpenShift. We’re going to be looking at an experiment Bankdata conducted last year.
Introducing Java frameworks
Let’s start by understanding what a Java framework is. In a nutshell, a Java framework is some reusable pre-written code that developers use when writing Java applications. You could see it as a template that allows developers to hit the ground running rather than having to start from scratch.
The Java framework may include everything from predefined classes to predefined functions. It may also include libraries, a compiler, and other programs used in the development process. Developers then build on the framework with whatever custom code the application needs. They don’t have to bother with any code that has already been pre-written within the framework they’ve selected.
Meet Bankdata
Bankdata conducted the comparison we’re going to be looking at here. As an IT service provider for several large Danish banks, Bankdata is one of Denmark's largest financial technology companies, with 750 employees. We provide complete IT solutions for its customers, who are also its owners. Eight Danish financial institutions own Bankdata.
Its mission is to ensure its customers have the best competitive advantages. For that, Bankdata must create, implement, and run high-quality IT solutions. Miracle, a Red Hat Premier Business Partner and solution provider in EMEA, helped Bankdata set up a new way of working a few years ago, including adopting Red Hat OpenShift Container Platform and building a CI/CD platform.
Bankdata is an innovator. We have a Central Expertise Team (CET) dedicated to testing out new technologies to create a more efficient IT environment and optimize costs, among other things. One specific area of their work is understanding how to optimize Bankdata’s OpenShift implementation to maximize resource efficiency.
Looking closely into how its apps were running on OpenShift, Bankdata noticed that some were a little “sluggish.” Checking resource consumption, we found around 80% of resources weren’t being used, they were being blocked in case some program might need them at some point.
Moreover, rollbacks (and boot-ups) could take up to 25 minutes – and that would mean far too much downtime if a fault were found in a microservice serving a mobile banking app, payment system or customer service portal. After all, what customer is going to wait in a queue for 25 minutes to make a payment?
Bankdata had the vision of being able to roll back faults almost instantaneously, meaning customers would only experience the very minimum of impact if one ever occurred.
Innovating with Quarkus
Miracle introduced Bankdata to Quarkus during a workshop a couple of years ago.
Thinking that maybe Quarkus could help, the team set up an experiment to compare resource efficiency between Spring Boot, Quarkus, and a native compilation of Quarkus, which we called "Quarkus-native." After all, Quarkus was built around a container-first philosophy, meaning it’s optimized for lower memory usage and faster startup times.
Bankdata was, at the time, using only the Spring Boot Java framework. The framework was working well in its complex IT environment. It met our security requirements and handled the classes, functions, and libraries that Bankdata's modern financial applications need. The question was, could Quarkus do the same – and improve resource efficiency too?
So, Miracle and the Bankdata team worked together to try to mirror their Spring Boot project generator. The generator allows developers to generate a base project that meets Bankdata’s very specific and complex security requirements, and other IT needs. After three months of coding, the new Quarkus version of the generator was ready.
Exciting results
We generated a bookstore application for the Spring Boot test using the old Spring Boot generator, then generated the same bookstore application for the Quarkus and Quarkus-native tests - this time using the new Quarkus project generator.
Two weeks of testing brought about outstanding results. Tests included running an idle test, a normal load test, and a stress test for each of the three Java frameworks.
Application |
Build time(seconds) |
Deploy time |
Boot-up time seconds |
Call/sec |
Call/sec Load |
MB/call |
MB/call Load |
CPU usage |
CPU usage Load |
Spring Boot |
175 |
68 |
175 |
40 |
107 |
0.084 |
0.07 |
0.031 |
0.21 |
Quarkus |
195 |
68 |
57 |
40 |
153 |
0.0704 |
0.062 |
0.036 |
0.23 |
Quarkus Native |
440 |
68 |
0.9 |
40 |
153 |
0.0194 |
0.03 |
0.009 |
0.15 |
During the stress test, we found that all three versions looked to be able to handle the same number of calls per second. However, when we looked at the number of megabytes per call, we saw Quarkus was processing more calls for the same memory.
We weren’t expecting to see the Quarkus-native application use less CPU, but we saw this surprising result consistently throughout the tests.
Designed for developers
Quarkus was designed to be easy to use right from the start, with features that work well with little to no configuration – and that is precisely what we found during the experiment. Quarkus was very easy to switch to and easy to work with. Developers found it to be very much like Spring Boot but perhaps “a little less confusing.” As such, it has the potential to improve developer productivity by optimizing efficiency.
After adopting Red Hat OpenShift, Bankdata realized that there might be more it could do to optimize its use of the container platform to move faster. In addition to providing the uptime we're looking for, migrating to Quarkus could reduce testing time for new developments so Bankdata could bring new services to market quicker.
While Bankdata has not yet decided whether to adopt Quarkus or Quarkus-native, it is hoping to go live with Quarkus in the third quarter of 2021 and has already started building templates. It is also planning to migrate to the Red Hat build of Quarkus soon.
And while Bankdata is already using Quarkus in production for a few non-critical microservices, the next step is to include migration of other small, rarely used microservices.. Three further steps will gradually see Quarkus migrations move to error-prone and increasingly critical microservices.
The experiments Miracle and Bankdata’s Central Expertise Team carried out suggest moving from Spring Boot to Quarkus offers real promise. Not only can using Quarkus with Red Hat OpenShift optimize computing resource usage and reduce boot times, it also provides a developer-friendly environment.
저자 소개
Michael Rahbek has been a Software Developer at Bankdata for over eight years. Prior to Bankdata, he worked as a Developer at Logica, a multinational IT consultancy company now owned by CGI Inc.
Jakob Svan Nielsen is Senior Manager at Atea A/S, a Red Hat partner located in Denmark. Atea A/S delivers open source development and infrastructure supported by automation and DevOps. Jakob has an extensive delivery background, and he is dedicated to the open source transformation agenda.
Lars Christensen is a department manager at Bankdata. He has 10 years experience with core banking systems and agile development.
Frederik Brokøb Sørensen is an Openshift Spring DevOps Developer at Bankdata. He studied IT at The Technical University of Denmark and has a Master's in Software Engineering from The University of Copenhagen.
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.