网站首页模块,如何对网站进行推广,网站不被搜索引擎收录吗,wordpress英文导航模板传送门什么是云原生#xff1f;云原生设计理念.NET微服务Containers现在谈到云原生#xff0c; 绕不开“容器”。在《Cloud Native Patterns》一书中#xff0c;作者Cornelia Davis指出#xff1a;“容器是云原生应用的基石”#xff1b;云原生基金会将微服务容器化作为云… 传送门什么是云原生云原生设计理念.NET微服务Containers现在谈到云原生 绕不开“容器”。在《Cloud Native Patterns》一书中作者Cornelia Davis指出“容器是云原生应用的基石”云原生基金会将微服务容器化作为云原生旅行的第一步。很容易就想到将微服务容器化 过程也很简单。将代码、依赖项和运行时打包到一个称为容器镜像的二进制文件中。镜像存储在镜像仓库Docker官方维护了Docker Hub镜像仓库。需要时可以将镜像转换为可运行的容器实例该实例可在装有容器运行时引擎的任何计算机上运行你可以按需部署任意数量的容器实例。下图显示了三个微服务在单主机以容器化运行。每个容器维护自己的依赖关系和运行时这可能会有所不同,上图我们看到在同一主机上运行的Product微服务的不同版本。每个容器共享基础主机操作系统内存和处理器的一部分但彼此隔离。容器模型遵守“十二要素应用”的Dependencies原则。要素2指定“每个微服务隔离并打包其自己的依赖项、更改项(不影响整个系统)”容器同时支持Linux和Windows工作负载。虽然存在多个容器供应商但Docker已经成为打包、部署和运行云原生应用程序的事实标准Docker占据了最大的市场份额该公司一直在推动软件容器的发展。Why containers容器提供了移植性并保证在跨环境时能输出一致。通过将所有内容封装进单个程序包可以将微服务依赖项与基础设施隔离。你可以在安装Docker运行时引擎的 任何环境部署同一容器容器化消除了预先配置环境的时间开销 (for框架、程序库文件、和运行时)。通过共享底层操作系统和主机资源容器的占用空间比完整的虚拟机小很多小体积高密度在一台主机上可以运行多个微服务。容器编排Docker Api/工具创建镜像和容器你还需要工具管理容器。管理容器的软件称为容器编排器大规模使用容器时容器编排器至关重要。容器编排器做了什么 任务描述Scheduling自动配置、调度容器实例Affinity/anti-affinity在附近或相距较远的位置调配容器以提高可用性和性能Health monitoring自动探测并修复故障Failover自动将失败的实例转移到状况良好的机器Scaling自动增减容器 去匹配预期状态Networking给容器提供覆盖网络Service Discovery容器之间互相发现Rolling Upgrades零停机增量升级零停机自动回滚容器编排器遵循“十二要素应用程序”中的disposability和concurrency原则。要素9强调“服务实例应该是一次性的这样有利于快速启动(提供可伸缩能力)优雅关闭让系统保持正确状态”要素8强调“服务在大量小的相同进程副本上扩展而不是在可用的功能最强大的计算机上扩展单个大型实例”。目前市面上存在多个容器编排器但Kubernetes已成为云原生世界的事实标准这是一个可移植、可扩展的、开源的、管理容器的平台。你可以自建k8s集群自行调配和管理k8s资源这可能很复杂。Azure云将K8s作为托管服务(AKS),你只需要利用K8s功能而不需要维护K8s集群。Azure Kubernets Services在第2章“Scaling Cloud-Native Applications”中详细介绍。