Abraxas 使用 Quarkus 开发尖端税务应用程序

对于开发者来说,有两件事是确定的:Java 和税收。
在过去的 25 年里,Java 一直是开发者创建企业应用的主要框架。与此同时,开发者们也通过税收持续支持着各自的社区和国家。
Java 和税收有什么共同之处?Java,特别是 Quarkus,是 Abraxas Informatik AG 开发的一种新型创新税务解决方案的支柱,该解决方案面向瑞士政府税务机构。Quarkus 使基于 Java 的税务应用的开发对于开发团队来说既令人兴奋又具有创新性。
让我们进一步了解 Quarkus 如何将税务应用的创建变成一个令其开发者兴奋且有回报的项目。
挑战
Abraxas 是瑞士公共部门集成 IT 解决方案的最大供应商。他们做出了一项战略决策,即创建一个新的模块化、云原生税务解决方案,该解决方案可在瑞士各州和市政府中使用,以实施税法。每个州和市政府对公民征税都有不同的规则和要求,这对团队提出了独特的挑战。
Abraxas 成立了一个由专家组成的专门小组(Polaris 团队),负责税务解决方案的架构设计、开发和部署。虽然 Polaris 团队是大型组织的一部分,但它的运作方式非常像一家初创公司。这使团队能够识别和实施最佳技术来满足客户的需求。
Abraxas 正在采用“云优先”战略开发其产品,税务应用需要在基于浏览器的集群式、可扩展、安全的环境中部署。Abraxas 能够利用其自身的云平台“Abraxas Government Cloud”,该平台为其客户提供基于 Kubernetes 的云解决方案。
解决方案
税务应用是云原生的且灵活,因此可以被全国不同的州和市政府使用。Quarkus 与其他 Java 框架和平台进行了分析比较,并因其在 Kubernetes 环境中的性能、效率和开发者生产力而被选中作为该应用的支柱。
架构
无论是州还是市政府,每个客户都有其独特的需求。因此,每个客户都有其自己的集群式 Kubernetes 环境,该环境可以针对其特定需求进行配置。
税务应用基于容器化的微服务架构,每个服务根据业务需求进行拆分。一个优势是,这允许开发团队在需要时轻松地用不同的业务逻辑替换服务。
Polaris 团队为每个客户提供灵活的发布环境,包括在私有云(本地部署)或托管云环境中部署的能力。Abraxas 平台团队根据客户端要求配置云基础设施。开发团队能够配置其自定义环境并部署其应用。税务解决方案目前处于开发阶段,并在开发和预发布环境中运行,计划于 2022 年推出生产版本,并在不久之后进行更新和增强。
-
PostgreSQL
-
Hibernate/ORM
-
Flyway
-
Cache
-
RESTEasy (Jackson)
-
REST Client (Jackson)
-
Kafka (Reactive Messaging)
-
Health
-
Metrics (Micrometer)
-
OpenAPI/Swagger
-
OpenTracing
-
Scheduler
-
Fault Tolerance
-
Junit5 + Mockito
-
Test H2
-
In-Memory Reactive Messaging
-
Jacoco
为什么选择 Quarkus?
Quarkus 被选为 Spring Boot、Micronaut 和 Helidon 等替代方案。虽然 Spring 是 Abraxas 中占主导地位的 Java 框架,但 Polaris 团队选择 Quarkus 的原因有很多,包括它在 Kubernetes 环境中的卓越性能。
该团队特别强调了 Quarkus 的性能、庞大的扩展生态系统、本机编译和开发者生产力工具(实时重新加载、Dev UI)是决定使用 Quarkus 的因素。
Polaris 团队对 Quarkus 社区也印象深刻,尤其是与其他社区相比,因为它充满活力、发布节奏快、具有本机编译能力等等。
学习曲线
有什么学习曲线?
Quarkus 开发者一直评论说,该框架非常容易理解并且可以创建有意义的应用。Abraxas 的开发者也有同样的体验,但希望更进一步。他们创建了一个自定义的“Hello, world!”应用培训项目,以便其团队中的新开发者轻松学习如何实现 Quarkus。该项目包括 PostgreSQL、Kafka 和 REST 端点。新开发者通常在 1-2 周内就能掌握该技术并开始运行,这使得新开发者的入职变得很容易。
下一步是什么?
虽然该应用的第一个版本计划于 2022 年发布,但该应用将持续发展。Polaris 团队已经在寻找提高性能、可靠性、安全性和可扩展性的方法。这包括诸如为微服务实施反应式架构之类的事情。
从组织的角度来看,Polaris 团队正在努力通过内部 TechTalk 等方式将其 Quarkus 知识和经验转移到组织内的其他团队。他们最大的挑战之一是克服对切换到其他 Java 框架的犹豫,这通常需要陡峭的学习曲线。
Polaris 项目团队的架构师和后端软件工程师 Bernhard Lutzmann 说得最好:“Quarkus 的学习曲线非常短。Quarkus 有许多很棒的资源,包括指南、博客和 Zulip 上一个支持性的社区。”
经验之谈
到目前为止,Polaris 团队在使用 Quarkus 的应用之旅中学到了很多东西。他们对其他正在考虑使用 Quarkus 的人有一些有用的建议。
“Quarkus 的新手开发者经常想知道为什么 Stack Overflow 上的问题如此之少。这是因为用户和 Quarkus 团队之间的主要讨论发生在 Zulip 上。去那里,你很快就会得到你问题的答案,通常是 Quarkus 团队直接回答。” - Bernhard Lutzmann
“在考虑 Quarkus 的本机功能时,请确保你使用的库是本机兼容的。最好的方法是尽可能使用核心 Quarkus 扩展。” - Bernhard Lutzmann,Polaris 项目架构师和后端软件工程师
Abraxas 正在招聘
对于瑞士及其他地区的 Java 开发者来说是个好消息。Abraxas 正在招聘,并希望引进思想开放且不怕积极参与的新团队成员。Abraxas 鼓励其开发者花时间研究其他技术。如果你住在瑞士或者正在考虑搬到那里,请查看他们的职位空缺。