Abraxasが最先端の税務アプリにQuarkusを採用
開発者の人生には確かなことが2つあります。Javaと税金です。
過去25年間にわたって、Javaはエンタープライズアプリケーションを作成する開発者にとって圧倒的なフレームワークとなっています。その間、開発者は税金を払って、それぞれのコミュニティや国を支え続けてきました。
Javaと税金の共通点とは?Java、特にQuarkusは、 Abraxas Informatik AGが開発したスイス政府の税務機関を対象とした新しく革新的な税務ソリューションのバックボーンとなっています。Quarkusによって、Javaベースの税務アプリケーションの開発は、開発チームにとってエキサイティングで革新的なものになりました。
Quarkusがどのようにして税務アプリケーションの作成を、開発者にとってエキサイティングでやりがいのあるプロジェクトに変えたのか、もう少し詳しく見てみましょう。
チャレンジ
Abraxas社は、スイスの公共部門向けに統合ITソリューションを提供する最大手の企業です。Abraxas社は、スイスの州や市町村が税法を施行する際に使用できる、モジュール式のクラウド・ネイティブな税務ソリューションを新たに開発するという戦略的な決断を下しました。各州や市町村は、市民への課税に関する規則や要件が異なるため、チームには独自の課題がありました。
Abraxas は、税務ソリューションを設計、開発、展開するために、専門家のグループ(チームポラリス)を結成しました。ポラリスチームは、大規模な組織の一部ではありますが、スタートアップに近い形で活動しています。このチームは、お客様のニーズを満たすために、最適なテクノロジーを見極め、導入することができました。
Abraxasは「クラウドファースト」戦略で製品を開発しており、税務アプリケーションはブラウザベースのクラスター化されたスケーラブルでセキュアな環境に展開される必要があります。Abraxasは、Kubernetesベースのクラウドソリューションを顧客に提供している自社のクラウドプラットフォーム「Abraxas Government Cloud」を活用することができました。
ソリューション
この税務アプリケーションは、国内のさまざまな州や市町村で使用できるように、クラウドネイティブで柔軟性に富んでいます。Quarkusは、他のJavaフレームワークやプラットフォームと比較して分析され、パフォーマンス、効率性、Kubernetes環境での開発者の生産性が評価され、このアプリケーションのバックボーンとして選ばれました。
アーキテクチャ
州や市町村などのお客様は、それぞれ独自の要件やニーズをお持ちです。そのため、お客様ごとにクラスター化されたKubernetes環境を用意し、それぞれのニーズに合わせて設定できるようにしています。
税務アプリケーションは、コンテナ化されたマイクロサービスアーキテクチャをベースに、ビジネスニーズに応じて各サービスが分割されています。これにより、必要に応じて開発チームがサービスを異なるビジネスロジックに簡単に置き換えることができるという利点があります。
チームポラリスは、プライベートクラウド(オンプレミス)やホステッドクラウド環境での展開を含め、各顧客に柔軟な配信環境を提供しています。Abraxasのプラットフォームチームは、お客様の要件に応じてクラウドインフラストラクチャを準備します。開発チームは、カスタマイズされた環境を構成して、アプリケーションを展開することができます。税務ソリューションは現在、開発段階にあり、開発環境とステージング環境の両方で稼働しています。
-
PostgreSQL
-
Hibernate/ORM
-
Flyway
-
Cache
-
RESTEasy (Jackson)
-
REST Client (Jackson)
-
Kafka (Reactive Messaging)
-
Health
-
Metrics (Micrometer)
-
OpenAPI/Swagger
-
OpenTracing
-
スケジューラー
-
フォールトトレランス
-
Junit5 + Mockito
-
Test H2
-
インメモリ・リアクティブ・メッセージング
-
Jacoco
なぜQuarkusなのか?
Quarkusは、Spring Boot、Micronaut、Helidonなどの候補の中から選ばれました。AbraxasではSpringが主流のJavaフレームワークですが、Polarisチームは、Kubernetes環境での優れたパフォーマンスなど、多くの理由からQuarkusを選択しました。
チームは、Quarkusのパフォーマンス、広大なエクステンションエコシステム、ネイティブコンパイル、開発者の生産性向上のためのツール(ライブリロード、Dev UI)をQuarkusの採用を決定する要因として特に強調しました。
また、Polarisチームは、Quarkusコミュニティの活発な活動、リリースケイデンス、ネイティブコンパイル機能など、他のコミュニティと比較して特にQuarkusコミュニティに感銘を受けました。
学習曲線
どんな学習曲線?
Quarkusの開発者は、フレームワークを理解して有意義なアプリケーションを作成するのがいかに簡単かということを常にコメントしています。Abraxasの開発者も同じ経験をしましたが、さらに一歩先に進みたいと考えていました。彼らは、チームの新しい開発者がQuarkusの導入方法を簡単に学べるように、カスタムの「Hello, world!このプロジェクトには、PostgreSQL、Kafka、RESTエンドポイントが含まれています。新しい開発者は通常1~2週間でこの技術を使いこなせるようになり、新しい開発者の受け入れが容易になりました。
次のステップ
アプリケーションの最初のリリースは2022年を予定していますが、アプリケーションはそれよりもずっと先まで続きます。チームポラリスはすでに、パフォーマンス、信頼性、セキュリティ、スケーラビリティを向上させる方法を模索しています。これには、マイクロサービスのリアクティブアーキテクチャの実装などが含まれます。
組織的な観点から見ると、Polarisチームは社内のTechTalksなどを通じて、Quarkusの知識や経験を組織内の他のグループに伝えることに懸命に取り組んでいます。彼らの最大の課題の1つは、急な学習曲線を必要とすることが多い他のJavaフレームワークへの変更をためらう気持ちを克服することです。
Polarisプロジェクトチームのアーキテクト兼バックエンドソフトウェアエンジニアであるBernhard Lutzmann氏は、このように述べています。 "Quarkusの学習曲線は極めて短いものでした。Quarkusには、ガイド、ブログ、Zulipのサポートコミュニティなど、数多くの素晴らしいリソースがあります。"
金言
Polarisチームは、Quarkusを使ったアプリケーションの旅でこれまでに多くのことを学びました。彼らは、Quarkusの使用を検討している他の人々に有益なアドバイスをしています。
"Quarkusを初めて使う開発者は、Stack Overflowに質問が少ないことを不思議に思うことがよくあります。これは、ユーザーとQuarkusチームの間の主な議論が Zulip で行われているからです。そこに行けば、質問に対する回答がすぐに得られ、多くはQuarkusチームが直接回答しています。"- Bernhard Lutzmann
"Quarkusのネイティブ機能を検討する際には、使用するライブラリがネイティブに対応しているかどうかを確認してください。最良のアプローチは、できるだけ長くコアのQuarkusエクステンションを使い続けることです。"- Polarisプロジェクトアーキテクト兼バックエンドソフトウェアエンジニア、Bernhard Lutzmann氏
Abraxasは採用中です
スイスやその他の国のJava開発者に朗報です。Abraxasでは、オープンマインドで積極的に参加することを恐れない新しいチームメンバーを採用したいと考えています。Abraxasは、開発者が他の技術に目を向けることに時間を費やすことを奨励しています。スイスにお住まいの方、またはスイスへの移住を検討されている方は、同社の 求人情報をご覧になってみてください。