云原生:微服务、Kubernetes、服务网格、CI/CD
Cloud-Native: Microservices, Kubernetes, Service Mesh, CI/CD\
主云原生:微服务、容器、Kubernetes、服务网格、gRPC、Helm、Redis、Kafka、CI/CD、GitOps、ELK。
学习内容
-
云原生支柱:微服务、容器、编排器、通信、后备服务、可伸缩性、DevOps CI/CD、监控
-
使用 aspnet Web 最小 API 设计和开发微服务体系结构。
-
使用 Docker 和 containerd 等云原生工具容器化微服务。
-
使用 Kubernetes、docker swarm 等容器编排器编排容器。
-
在 Kubernetes 上部署和管理微服务。
-
了解用于微服务编排的服务网格和 Kubernetes 原生解决方案。
-
使用 Istio 等服务网格在 Kubernetes Pod 之间进行通信。
-
在云原生中实现后备服务:数据库、分布式缓存、消息代理
-
使用 Horizontal Pod Autoscaler (HPA) 和 Kubernetes 事件驱动自动缩放 (KEDA) 在 Kubernetes 中自动缩放应用程序。
-
使用 Github Actions、Terraform、ArgoCD 等云原生工具将 DevOps、CI/CD 管道、IaC、GitOps 原则实施到架构中。
-
将 Prometheus、Grafana、ELK 堆栈集成到 Kubernetes 集群中进行监控和可观测性
-
了解前沿的 Kubernetes 模式和无服务器
-
使用 Minikube 在 Kubernetes 集群上部署 Redis 和 Kafka 节点
-
使用云原生景观工具开发 10+ 动手实验室
-
使用 AWS 云服务开发无服务器架构
要求
-
软件架构基础
描述
在本课程中,我们将学习如何使用微服务架构、Kubernetes 部署、通信、后备服务、CI/CD 管道以及监视模式和最佳实践来设计和构建云原生应用。
云原生是一个巨大的话题,需要组织如何很好地消化所有话题。我们将遵循从容器化和编排开始的云原生试用图,然后是 CI/CD、服务网格、可伸缩性、分布式数据库。在每一步中,我们都会遵循云原生支柱,学习云原生架构,访问云原生工具,探索和理解这些工具,使用这些工具设计架构,最后在 Kubernetes 集群上开发 +20 个动手实践项目。
云原生支柱地图 – 课程地图
在这里,您可以找到我们关于“云原生支柱”的课程地图:
-
微服务
-
器皿
-
编排器
-
通信(服务网格)
-
后备服务(K8s 分布式数据库、缓存、消息代理)
-
可扩展性(HPA、KEDA)
-
Devops CI/CD IaC GitOps
-
监控和可观测性
在整个课程中,我们将遵循这些云原生支柱的架构设计和实现。
微服务:
了解微服务体系结构的基础知识及其优势,以及如何设计和开发示例微服务应用程序。我们将学习、探索、设计和开发示例微服务应用程序。
器皿:
我们将对微服务进行容器化。我们将学习如何使用 Docker 和 containerd 等云原生工具容器化我们的微服务。
业务流程协调程序:
我们将通过学习和使用容器编排器(如 Kubernetes、docker swarm 等)来编排这些容器。我们将获得 Kubernetes 和 Docker Swarm 等容器编排平台的实践经验,以管理您的容器化应用程序。
通信:
之后,我们将看到如何使用 istio 等服务网格在 Kubernetes Pod 之间进行通信。我们将了解如何使用像 Istio 这样的服务网格来促进 Kubernetes Pod 之间的通信。
支持服务:
我们将为我们的架构实现后备服务,将检查 3 个子类别中的后备服务:数据库、分布式缓存、消息代理。我们将学习如何将数据库、缓存和消息代理等后备服务部署和集成到 Kubernetes 集群中。
可扩展性:
我们将使用 HPA 和 KEDA 将应用程序自动扩展到 Kubernetes。我们将使用 Horizontal Pod Autoscaler (HPA) 和 Kubernetes 事件驱动自动缩放 (KEDA) 为 Kubernetes 中的应用程序实现自动缩放。
Devops CI/CD:
我们将使用 GitHub Actions、Terraform、ArgoCD 等云原生工具将 DevOps、CI/CD 管道、IaC、GitOps 原则实施到我们的架构中。
监测:
我们将在 Kubernetes 集群中实施 Prometheus、Grafana、ELK 堆栈等监控和可观测性工具,并执行云原生可观测性的最佳实践。
所有这些步骤,我们不仅将探索云原生工具,还将探索云无服务器服务,如微服务中的 AWS Lambda、编排器中的 AWS Fargate、Amazon DynamoDB、Azure CosmosDB、服务总线 – Azure 服务总线、Amazon Eventbridge 等。
学习方式 – 课程流程
学习方法将是;
-
学习 -> 探索 -> 设计 -> 动手实践
我们将学习云原生架构,访问云原生工具,探索和了解这些工具。并使用这些工具设计架构,最后我们将进行动手实验来实践工具和云原生架构。
实践项目
在课程中,我们将为每个云原生支柱提供一系列动手实验,以加强您的理解并提供实践经验。
-
动手实践:使用 CRUD 开发 RESTful 微服务
-
动手实践:使用 Docker 容器化 .Net 微服务
-
动手实践:将微服务部署到 Kubernetes
-
动手实践:使用 Helm Chart 将微服务部署到 Kubernetes
-
动手实践:使用 Service Mesh Istio 和 Envoy 将微服务部署到 Kubernetes
-
动手实践:使用 Minikube 在单个 Kubernetes 集群中部署 CockroachDB
-
动手实践:使用 Minikube 在 Kubernetes 集群上部署云原生 Redis 缓存
-
动手实践:使用 Minikube 在 Kubernetes 集群上部署云原生 Kafka 消息代理
-
动手实践:使用 Minikube 自动扩展 Kubernetes Pod(VPA、HPA、KEDA)
-
动手实践:在 Amazon EKS Fargate 上部署微服务
-
动手实践:Terraform IaC 预置 AWS EC2 实例
-
动手实践:用于构建 Docker 映像并将其推送到 DockerHub 的 GitHub Actions CI/CD
-
动手实践:使用 Prometheus 和 Grafana 进行 Kubernetes 监控
此外,我们还将看到 AWS Serverless Labs,展示云原生架构如何在完全云无服务器服务上工作,尤其是对于 AWS 服务:
-
动手实践:将 ProductService 容器部署到 AWS Apprunner
-
动手实践:使用 AWS Lambda、API Gateway 和 DynamoDB 构建 RESTful 微服务
-
动手实践:Amazon SNS 通知主题订阅 AWS Lambda
这些动手实验将为你提供应用你在整个课程中学到的概念、工具和最佳实践的实践经验。
课程目标
本课程有1个主要目标:
-
作为云原生架构板的软件开发人员/架构师,成为决策者。
本课程专为有兴趣了解云原生技术以及如何在实际场景中应用这些技术的软件开发人员和架构师而设计。
-
动手设计和开发活动
-
将最佳实践应用于云原生微服务设计模式和原则
-
使用云原生工具进行探索和实践,了解何时何地使用这些工具
-
准备软件架构面试
-
准备系统设计架构面试考试。
在本课程结束时,你将获得实际经验,你将对云原生生态系统有深入的了解,并准备好使用微服务、Kubernetes、服务网格、CI/CD 管道等设计、构建和部署你自己的云原生应用程序。
本课程适合谁:
- 本课程面向愿意在企业应用程序中学习云原生环境的开发人员、架构师、云工程师、DevOps 顾问
评论(0)