本文介绍适用于 Java 的 GitHub Copilot 应用现代化提供的预定义公式。
预定义公式捕获使用 Azure 服务的行业最佳做法。 目前,适用于 Java 的应用现代化提供了涵盖常见迁移方案的预定义公式。 这些公式解决了以下主题,等等:
- Secret management
- 消息队列集成
- Monitoring
- Identity management
Note
此列表将根据客户反馈和不断变化的云需求而增长。
以下视频演示了如何使用适用于 Java 的 GitHub Copilot 应用现代化来应用预定义公式将 Java 项目迁移到 Azure:
Formula list
适用于 Java 的应用现代化目前支持以下预定义公式:
将 Spring RabbitMQ 转换到 Azure 服务总线
此公式转换将 Spring 消息传递框架(包括 Spring 高级消息队列协议 (AMQP) 和 Spring Java 消息服务 (JMS))与 RabbitMQ 配合使用的应用程序,将其更改为使用托管服务 Azure 服务总线。 消息队列交互逻辑已适应 Azure 服务总线等效项,在默认情况下启用安全身份验证机制的同时保留消息传送模式和语义。
用于将数据库迁移到 Azure 的托管标识
Azure 数据库产品/服务 - Azure SQL Server、Azure Database for MySQL、Azure Database for PostgreSQL、Azure Cosmos DB for Cassandra API 和 Azure Cosmos DB for MongoDB - 支持使用托管标识进行安全登录。 将应用程序从本地数据库迁移到托管的 Azure 云数据库时,此公式可帮助你为数据库进行托管标识身份验证准备代码库。
Azure 上用于迁移凭据的托管标识
使用连接字符串进行身份验证会导致安全漏洞和维护开销。 此公式将 Java 应用程序转换为将 Azure 的托管标识身份验证用于 Azure 事件中心和 Azure 服务总线等消息传递服务。 通过与Microsoft标识客户端库集成,代码不再需要在配置文件中存储敏感连接字符串或共享访问签名。
Amazon Web Services (AWS) S3 转换至 Azure 存储 Blob
将服务从 AWS 迁移到 Azure 时,可以从 AWS S3 过渡到 Azure 存储 Blob。 此公式可帮助你将与 AWS S3 交互的代码逻辑转换为使用 Azure 存储 Blob作的代码逻辑,同时保持相同的语义。
登录到本地文件
默认情况下,Azure 托管服务与 Azure Monitor 集成,将日志输出收集到控制台,并使你能够查询和监视它们。 同时,不建议登录到云环境中的文件,因为它需要额外的日志轮换和传输。 此公式可帮助你将应用程序中基于文件的日志记录转换为基于控制台的日志记录,使其可以与 Azure Monitor 集成。
本地文件 I/O 到 Azure 存储文件共享挂载
Azure 托管服务在预配、缩放、故障转移等方面提供灵活性和更多功能。 同时,给定应用程序运行时的文件系统是暂时性的。 如果应用程序从本地文件读取或写入文件,此公式可帮助你识别此类情况并将其转换为统一的装载路径访问。 为此,可以将 Azure 存储文件共享装载到指定路径,使应用程序能够在不同副本之间共享和保留数据,而不必担心重定位、故障转移或类似问题。
使用 Java 发送邮件到 Azure 通信服务
使用简单邮件传输协议 (SMTP) 依赖项迁移应用程序可能很困难,因为并非所有 Azure 环境都支持端口 25 上的传出请求。 此公式有助于转换通过 SMTP 发送邮件以使用与 Azure 托管环境完全兼容的 Azure 通信服务的应用程序。
Azure Key Vault 的机密和证书管理
此公式有助于将敏感安全资产迁移到 Azure Key Vault。 它支持代码库中的硬编码机密和 Java KeyStore 中管理的本地 TLS/mTLS 证书。 对于机密,它标识可疑的机密文本,并将其转换为从 Azure Key Vault 检索数据的逻辑。 对于证书,它将应用程序从在本地管理证书过渡到使用 Azure Key Vault 的 Java 加密体系结构(JCA)提供程序,同时保持相同的功能和安全态势。
用于Microsoft Entra ID 身份验证的用户身份验证
Java 应用程序通常使用不容易迁移到 Azure 的基于 LDAP 的身份验证解决方案。 此公式可帮助你将本地用户身份验证机制转换为使用 Microsoft Entra ID 进行身份验证的身份验证机制。
SQL 方言:Oracle 到 PostgreSQL
从 Oracle 转换到 PostgreSQL 时,SQL 方言中的差异可能会带来重大挑战。 此公式将 Java 代码中特定于 Oracle 的 SQL 查询、数据类型和专有函数转换为其 PostgreSQL 等效项,确保与 Azure Database for PostgreSQL 无缝集成。
AWS 机密管理器转换至 Azure Key Vault
从 AWS 机密管理器迁移到 Azure Key Vault 需要重新配置应用程序如何处理敏感信息。 此公式转换代码中机密管理的各个方面(从创建和检索到更新和删除)并利用 Azure Key Vault 的综合安全功能和身份验证模型。
ActiveMQ 到 Azure 服务总线
可以在 Apache ActiveMQ 上构建的应用程序现代化,以利用 Azure 的托管消息传送服务。 此公式将 ActiveMQ 消息生成者、使用者、连接工厂和队列/主题交互转换为其 Azure 服务总线等效项,实现云环境中可靠性和身份验证的最佳做法。
Amazon Web Services (AWS) 简单队列服务 (SQS) 转换至 Azure 服务总线
从 AWS SQS 迁移到 Azure 服务总线涉及重新实施队列操作和消息处理模式。 此公式将特定于 SQS 的代码结构转化为其 Azure 服务总线的对应项,保留至少一次传递、消息批处理和可见性超时行为等关键消息传递语义,同时引入 Azure 的增强型安全功能。