前言,到底哪些应用适合云原生?
云原生应用适合于多种场景,包括高并发、高负载的Web应用、大数据处理、容器化应用程序、微服务架构、DevOps、智能物联网、云原生区块链应用以及大数据和机器学习。
- 高并发、高负载的Web应用:云原生应用可以快速扩展,以满足不断增长的用户访问需求。
- 大数据处理:云原生应用能够处理大量数据,并在处理时使用更少的计算资源。
- 容器化应用程序:云原生应用使用容器来管理和分配资源,具有灵活性和可移植性。
- 微服务架构:云原生应用通常采用微服务架构,提高模块化和可维护性。
- DevOps:云原生应用与DevOps文化相结合,实现自动化测试、部署和监控。
- 智能物联网:通过使用容器和Kubernetes等技术,构建高性能、可扩展的物联网平台。
- 云原生区块链应用:实现快速部署、弹性扩展、自动化运维等功能。
- 大数据和机器学习:通过使用容器和Kubernetes等技术,实现资源管理和弹性伸缩。
云原生应用通过利用云计算平台的资源管理能力,能够根据负载需求自动扩展或缩减资源,提供更好的性能和用户体验,同时有效利用资源并降低成本。此外,云原生应用还依赖于云平台提供的核心服务,如弹性计算、存储、数据库、消息队列等,为应用程序提供可靠且高性能的基础设施和数据存储支持12。
1. 云原生价值评估和分析
考虑一下您的组织需要构建哪些应用程序。然后,看看您投资组合中的现有应用程序。其中有多少需要云原生架构?全部需要?还是部分需要?
通过成本/收益分析,很有可能有人不会支持这一努力。云原生化的成本将远远超过应用程序的商业价值。
1.1 哪些类型的应用程序可能适合云原生?
- 需要不断发展业务能力/特性的战略企业系统
- 需要高发布速度的应用程序 - 具有高信心
- 必须发布单个功能而无需重新部署整个系统的系统
- 由精通不同技术栈的团队开发的应用程序
- 具有必须独立扩展的组件的应用程序
1.2 小规模应用的选择方向
规模较小、影响较小的业务线应用程序可能更适合在云 PaaS 环境中托管的简单单片架构。
然后是遗留系统。虽然我们都想构建新的应用程序,但我们通常负责对业务至关重要的遗留工作负载进行现代化改造。
2. 对旧版应用进行现代化改造
免费的 Microsoft 电子书《使用 Azure 云和 Windows 容器实现现有 .NET 应用程序的现代化》提供了有关将本地工作负载迁移到云的指导。
图 1-10 表明,对于实现遗留应用程序的现代化,并没有单一、一刀切的策略。
图 1-10 . 迁移旧式工作负载的策略
2.1 单片应用程序迁移
非关键的单片应用程序可能会受益于快速的直接迁移。在这里,本地工作负载被重新托管到基于云的 VM,而无需进行任何更改。此方法使用IaaS(基础架构即服务)模型。Azure 包含多种工具,如Azure Migrate、Azure Site Recovery和Azure 数据库迁移服务,以帮助简化迁移过程。虽然这种策略可以节省一些成本,但此类应用程序通常并非旨在释放和利用云计算的优势。
2.2 旧版应用程序迁移
对业务至关重要的旧版应用通常会受益于增强的云优化迁移。此方法包括部署优化,可启用关键云服务 - 而无需更改应用程序的核心体系结构。例如,您可以将应用程序容器化并将其部署到容器编排器,如本书后面讨论的Azure Kubernetes Services。一旦进入云,应用程序就可以使用云支持服务,例如数据库、消息队列、监视和分布式缓存。
2.3 迁移云原生后有哪些受益?
**提供战略性企业功能的单体应用可能从云原生方法(本书的主题)中获益最多。这种方法提供了灵活性和速度。**但是,它需要重新构建平台、重新架构和重写代码。随着时间的推移,遗留应用程序可以分解为微服务、容器化,并最终重新构建为云原生架构。
2.4 从哪些方面抉择是否选择云原生应用能?
如果您和您的团队认为云原生方法是合适的,那么您应该与您的组织一起合理化这一决定。云原生方法究竟能解决哪些业务问题?它如何与业务需求保持一致?
- 能否更加自信地快速发布功能?
- 细粒度的可扩展性——更有效地利用资源?
- 提高了系统弹性?
- 提高了系统性能?
- 更深入地了解运营情况?
- 融合开发平台和数据存储以获得最适合工作的工具?
- 面向未来的应用投资?
3. 总结
在本章中,我们介绍了云原生计算。我们提供了定义以及驱动云原生应用程序的关键功能。我们研究了可能值得进行这种投资和努力的应用程序类型。有了前面的介绍,现在我们将更详细地了解云原生。