精华内容
下载资源
问答
  • 私有云 ,混合云 ,云代管,原生云,各自有什么优缺点,如何保证我们的数据安全?
    千次阅读
    2019-04-26 17:07:46

    目前主流的包括私有云、混合云、云代管、原生云这么几种,下面我们就来分析这几种方式的优缺点,看看该如何保护你的数据安全。

    私有云

    私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。将数据防护托管在本地部署的纯私有云上,相当于运营第二个数据中心,专门为了备份业务数据而设。

    优点:你的地盘你做主,可以随意控制、配置、升级。

    缺点:首先,硬件限制会影响存储空间和计算可用性。其次,就像把所有的鸡蛋放在一个篮子里,数据如果都放在一个地方,一旦断电或硬件故障就会造成数据丢失!

    分析:如果你的数据非常敏感且重要,那么私有云将是一个极具竞争力的选项。

    混合云

    混合云将公有云和私有云进行混合和匹配,以获得最佳的效果,达到了既省钱又安全的目的。

    优点:备份数据存储在远程位置,可以避免本地硬件故障而导致数据丢失的问题,并且用户企业无需进行远程硬件的维护和升级,只需管理数据中心内的设备即可。

    缺点:缺少数据的冗余,并且由于所有往来于云端的数据都要经过该设备,而每个位置都需要一台设备,在这种模型下,云的存储效率低下,云存储成本上升。

    分析:混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。

    云托管

    云托管指用户拥有自己的服务器等IT设备,并把它放置在云数据中心的高标准机房环境中,由客户自己/其他的签约人进行维护。

    优点:比传统的服务器托管要便宜,当甩手掌柜后,用户比较轻松,该模式还将确保断电和其他灾难不会影响业务的责任加在了托管厂商身上。

    缺点:托管解决方案的架构将无法利用公共云环境的可扩展性和灵活性。另外,云托管在构建和管理上较贵,除了存储开销还有其他云提供商费用要支付。而且,托管服务通常都是单租户而非多租户模式,意味着运营厂商必须针对每个实例分别更新或修复,这就意味着更高出错概率和更大回滚复杂性。除此之外,你还得考虑到数据安全和服务连接权限的问题。

    分析:适合企事业单位、公司及网站用户。

    原生云

    真正的原生云SaaS数据防护解决方案,是从零开始设计构造的,利用公有云的种种优势,比如全局重复数据删除、自动分层和动态分配存储、运行时间保证和灵活计算可用性。

    优点:原生云可根据业务需求而改变,无需额外的资源来维持合规,也不用经常性维护来对抗安全威胁,因为这些维护上的负担都落到了SaaS提供商身上。对用户来说,最吸引的地方是可预测的订阅费用结构,可以需要什么买什么。

    缺点:除非一开始某家创业公司的云战略全面正确,否则迁移到原生云模式的工作并不如想象中简单,你可能会遇到原生云应用与旧有设备的整合问题。

    分析:对于许多小型企业而言,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

    企业在数据安全防护方面(例如安全设备管理和监控,事件的响应和缓解,数据容灾备份等)的持续投入,已经引起全球数据安全服务市场总体份额的显著增长。

    人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    云计算的优势,以及云计算服务的分类,云计算在高校中的应用体系架构
    http://www.duozhishidai.com/article-13380-1.html
    企业云计算的基本特征是什么,在建设过程中主要分为哪几个阶段?
    http://www.duozhishidai.com/article-13379-1.html
    云计算服务模式,主要分为哪几种?
    http://www.duozhishidai.com/article-13377-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
      
    更多相关内容
  • IT世界的技术更新非常迅速。...本文的关键要点:(1)原生云架构可以支持灵活和敏捷的开发,部署,以及运维各种软件(2)现代中间件技术可以利用容器,微服务,以及原生云架构(3)仅仅利用容器来包装和隔离是远远不够的,还
  • 原生云应用 企业创新路1
  • 云原生(Cloud Native)的概念,由来自Pivotal的MattStine于2013年首次提出,被一直延续使用至今。这个概念是Matt Stine根据其多年的架构和咨询经验总结出来的一个思想集合,并得到了社区的不断完善,内容非常多,...
  • 一文了解原生云

    千次阅读 2020-05-12 08:45:24
    a-service SaaS:软件服务,Software-as-a-service Cloud Native:云原生 Service Mesh 后端架构的变迁和云计算的发展密切相关,架构其实在不断地适应云计算,特别是云原生,被誉为未来架构,在 2019 年,云原生落地...

    前言

    自 2013 年容器(虚拟)技术(Docker)成熟后,后端的架构方式进入快速迭代的阶段,出现了很多新兴概念:

    • 微服务

    • k8s

    • Serverless

    • IaaS:基础设施服务,Infrastructure-as-a-service

    • PaaS:平台服务,Platform-as-a-service

    • SaaS:软件服务,Software-as-a-service

    • Cloud Native:云原生

    • Service Mesh

    后端架构的变迁和云计算的发展密切相关,架构其实在不断地适应云计算,特别是云原生,被誉为未来架构,在 2019 年,云原生落地方案 Service Mesh 在国内外全面开花,我认为,未来已来。

    接下来,我们将:

    • 梳理后端架构演化史,回顾后端架构发展历程;

    • 回顾云服务发展历程,探讨云原生概念;

    • 梳理云原生实现方案 Service Mesh 的发展历程;

    • 介绍 Service Mesh 的代表 Istio 的亮眼功能;

    后端架构演化史

    集中式架构

    集中式架构又叫单体式架构,在Web2.0模式并未大规模兴起时十分流行。后来,基于Web应用的B/S(Browser/Server)架构逐渐取代了基于桌面应用的C/S(Client/Server)架构。B/S架构的后端系统大都采用集中式架构,它当时以优雅的分层设计,统一了服务器后端的开发领域。

    集中式应用分为标准的3层架构模型:数据访问层M、服务层V和逻辑控制层C。每个层之间既可以共享领域模型对象,也可以进行更加细致的拆分。

    其缺点是

    • 编译时间过长;

    • 回归测试周期过长;

    • 开发效率降低等;

    • 不利于更新技术框架

    分布式系统架构

    对于互联网应用规模的迅速增长,集中式架构并无法做到无限制的提升系统的吞吐量,而分布式系统架构在理论上为吞吐量的上升提供了无限扩展的可能。因此,用于搭建互联网应用的服务器也渐渐地放弃了昂贵的小型机,转而采用大量的廉价PC服务器。

    容器技术新纪元 Docker

    分布式架构的概念很早就出现,阻碍其落地的最大问题是容器技术不成熟,应用程序在云平台运行,仍然需要为不同的开发语言安装相应的运行时环境。虽然自动化运维工具可以降低环境搭建的复杂度,但仍然不能从根本上解决环境的问题。

    Docker的出现成为了软件开发行业新的分水岭;容器技术的成熟,也标志技术新纪元的开启。Docker让开发工程师可以将他们的应用和依赖封装到一个可移植的容器中。就像当年智能手机的出现改变了整个手机行业的游戏规则一样,Docker也大有席卷整个软件行业,并且进而改变行业游戏规则的趋势。通过集装箱式的封装,开发和运维都以标准化的方式发布的应用,异构语言不再是桎梏团队的枷锁。

    在 Docker 之后,微服务得以流行开来

    微服务架构

    微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

    微服务优势

    • 可扩展

    • 可升级

    • 易维护

    • 故障和资源的隔离

    微服务的问题

    但是,世界上没有完美无缺的事物,微服务也是一样。著名软件大师,被认为是十大软件架构师之一的 Chris Richardson 曾一针见血地指出:“微服务应用是分布式系统,由此会带来固有的复杂性。开发者需要在 RPC 或者消息传递之间选择并完成进程间通讯机制。此外,他们必须写代码来处理消息传递中速度过慢或者不可用等局部失效问题。”

    在微服务架构中,一般要处理以下几类问题:

    • 服务治理:弹性伸缩,故障隔离

    • 流量控制:路由,熔断,限速

    • 应用观测:指标度量、链式追踪

    解决方案 Spring Cloud(Netflix OSS)

    这是一个典型的微服务架构图

    Spring Cloud 体系提供了服务发现、负载均衡、失效转移、动态扩容、数据分片、调用链路监控等分布式系统的核心功能,一度成为微服务的最佳实践。

    Spring Cloud 的问题

    如果开始构建微服务的方法,肯定容易被 Netflix OSS/Java/Spring/SpringCloud 所吸引。但是要知道你不是Netflix,也不需要直接使用 AWS EC2,使得应用程序变得很复杂。如今使用 docker 和采用 memos/kubernetes 是明智之举,它们已经具备大量的分布式系统特性。在应用层进行分层,是因为 netflix 5年前面临的问题,而不得不这样做(可以说如果那时有了kubernetes,netflix OSS栈会大不相同)。

    因此,建议谨慎选择,按需选择,避免给应用程序带来不必要的复杂度。

    的确 SpringCloud 方案看起来很美好,但是它具有非常强的侵入性,应用代码中会包含大量的 SpringCloud 模块,而且对其他编程语言也不友好。

    Kubernetes

    Kubernetes 出现就是为了解决 SpringCloud 的问题,不侵入应用层,在容器层解决问题。

    Kubernetes 起源

    Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统。

    Kubernetes的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。

    Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的 workflows 和更高级的自动化任务。Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。

    Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。

    Service Mesh

    Service Mesh 是对 Kubernetes 的增强,提供了更多的能力。

    2018年9月1日,Bilgin Ibryam 在 InfoQ 发表了一篇文章 Microservices in a Post-Kubernetes Era,中文版见后 Kubernetes 时代的微服务(译文有些错误,仅供参考)。

    文中作者的观点是:在后 Kubernetes 时代,服务网格(Service Mesh)技术已完全取代了使用软件库实现网络运维(例如 Hystrix 断路器)的方式。

    如果说 Kubernetes 对 Spring Cloud 开了第一枪,那么 Service Mesh 就是 Spring Cloud 的终结者。

    总结

    最后我们用一个流程图来描述后端架构的发展历程

    每个关键节点的大概时间表

    架构/技术时间/年份
    集中式架构~
    分布式架构~
    Docker2013
    微服务2014
    Spring Cloud2014
    Kubernetes 成熟2017
    Service Mesh2017

    可以看出,微服务生态这里,Spring Cloud 为代表的这条路已经后继无人了,未来属于 Service Mesh 。
    Service Mesh 经过2年的发展,目前 Service Mesh 已经足够成熟,已经有生产落地的案例,我们接下来就看看 Service Mesh,在此之前,我们要先理解一个概念,云原生。

    云原生 Cloud Native

    如何理解“云原生”?之所以将这个话题放在前面,是因为,这是对云原生概念的最基本的理解,而这会直接影响到后续的所有认知。

    注意:以下云原生的内容将全部引用敖小剑的 畅谈云原生(上):云原生应用应该是什么样子? 这篇文章,图画得太好了。

    云原生的定义一直在发展,每个人对云原生的理解都可能不同,就如莎士比亚所说:一千个人眼中有一千个哈姆雷特。

    2018 年 CNCF (Cloud Native Computing Foundation)更新了云原生的定义。


    这是新定义中描述的代表技术,其中容器和微服务两项在不同时期的不同定义中都有出现,而服务网格这个在 2017 年才开始被社区接纳的新热点技术被非常醒目的列出来,和微服务并列,而不是我们通常认为的服务网格只是微服务在实施时的一种新的方式。

    那我们该如何理解云原生呢?我们尝试一下,将 Cloud Native 这个词汇拆开来理解,先看看什么是 Cloud。

    什么是云 Cloud

    快速回顾一下云计算的历史,来帮助我们对云有个更感性的认识。

    云计算的出现和虚拟化技术的发展和成熟密切相关,2000 年前后 x86 的虚拟机技术成熟后,云计算逐渐发展起来。

    基于虚拟机技术,陆续出现了 IaaS/PaaS/FaaS 等形态,以及他们的开源版本。

    2013 年 docker 出现,容器技术成熟,然后围绕容器编排一场大战,最后在 2017 年底,kubernetes 胜出。2015 年 CNCF 成立,并在近年形成了 cloud native 生态。

    在这个过程中,云的形态一直变化,可以看到:供应商提供的功能越来越多,而客户或者说应用需要自己管理的功能越来越少。


    架构也在一直适应云计算的变化

    什么是原生 Native

    在回顾完云计算的历史之后,我们对 Cloud 有更深的认识,接着继续看一下:什么是 Native?
    字典的解释是:与生俱来的。
    那 Cloud 和 native 和在一起,又该如何理解?

    这里我们抛出一个我们自己的理解:云原生代表着原生为云设计。详细的解释是:应用原生被设计为在云上以最佳方式运行,充分发挥云的优势。

    这个理解有点空泛,但是考虑到云原生的定义和特征在这些年间不停的变化,以及完全可以预料到的在未来的必然变化,我觉得,对云原生的理解似乎也只能回到云原生的出发点,而不是如何具体实现。

    Cloud Native 是道,Service Mesh 是术

    那在这么一个云原生理解的背景下,我再来介绍一下我对云原生应用的设想,也就是我觉得云原生应用应该是什么样子。

    在云原生之前,底层平台负责向上提供基本运行资源。而应用需要满足业务需求和非业务需求,为了更好的代码复用,通用型好的非业务需求的实现往往会以类库和开发框架的方式提供,另外在 SOA/ 微服务时代部分功能会以后端服务的方式存在,这样在应用中就被简化为对其客户端的调用代码。

    然后应用将这些功能,连同自身的业务实现代码,一起打包。

    而云的出现,可以在提供各种资源之外,还提供各种能力,从而帮助应用,使得应用可以专注于业务需求的实现。
    非业务需求相关的功能都被移到云,或者说基础设施中去了,以及下沉到基础设施的中间件。

    以服务间通讯为例:需要实现上面列举的各种功能。

    SDK 的思路:在应用层添加一个胖客户端,在这个客户端中实现各种功能。

    Service Mesh 的思路,体现在将 SDK 客户端的功能剥离出来,放到 Sidecar 中。就是把更多的事情下沉,下沉到基础设施中。

    在用户看来,应用长这样:

    云原生是我们的目标,Service Mesh 交出了自己的答卷,接下来我们可以回到 Service Mesh 这里了。

    Service Mesh

    其中文译名是服务网格,这个词最早使用由开发Linkerd的Buoyant公司提出,并在内部使用。

    定义

    服务网格的基本构成

    纷争 2017

    2017 年年底,当非侵入式的 Service Mesh 技术终于从萌芽到走向了成熟,当 Istio/Conduit 横空出世,人们才惊觉:微服务并非只有侵入式一种玩法,更不是 Spring Cloud 的独角戏!

    解读 2017 之 Service Mesh:群雄逐鹿烽烟起

    文章总结一下:
    创业公司 Buoyant 的产品 Linkerd 开局拿下一血;
    Envoy 默默耕耘;
    从 Google 和 IBM 联手推出 Istio,Linkerd 急转直下;
    2017 年底 Buoyant 推出 Conduit 背水一战;
    Nginmesh 与 Kong 低调参与;

    百家争鸣 2018

    2018 年,Service Mesh 又多了哪些内容呢?在 2018 年,Service Mesh 在国内大热,有多家公司推出自己的 Service Mesh 产品和方案,Service Mesh 更加热闹了。
    详细见这篇文章 下一代微服务!Service Mesh 2018 年度总结

    文章总结一下:
    Service Mesh 在国内大热,有多家公司加入战场;
    Istio 发布1.0,成为最受欢迎的 Service Mesh 项目,获得多方支持;
    Envoy 继续稳扎稳打,Envoy 被 Istio 直接采用为数据平面,有望成为数据平面标准;
    Linkerd1.x 陷入困境,Conduit 小步快跑,但响应平平,Buoyant 公司决定合并产品线,Linkerd1.x + Conduit = Linkerd2.0;
    更多的公司参与 Service Mesh,国外有 Nginx、Consul、Kong、AWS等,国内有蚂蚁金服、新浪微博、华为,阿里 Dubbo,腾讯等;

    持续发展 2019

    2019 将会听到更多 Service Mesh 的声音,请关注Service Mesh 中文社区

    Istio

    前文讲到 Istio 是当前最受欢迎的 Service Mesh 框架,一句话定义 Istio:一个用来连接、管理和保护微服务的开放平台。
    它能给我们的微服务提供哪些功能呢?

    连接

    • 动态路由

    • 超时重试

    • 熔断

    • 故障注入

    详细见官网介绍

    保护

    安全问题一开始就要做好,在 Istio 实现安全通讯是非常方便的。

    Istio 支持双向 TLS 加密

    见官方文档

    控制

    速率限制
    黑白名单

    见官方文档

    观测

    • 指标度量:每秒请求数,Prometheus 与 Grafana
      使用 Grafana 观测流量情况

    • 分布式追踪:Jaeger 或 Zipkin
      快速观测调用链路

    • 日志:非应用日志

    • 网格可视化
      快速理清服务的关系


    总结

    虚拟化技术推动这云计算技术的变革,顺带也影响了后端架构的演进,目前我们身处云时代,将会有更多的元原生应用出现,Istio 作为其中的佼佼者,值得你投入一份精力了解一下。

    展开全文
  • 原生云架构的呼叫中心实践.pdf
  • 阿里云原生技术+云原生架构+云原生实践等资料合集,13份。 2021阿里巴巴DevOps实践手册 2021云原生开发者洞察白皮书 阿里巴巴-云原生大规模应用落地指南 阿里巴巴经济体-云原生实践 阿里巴巴云原生架构白皮书 阿里...
  • 原生云安全解决方案
  • PAGE 21 中间件,微服务,Docker与原生云架构 今天许多企业已经采用容器和原生云架构或正在采用它们 这个话题也越来越和中间件供应商相关 因此我们需要做一个有关微服务容器和云原生架构的中间件世界的现状的更新 本文...
  • 迁移到云原生应用架构.pdf
  • 原生云架构的呼叫中心实践
  • ACS原生云系列培训(总行)-2021.zip
  • 云原生2.0白皮书.pdf

    2021-11-26 21:58:05
    2020年华为发布《云原生产业白皮书》披露华为云云原生2.0全景图以来,云原生“生于长于立而不破”的理念已深入人心。 根据云原生计算基金会CNCF的定义,云原生技术使组织能够在现代动态环境(例如公共、...
  • 阿里专有与阿里公共同根同源,客户可以在任何地方与环境进行开发和部署,自由延伸阿里公共的线上与本地化部署,是企业“家里”可用的可靠稳定平台。本期专有技术专家团齐上阵,从基础架构、产品设计...
  • 阿里云云原生架构白皮书
  • 阿里云云原生全景图.pdf
  • 2020云原生产业大会演讲PPT合集,供大家学习参考。 1、阿里数据库PolarDB 2、博云容器网络Fabric的前世、今生和未来 3、泛在计算服务白皮书解读 4、分布式边协同标准体系规划及解读 5、可信云微服务分级...
  • rook - 开放、原生云、通用的分布式存储
  • 阿里核心技术云原生.pdf
  • 云原生白皮书发布.pdf

    2021-01-08 14:03:47
    云原生从字面意思上来看可以分成云和原生两个部分。 是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,包含了IaaS,、PaaS和SaaS。 原生就是土生土长的意思,我们在开始设计应用的...
  • 阿里-云原生架构白皮书
  • 进入后云计算时代,云原生正在成为企业数字化转型的潮流、加速器。Gartner报告指出,到2022年有75%的全球化企业将在生产中使用云原生的容器化(云原生的核心技术之一)应用。目前,不仅是互联网行业在使用云原生,...
  • 此小程序原生 开发,含支付提现交易全流程,纯开发小商城开源地址:https://github.com/xuhuai66/used-book-pro
  • 云原生架构白皮书.pdf

    2020-07-21 16:48:44
    目大量涌现,云原生领域进入“火箭式”发展 阶段。通过树立技术标准与构建开发者生态, 开源将云计算实施逐渐标准化,大幅降低了开 发者对于平台的学习成本与接入成本。这都 让开发者更加聚焦于业务本身并借助...
  • 安全问题成为影响云原生落地的重要因素 云原生面临的安全威胁和风险 云原生安全防护思路 云原生安全加固 云原生环境的可观察性 微隔离实现零信任的云原生网络 云原生异常检测 云原生应用安全 服务网格安全防护 ...
  • 2020云原生微服务大会PPT汇总,共21份。 一、主论坛 Capability Oriented Architecture for cloud and edge 云原生时代的微服务架构 二、云原生架构专场 Service Mesh 在超大规模场景下的落地挑战 在微服务下的...
  • 从容器化部署、微服务应用模式、研发运营一体化等 云原生特有的技术架构和应用模式出发,全面剖析云原生系统面临的 安全威胁,针对性提出云原生安全边界、原则和防护模型,系统阐述 涵盖基础设施安全、云原生计算...
  • 容器和云原生(一):初识容器化和云原生

    千次阅读 多人点赞 2021-01-29 15:49:45
    总聚焦于应用系统开发和建立在应用系统上的业务模型开发,很容易忽略基础资源重要性(包括裸金属服务器配置和优化、最优组网实践和网络拓扑优化、应用部署的持续集成和持续开发、上资源分配和云原生),努力走出...

    总聚焦于应用系统开发和建立在应用系统上的业务模型开发,很容易忽略基础资源重要性(包括裸金属服务器配置和优化、最优组网实践和网络拓扑优化、应用部署的持续集成和持续开发、云上资源分配和云原生),努力走出舒适区尝试新知识才能打开新思路,目前亟待增加裸金属服务器配置相关知识和云原生相关内容,那就从容器化和云原生下手,本节把基于k8s的容器化知识挂载到自己的知识树上,然后在测试环境进行开发测试;

    目录

    一、理解容器化

    什么是容器

    什么是Docker

    什么是pod

    什么是微服务

    什么是devops

    二、理解云原生

    三、本地测试-DockerDesktop

    四、后续学习路径


     

    一、理解容器化

    什么是容器

    容器是云原生概念的重要组成部分,一种计算单元,容器比虚拟化技术更轻量化、更小开销的方式运行,作为应用的包装形式,容器赋予应用独立和便携的能力。随着Docker、Kubernetes技术的成熟,容器也成为了时下最火的开发理念。并非所有的应用都适合选择容器,开发者可以根据自己应用的特点和需求选择最适合的计算单元。如果应用是高性能、互信的,且处于同一个管理区域,那么用线程或者进程就可以满足;但如果你的应用是多租户的,并且和其他应用运行在同一个空间,那么你就需要考虑如何将这些应用安全地隔离开,使得数据不会被泄露或性能受到影响,容器也许就是一个不错的选择。

    容器是「高度隔离的进程」:在一般进程的隔离基础上增加了新的隔离机制,这些隔离机制是使用Linux的内核提供的,它包括一些命名空间(Name Spaces)和CGroup。命名空间可以分为网络、存储和计算三大类。其中,最为重要的是网络命名空间。它保证了容器的网络是独立于其他容器网络的。每个容器自己看到的文件系统和其他容器的是不共享的,每个容器只能看到自己的进程ID,而进程编号也是连续的。容器最大的特征没有自己独立的操作系统,而是共享其宿主机上的一个操作系统;而虚拟机则运行在「一台独立的服务器上」,容器相比于虚拟机的成本小但隔离性欠缺。

    容器是「应用的闭包」:应用不是单一的可执行文件,稍微复杂的应用包括:代码、可执行文件、配置依赖、外部依赖(动态链接库)等。所以在应用发行包装的时候,需要考虑目标操作系统的版本、系统架构以及它所依赖的模块等因素。否则应用安装时会改动系统的不同部分,容器作为应用的包装,它最大的特点就是实现了应用的独立和便携,容器本身包含了应用所有的依赖,这使得它可以再任意的基础设施上运行,不会因为系统版本、架构的问题,而导致各种意外。

    什么是Docker

    Docker是容器管理平台,容器是应用运行单元,Docker用来创建、管理和销毁这些单元的,在创建和管理这些计算单元的时候,需要用到计算单元的包装(也就是它的软件发行包),这些包装以容器镜像的方式存放在它的运行环境中,所有的容器计算单元都是通过这些镜像来创建的。

    镜像本身会有版本的发布、升级等需求,这就涉及到Docker的另一个重要组成部分DockerHub了。DockerHub有点像苹果的App Store,它是一个非常大的「容器市场」,所有常用的软件都可以在DockerHub上找到。

    最后一个Docker的重要模块,就是用户界面和管理工具,它们用来向容器的运行环境发布命令或查看状态。只需要用一个Docker的命令加上一些参数,就可以实现创建、删除、查看容器的运行情况等操作,只需要安装好Docker就可以尝试运行这个Hello World的容器了,容器的典型应用可以分为两类:微服务和DevOps。

    什么是pod

    Pod是组合的多容器运行单元,也是Kubernetes的基础单元,可以看作是容器的扩展或者增强型的容器。Pod里面包括一个主容器和数个辅助容器,它们共同完成一个特定的功能。把多个进程(容器也是一种隔离的进程)打包在一个Name Space里的时候,就构成了一个Pod。Pod里面不同进程的应用包装仍然是独立的(每个容器都会有自己的镜像)。 

    Pod的意义在于既保持主容器和辅助容器的的密切关系,又保持主容器的独立性。由于主容器和辅助容器的生命周期相同,可以同时被创建和销毁,因此把它们放在一个Pod中,可以使他们的交互更加高效,另一方面主容器需要完成一些主要工作,而另一些工作可能是有共性的,就可以单独打包由辅助容器来运行。 非常推荐大家去一个叫Katacoda的网站,它上面有大量免费的在线实验,包括Docker及Docker Image等动手操作项目

    什么是微服务

    微服务是指系统的不同单元或功能运行不同的容器,每一个服务的容器数量可以根据自己的负载进行调整。比如,一个大系统包含用户登录、货品展示、货品交互等功能,但这个系统的各个部分并不是同时线性增加的,有些部分可能忙一些,有些部分的容量可能还有富余。 

    什么是devops

    DevOps是指开发者、测试、生产过程流水线化。因为容器的「自包含」特性,当它作为标准的流通物品,可以使开发环境、测试环境和生产环境的应用包装完全一致,这样就减少了应用由于依赖关系配置错误等导致的意外,从而使得开发、测试、生产的整个流水线变得更高效。

    二、理解云原生

    云原生(CloudNative)以容器化、微服务、可持续交付性,快速构建/运行弹性扩展应用,应用构建简便快捷,部署轻松自如,应用按需伸缩,云原生是一套技术体系/方法论。Cloud表示应用程序位于云中,而非传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。

    云原生概括为4个要点:DevOps+持续交付+微服务+容器,云原生架构的应用系统应该采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

    云原生构建应用简便快捷,部署应用轻松自如、运行应用按需伸缩。优点不一而足,缺点微乎其微;秒杀传统Web框架,吊打祖传IT模式,实在是保命装逼、评优晋级不可多得的终极绝密武器。

    三、本地测试-DockerDesktop

    本地使用docker-desktop安装mysql;

    官方下载地址:docker-desktop的链接地址

     安装过程中报错,WSL 2地址:wsl2

    设置国内镜像地址,并重启;

    {
      "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "http://hub-mirror.c.163.com"
      ],
      "insecure-registries": [],
      "debug": false,
      "experimental": false,
      "features": {
        "buildkit": true
      }
    }

     本地安装mysql是如此地复杂,但是在使用docker-desktop就非常的简单:

    # 拉取镜像
    docker pull mysql:5.7.29
    
    # 镜像运行之后就是容器container了,run就启动了该容器
    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.29
    
    # 进入mysql这个容器内,在docker-desktop可以进入
    docker exec -it mysql bash
    
    # 进入镜像后就可以访问mysql
    mysql -u root -p //回车输入密码
    

    把window的telnet功能打开;telnet 127.0.0.1 3306端口可用,说明已完成安装,跟本地安装mysql相比快捷而省时间,秀的一批;

    四、后续学习路径

    1.学习dockerfile;

    2.云原生内容;

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,253
精华内容 54,901
关键字:

原生云