项目
博客
文档
归档
资源链接
关于我
项目
博客
文档
归档
资源链接
关于我
43| 云计算&Docker容器化部署存在的问题和解决方案
2024-09-20
·
·
原创
·
·
本文共 700个字,预计阅读需要 3分钟。
### 云计算知识-公有云-私有云-混合云你知道多少 云计算:一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算机资源共享池(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供 优势和特点 * 虚拟化:将一台计算机虚拟为多台逻辑计算机,相互独立的空间内运行而互不影响 * 动态可扩展:能够使计算速度迅速提高,最终实现动态扩展虚拟化的层次达到对应用进行扩展的目的 * 按需部署:云计算平台能够根据用户的需求快速配备计算能力及资源 * 性价比高:将资源放在虚拟资源池中统一管理在一定程度上优化了物理资源,用户不再需要昂贵、存储空间大的主机 * ... 云计算按服务类型可以分为三类:IaaS、PaaS、SaaS 按部署形式可以分为三类 * 公有云: 指第三方提供商为用户提供的能够使用的云,比如我们经常使用阿里云即是一种公有云。可通过internet使用,价格非常的低廉,核心的属性是共享服务资源。公有云被认为是云计算的主要形态,目前市场上公有云也是占据了较大的市场份额的,典型的几家阿里云、百度云、腾讯云、华为云和三个运营商等 ![](https://yn-blog.oss-cn-chengdu.aliyuncs.com/v_2023/2024-09-20/f3cae6c5-c943-4955-97f8-b629f9d9a3f2.png) * 私有云: 拥有基础设施并可以控制在此设施上部署应用程序的方式,私有云可以部署在企业数据中心的防火墙内,核心属性是专有资源。需要单独构建的,因而在数据安全性以及服务质量上自己可以有效的管控,私有云虽然数据安全性方面比公有云高,但是维护的成本也相对较大,对安全数据要求极其高的才有必要考虑 * 混合云:公有云和私有云组合起来,一部分业务使用公有云,一部分业务使用私有云,这就是混合云。企业需要一些技术来实现两朵云的统一管理、监控、调度、数据同步等等,与只使用一种形态的云相比,混合云部署更复杂。在成本和安全方面的一种折中方案,私有云还常常把公有云作为灾难恢复和灾难转移的平台。混合云在使用起来具有更高的灵活性,但复杂网络配置使得管理员的知识经验及能力受到挑战,学习成本更大 ### 云计算服务三层架构-IaaS-PaaS-SaaS-概念解析 三种云服务模型, 也称为三层架构 * **IaaS 基础设施即服务**: Infrastructure as a service - 通即虚拟的硬件资源,如虚拟的主机、存储、网络、安全等资源 - 用户无需购买服务器、网络设备和存储设备,只需要通过网络租赁即可搭建自己的应用系统 - 将硬件外包到别的地方去,IaaS公司会提供场外服务器,存储和网络硬件,你可以租用,节省了维护成本和办公场地 - 公司产品 Amazon, Microsoft,阿里云,腾讯云,各自的产品 - 最熟悉的例子:阿里云ECS主机的带宽、磁盘空间、GPU等 * PaaS 平台即服务 platform as a service - 为开发人员提供了一个框架,使他们可以基于它创建自定义应用程序 - 所有服务器,存储和网络都可以由企业或第三方提供商进行管理 - 使开发人员可以自由地专注于创建软件,同时不必担心操作系统、软件更新,存储或基础架构 - 公司产品:Google App Engine,Apache Stratos,OpenShift,阿里云,腾讯云等 - 最熟悉的例子:阿里云OSS、RDB、短信服务、日志服务 * SaaS 软件即服务 software as a service - 云应用程序服务,利用互联网向其用户提供应用程序,这些应用程序由第三方供应商管理 - 大多数SaaS应用程序直接通过Web浏览器运行,不需要在客户端进行任何下载或安装 - 具有多租户的特性,不需要额外加工,按需付费,因此成本低高效快捷 - 公司产品:淘宝、小鹅通、亚马逊,CRM(客户关系管理)、HRM(人力资源管理)、SCM(供应链) ![](https://yn-blog.oss-cn-chengdu.aliyuncs.com/v_2023/2024-09-20/8bd7a914-fec2-4fe0-8795-d1dd60a77914.png) ### 经典例子-了解-IaaS-PaaS-SaaS ![](https://yn-blog.oss-cn-chengdu.aliyuncs.com/v_2023/2024-09-20/becc34ed-4328-4cde-81d1-53164770b89d.png) 最通俗的例子 * 【建房子娶老婆】和【在线教育平台】 * 传统方式:设计、找地皮、造砖头、水泥、钢筋;消耗人力1000人 * 买主机、建机房、找运营商弄带宽 * 开发在线教育微服务平台 * 开发部署-监控-发布平台 * 消耗程序员:100人 * IaaS 服务:直接花钱买厂商做好的 砖头、水泥、钢筋:消耗人力 500人 * 直接租用阿里云的主机、选CPU、硬盘、内存、带宽等 * 开发在线教育微服务平台 * 开发部署-监控-发布平台 * 消耗程序员:50人 * PaaS服务:直接买厂商搭建好的墙面,自己组装;消耗人力100人 * 开发在线教育微服务平台 * 阿里云的数据库、缓存、MQ、分布式事务GTS、日志服务 等厂商直接提供的中间件服务 * 开发部署-监控-发布平台 * Rancher、KubeSphere、 * 消耗程序员:20人 * SAAS服务:直接买厂商做好的房子;消耗人力10人 * 直接租用厂商提供的在线教育平台 * 消耗程序员:1人 总结 * 从Iaas到SaaS的过程,企业的云化的程度也越来越高,内部IT所需要做的事越来越少。 * 可以这么看,**运维同学经常打交道的是IaaS,开发经常打交道的是PaaS,运营和客户经常打交道的是SaaS** ### 微服务容器化docker部署存在的问题 Docker容器化部署微服务比传统方式快,一直容器化部署一直爽 - 在实操中发现,像 Docker 之类的容器引擎,折腾少量容器还行 - 但如今的云原生应用、机器学习任务或者大数据分析业务,动辄就要使用成百上千的容器 - 要管理这么多容器,Docker 们就力不从心了 问题 * 简单的几个容器可以方便管理,但稍微有规模的公司里面肯定是成千上万的容器在运行 * 怎么快速部署容器 * 怎么管理这些容器 * 怎么监控这些容器状态 * 容器之间通讯怎么管理 .... 和云基础设施的任何其他组件一样,容器需要监控和控制,否则将根本不知道服务器上运行的是什么 市场上就出现了一批【容器编排】工具,典型的是 Swarm、Mesos 和 K8S等 ### 带你走入容器编排工具的那些事情 为了解决容器管理的问题,就有了容器编排管理工具 容器编排:提供调度和管理集群的技术,提供用于基于容器应用可扩展性的基本机制,这些工具使用容器服务,并编排他们以决定容器之间如何进行交互, 包括网络, 存储, 负载均衡, DNS和安全模块等的编排调度 主流的容器编排工具 * Docker Swarm * Apache Mesos * Kubernetes 经过几年的竞争,K8S 击败 Swarm 和 Mesos,几乎成了当前容器编排的事实标准。K8S 最初是由 Google 开发的,后来捐赠给了 CNCF(云原生计算基金会,隶属 Linux 基金会) * K8S要懂很多概念 ```shell Pod、ingress、Service、Node、kubelet、kube-proxy、API Server、Scheduler、Labels、Deployment... ``` * 当要搭建生产环境的时候,事情就变得不一样了 * 不止搭建集群过程很复杂,后期还要面对更繁琐的 K8S 控制平面维护工作,版本升级、安全管控、数据备份 * 对于k8s集群的运维复杂度也很高 * 等你掌握一系列概念后且搭建过本地的k8s * 开发人员的你:一个月后你会忘记80%的知识 * 公司里:能用上k8s的公司,基本不太可能让一个业务开发人员去操作到k8s的东西 * 公司谁负责:运维工程师、容器开发工程师、云平台开发工程师等 ![](https://yn-blog.oss-cn-chengdu.aliyuncs.com/v_2023/2024-09-20/76e02e64-f111-48a6-92cc-8c4b262fbb00.png) ### 一站式DevOps平台介绍 阿里、腾讯、字节、京东、美团等都有一站式DevOps平台:提供从「需求->开发->测试->发布->运维->运营」端到端的协同服务和研发工具 大厂里面是如何操作的 * 专门的团队开发维护好自己BU的容器管理平台(k8s) * 阿里的Aone -> 对应阿里云产品 云效 https://devops.aliyun.com/ ![](https://yn-blog.oss-cn-chengdu.aliyuncs.com/v_2023/2024-09-20/428c272c-136a-47c8-b720-f5c4df406ba6.png) ![](https://yn-blog.oss-cn-chengdu.aliyuncs.com/v_2023/2024-09-20/3684af75-6a1c-4baf-ba60-5036107d5117.png) * 容器编排正快速发展,从主要的基础设施公司到PAAS供应商,不仅仅是明显的编排工具,更重要的是要构建、部署、CI/CD等一系列功能 * 很多厂商也在PaaS平台做一些工作,重点在于让开发人员不必关心底层应用部署细节,只需想好要什么即可 容器编排PaaS云平台 * KubeSphere * https://kubesphere.com.cn/ * KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。 * Rancher * https://rancher.com/ * 是一个开源的企业级容器管理平台, 通过Rancher企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台 * Rancher+KubeSphere总结: 都是基于K8s提供功能,是比较优秀的k8s集群管理平台,对于降低k8s集群运维复杂度,降低运维成本,使开发人员能尽快上手部署微服务