什么,这次的项目决定不用K8S了?那该如何上线一个容器服务?

文摘   2024-07-01 08:00   挪威  

背景

最近接到了一个新的项目,需要开发一个数字化CRM系统,用于管理物资、客户信息等。然而,这次的项目并不需要我熟悉的Kubernetes(K8S),这是为什么呢?

团队介绍说之前的项目使用了Kubernetes,但由于系统过于复杂,开发人员抱怨学习成本太高,最终导致项目搁浅。

实际上,对于Kubernetes架构过于复杂的批评一直存在。必须承认,Kubernetes中的概念和知识点确实繁多,对于初学者来说门槛颇高。(分享下之前看过的一篇文章https://mp.weixin.qq.com/s/9Q9kze9D2LT0-G2lXSvADg)

解决方案


对于小团队和小型项目来说,也许确实并不需要什么微服务和云原生架构。考虑到客户使用的是Azure云服务,我提出了一个简单的架构方案,利用App Service也可以轻松上线容器服务。

部分架构图如下


让GTP先简单介绍下都用到Azure哪些服务吧!

Azure App service

Azure App Service 是微软提供的一个高度可扩展的云平台服务 (PaaS),用于快速构建、部署和管理各种应用程序。它支持多种编程语言和框架,包括 .NET、Java、Node.js、Python、PHP 和 Ruby。Azure App Service 的主要功能和特点包括:


自动缩放和负载均衡:根据流量需求自动调整资源,确保应用程序在高峰期也能正常运行。

持续集成和部署:与 GitHub、Azure DevOps 等工具集成,实现自动化的持续集成和部署流程。

高可用性和灾难恢复:内置高可用性和自动故障转移机制,确保应用的稳定性和可靠性。

安全性:提供企业级的安全特性,包括身份验证和授权、SSL/TLS 加密、虚拟网络集成等。

开发者友好:支持 Visual Studio、Visual Studio Code 等常用开发工具,简化开发和调试过程。

监控和诊断:内置应用性能监控和日志记录功能,帮助开发者快速发现和解决问题。

Azure key vault 

Azure Key Vault 是微软 Azure 提供的一项云服务,用于集中管理和保护敏感信息,例如密钥、密码、证书和其他机密数据。它为企业提供了一个安全的存储库,帮助保护应用程序和服务的机密数据。Azure Key Vault 的主要功能和特点包括:


密钥管理:安全地生成和管理加密密钥,用于数据加密和解密。支持各种加密算法和密钥类型。

机密管理:安全地存储和访问应用程序所需的敏感信息,如 API 密钥、数据库连接字符串等。

证书管理:简化 SSL/TLS 证书的创建、导入和管理流程,支持自动续订和部署。

访问控制:通过 Azure Active Directory (AAD) 实现严格的访问控制,确保只有授权用户和应用程序才能访问存储在 Key Vault 中的机密信息。

审计日志:记录对 Key Vault 的所有访问和操作,提供详细的审计日志,帮助用户进行安全审查和合规性检查。

集成和自动化:与 Azure 其他服务(如 Azure App Service、Azure Functions 等)无缝集成,支持 DevOps 工具和自动化脚本,通过 API 或者 Azure CLI 进行管理。

Azure App service

Azure Key Vault 是微软 Azure 提供的一项云服务,用于集中管理和保护敏感信息,例如密钥、密码、证书和其他机密数据。它为企业提供了一个安全的存储库,帮助保护应用程序和服务的机密数据。Azure Key Vault 的主要功能和特点包括:


Azure Database for MySQL 是微软 Azure 提供的一项完全托管的数据库服务,基于开源的 MySQL 数据库引擎。它为用户提供了高可用性、自动备份、自动修补和安全性等功能,简化了 MySQL 数据库的管理和维护。以下是 Azure Database for MySQL 的主要功能和特点:


完全托管:Azure Database for MySQL 是一项完全托管的服务,微软负责数据库的基础设施管理,包括硬件维护、操作系统和数据库软件的更新和修补。

高可用性:内置高可用性功能,通过多区域复制和自动故障转移机制,确保数据库在发生硬件故障或区域性中断时仍能正常运行。

自动备份和恢复:提供自动备份功能,并支持基于时间点的恢复,用户可以轻松恢复到任何指定时间点的数据。

可扩展性:根据业务需求,用户可以随时调整计算资源和存储容量,支持从小规模应用到大规模企业级应用的各种需求。

安全性:提供多层次的安全保护,包括数据加密(静态数据和传输中的数据)、虚拟网络集成、身份验证和访问控制等。

监控和性能优化:内置性能监控和调优工具,帮助用户实时监控数据库性能,识别和解决性能瓶颈。

兼容性:完全兼容开源 MySQL,支持现有的 MySQL 工具、库和应用程序,简化迁移和集成过程。

开发者友好:支持流行的开发工具和框架,如 Visual Studio、Eclipse、PHP、Python、Node.js 等,方便开发者进行快速开发和部署。



Azure Frontdoor

Azure Front Door 是微软 Azure 提供的一项全球分布式的应用交付网络服务,旨在优化应用程序的性能、安全性和高可用性。它通过结合全局负载均衡、内容分发网络 (CDN) 和应用程序防火墙 (WAF) 等功能,为用户提供高效、可靠的应用交付解决方案。以下是 Azure Front Door 的主要功能和特点:


1. **全球负载均衡**:Azure Front Door 使用全球 Anycast 技术,将用户请求路由到最近的 Azure 前端节点,从而降低延迟,提高响应速度。

2. **内容分发网络 (CDN)**:通过缓存静态内容(如图像、视频、CSS 和 JavaScript 文件)在全球各地的边缘节点上,减少原始服务器的负载,加快内容交付速度。

3. **应用程序防火墙 (WAF)**:提供内置的 WAF 功能,保护应用程序免受常见的 Web 漏洞攻击,如 SQL 注入、跨站脚本 (XSS) 和其他 OWASP Top 10 威胁。

4. **SSL/TLS 加密**:支持端到端的 SSL/TLS 加密,确保数据在传输过程中的安全性。

5. **智能路由**:基于 URL 路径、HTTP 请求方法、HTTP 头等规则,将流量智能路由到后端服务,支持 A/B 测试、蓝绿部署等场景。

6. **高可用性和故障转移**:通过多区域部署和自动故障转移机制,确保应用程序在发生区域性中断时仍能保持高可用性。

7. **自定义域名和证书管理**:支持自定义域名,并提供自动证书管理功能,包括免费 SSL 证书的自动续订。

8. **实时监控和分析**:提供详细的流量分析和监控功能,帮助用户了解应用程序的性能和流量模式,快速识别和解决问题。


Azure Front Door 适用于需要全球分布、高性能和高可用性的应用程序,如电子商务网站、媒体流服务和企业级 Web 应用。通过使用 Azure Front Door,企业可以显著提升用户体验,同时增强应用程序的安全性和可靠性。


总的来说,对于不同规模和需求的项目,选择合适的技术架构至关重要。在这个项目中,我们将根据实际情况灵活选择技术方案,以确保项目顺利进行并取得成功。

下一篇文章我将详细介绍如何利用APP service快速搭建CRM系统,并从网络架构、安全性、存储备份以及使用Terraform实现基础设施代码化等方面来探讨其中的细节。我们下回见!


加入知识星球,共同探索云原生学习之旅!

更多K8S学习资料以及SRE学习手册,请扫码关注哦!

云原生SRE
懂点K8S的SRE,关注云原生、DevOps、AI&ChatGPT等技术热点
 最新文章