2021年年中前端、Java及云原生等企业IT架构的观察和预测 - AdamBien

以下是来自AdamBien博客的观察和个人预测:

  1. Kubernetes 赢得了“容器编排大战”,成为构建类云环境的标准。所有公共云都提供替代的编排解决方案,这些解决方案的复杂性和成本效益更高。对于大多数应用程序,谁管理容器并不重要。Kubernetes 成为一种商品——与 Linux 非常相似。Kubernetes 兼容性变得不那么重要,容器镜像和运行时的重要性仍然存在。
  2. 函数即服务FaaS,例如 AWS Lambda、Azure 函数、Google Cloud Functions或Oracle Cloud Functions,因其“杀手级功能”(例如事件侦听器和集成点)而变得越来越流行。很少有项目尝试将函数即服务用作通用编程模型。这种趋势应该会继续下去。
  3. 公共云可能很昂贵。在最初的兴奋之后,增长较慢的公司开始搬回他们的数据中心。我们会更频繁地听到 "repatriation" 一词。“无聊”的企业应用程序可以更经济高效地在本地运行。将现有应用程序“提升和转移”到云中对最终用户或业务部门没有任何好处。将单体重构为“云原生”微服务会带来额外的复杂性,但不会立即增加价值。2021 年以后,单体应用将成为另一种“最佳实践”。
  4. 云中的微服务实施起来尤其是运行起来可能更昂贵。我期待着“每月云账单驱动开发”的趋势,为了节省成本,将合理的微服务合并到一个不太合理的单体中。
  5. 公司开始注意到云可以更安全、更灵活,并带有身份验证、授权、加密和垂直服务,例如图像识别、通知、文本到语音、文本识别、欺诈检测、密钥轮换。此类服务很难在本地复制,并且是云的杀手级用例。在本地运行“无聊”的工作负载并选择有趣的云服务会带来灵活且经济高效的解决方案,并且应该取代更多教条式的策略。
  6. 无服务器应该是 2021 年的新趋势。几年前,“无服务器”是 AWS Lambda 的同义词。现在我们有了无服务器容器、数据库、工作流和事件流。无服务器仅意味着您可以将服务缩减为零,并停止为缩减的资源付费。我预计无服务器服务会出现明显的趋势。
  7. micronautquarkus等下一代运行时的兴起是无可争议的。它们共享相同的原则:部署发生在构建时,运行时变得简单、快速和灵活。没有反射,没有类加载。我希望Helidon能够通过重用 micronaut 的一些注释处理功能来迎头赶上。
  8. Quarkus 的受欢迎程度在去年爆炸式增长。很难找到没有尝试过 Quarkus的Java开发人员。对熟悉的 API(例如MicroProfile和Jakarta EE 的部分内容)的支持,加上占用空间小、启动时间短和GraalVM集成,为 Quarkus 提供了“不公平的优势”。
  9. Java 语言的创新速度在过去几年变得越来越快。我们得到了 Java Records、Text Blocks 和 instanceof Pattern Matching。随着时间的推移,将使用替代 JVM 语言的项目越来越少。普通 Java 将“足够好”。
  10. Java Records 窃取了 Lombok 的主要杀手级功能:getter/setter/builder 生成。Lombok 在企业项目中可能变得不那么重要。
  11. 纯Web 组件可用于所有浏览器。ES 模块随处可用,并且已经被认为是 JavaScript 模块化的未来。原生 JavaScript 解决方案的生产力和可维护性使得 JavaScript 框架的相关性降低。框架引入了复杂性、维护成本和大量的时间投资。2021 年以后,企业内外趋于简单“标准”的趋势可能会加剧。
  12. Visual Studio Code 中对纯 JavaScript 的强大“智能感知”和“重构”支持将使Typescrite随着时间的推移变得 不那么流行。Visual Studio Code 已经将 JavaScript 视为 TypeScript。
  13. 高效、简单、现代的 JavaScript 与 Web 组件和 ESM 兼容库(例如lit-html)相结合, 使得 npm 构建在开发人员的机器上是可选的。
  14. Apache Kafka将更多地被视为不可变的数据存储、单一的“真实来源”,而更多地被视为 Java Message Service / Jakarta Message Service 的“现代”替代品。
  15. Apache Kafka 是反应式编程 的自然用例,它将使反应式编程更加流行。
  16. Project Loom将消除非反应性资源中构建反应性编程的障碍。
  17. ARM 架构在短期内将在服务器和 PC 上更受欢迎,并可能在长期内主导市场。
  18. GraalVM 仍然被低估,通常只用于本地编译。除了原生编译,GraalVM 也是一个快速的 JVM 和多语言环境。我期待 GraalVM 的增长以及一个可行的竞争对手的出现。
  19. JavaFX与 GraalVM 结合提供了独特的可能性,可以将相同的本机应用程序运行在各种设备上。您可以开发一次 Java 应用程序并将它们提交到各种应用程序商店 - 甚至是 Apple AppStore。JavaFX 的受欢迎程度应该会增长。
  20. Project Panama:“互连JVM和本机代码”或新的“JNI”变得更加重要和流行。JVM 和 C 代码之间的原生集成在机器学习或 GPU 访问中起着至关重要的作用。
  21. Visual Studio Code 成为一个可行的 Java、云和 Web IDE,但是,VSC 功能在 Java 社区中仍未广为人知。因此,我预计 VSC 在项目中的使用会进一步增加。
  22. 无服务器服务器”,例如payara cloud,是一个有趣的案例。Payara Cloud 遵循与“下一代标准”相反的设计决策。应用服务器集群成为 Kubernetes Operator 并为您管理节点。您不关心服务器,只需要将ThinWAR推送到云端。Payara Cloud 隐藏了 Kubernetes 的复杂性并显着简化了基础设施。基础设施与业务代码严格分离。Payara Cloud 尚未正式发布,但可能成为在任何地方运行“无聊”应用程序的最高效方式。