第五章 云原生与容器技术

第一节 独角兽成功秘诀

成功秘诀

·Speed of innovation-天下武功,唯快不破

·Always-available services-随时、随地可用

·Web scale-从0到1,快速扩展

·Mobile-centric user experiences-移动为王又快又好!

第二节 云原生和现代应用12范式

现代应用的十二范式(The Twelve-Factor App)

1.基准代码:一份基准代码,多份部署。基准代码和应用之间总是保持一一对应的关系。所有部署的基准代码相同,但每份部署可以使用其不同的版本。

2.依赖:显式声明依赖关系。应用程序一定通过依赖清单,确切地声明所有依赖项。

3.配置:在环境中存储配置。将应用的配置存储于环境变量中。环境变量可以非常方便地在不同的部署间做修改,却不动一行代码。

4.后端服务:把后端服务当作附加资源。应用不会区别对待本地或第三方服务。对应用程序而言,两种都是附加资源。

5.构建,发布,运行:严格区分构建,发布,运行这三个步骤。

6.进程:以一个或多个无状态进程运行应用。应用的进程必须无状态且无共享。

7.端口绑定:通过端口绑定提供服务。应用完全自我加载而不依赖任何网络服务器就可以创建一个面向网络的服务。

8.并发:通过进程模型进行扩展。开发人员可以运用这个模型去设计应用架构,将不同工作分配给不同的进程类型。

9.易处理:快速启动和优雅终止可最大化健壮性。应用的进程是可支配的,意思是说它们可以瞬间开启或停止。

10.开发环境与线上环境等价:尽可能保持开发、预发布、线上环境相同。应用想要做到持续部署就必须缩小本地与线上差异。

11.日志:把日志当作事件流。应用本身考虑存储自己的输出流。不应该试图去写或者管理日志文件。

12.管理进程:后台管理任务当作一次性进程运行。一次性管理进程应该和正常的常驻进程使用同样的环境。

云原生

·Cloud Native Application

Cloud Native describes the patterns of high performing organizations delivering

software faster,consistently and reliably at scale.

Continuous delivery,DevOps,and Microservices label the why,how and what of

the cloud natives.

·云原生应用

云原生描述了高效组织的模式:可快速的,一致的和可靠的规模化交付软件。

·为什么:持续交付

·做什么:微服务

·如何做:DevOps

持续集成

微服务

容器

第三节 docker成才史

第四节 容器技术基础

容器技术基础

Docker包含两方面的技术

·容器技术

·有效分配与管理理物理理资源

·实现资源隔离

·镜像技术

·打破“代码即应用”的观念

·从系统环境开始,自下而上打包应用

Docker 组件架构-Docker Engine分析

·Docker Engine是一个Client-Server模型的应用

·Docker Engine 包括以下几个组件

·服务端(dockerd)

·RESTAPI

·命令行行行工工具(docker cli)

·用户可以使用用命令行工具来调用API从而实现与服务端的交互,也可以通过接调用API来完成与服务端的交互

Docker 组件架构-组件清单

Docker 文件系统和Dockerfile

FROM ubuntu:15.04

COPY./app

RUN make /app

CMD python /app/app.py

Dockerfile

Docker 网络模式

Docker 存储驱动对比

Docker 常用命令说明

#查看docker版本

docker version

#显示docker系统的信息

docker info

#日志信息docker logs

#故障检查

service docker status

#启动关闭

docker sudo service docker start | stop

#查看当前运行的容器

docker ps

#查看全部容器

docker ps -a

#查看全部容器的id和信息

docker ps -a -q

#查看全部容器占用的空间

docker ps -as

#查看一个正在运行容器进程,支持ps命令参数

docker top

#查看容器的示例id

sudo docker inspect -f {{.ld}}‘ [id]

#检查镜像或者容器的参数,默认返回JSON格式

docker inspect

第五节 容器编排与调度

容器编排与调度

·基于容器的应用一般会采用微服务架构。在这种架构下,应用被划分为不同的组件,并以服务的形式运行在各自的容器中,通过API对外提供服务。为了保证应用的高可用,每个组件都可能会运行多个相同的容器。这些容器会组成集群,集群中的容器会根据业务需要被动态地创建、迁移和销毁。

·大家可以看到,这样一个基于微服务架构的应用系统实际上是一个动态的可伸缩的系统。这对我们的部署环境提出了新的要求,我们需要有一种高效的方法来管理容器集群。而这,就是容器编排引擎要干的工作。

·所谓编排(orchestration),通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎,容器被有机的组合成微服务应用,实现业务需求。

Docker 编排-Compose & Swarm

Kubernetes

Borg-Google的大规模集群管理系统,是k8s理论基础

Pod

Container(容器)

Label(标签)

Replication Controller(复制控制器)

Service(服务)

Node(节点)

Kubernetes Master(K8s 主节点)

CNCF 云原生计算基金会

CNCF,全称Cloud Native Computing Foundation(云原生计算基金会),口号是坚持和整合开源技术来编排容器作为微服务架构的一部分,其作为致力于云原生应用推广和普及的一支重要力量,不论您是云原生应用的开发者、管理者还是研究人员都有必要了解。

CNCF作为一个厂商中立的基金会,致力于GitHub上的快速成长的开源技术的推广,如Kubernetes、Prometheus、Envoy等,帮助开发人员更快更好的构建出色的产品。

Docker与DevOps

将应用交付的标准统一到容器上,以标准交付件的形式,实现跨阶段的标准化发布流程。

以容器为核心的交付和运维,确保一致的交付件,贯穿开发、测试、运维场景。

原文地址:https://www.cnblogs.com/fadewalk/p/10808378.html

时间: 2024-10-02 08:31:47

第五章 云原生与容器技术的相关文章

混合云场景下容器技术在新能源功率预测产品中的最佳实践

能源互联网是物联网和"互联网+"在能源行业深度融合的产物,是中国制造2025的重要组成部分,我们现在还处于能源互联网的早期阶段.绝大部分能源行业的应用都部署在私有局域网内,并且网络结构异常复杂,这是阻碍互联网技术在能源行业落地的最大挑战. 6月28日,金风科技数据平台架构师张利出席了Rancher Labs举办的Container Day 2018容器技术大会,并做了题为<混合云场景下容器技术在新能源功率预测产品中的最佳实践>的演讲. 金风科技是中国成立最早.自主研发能力最

快收藏!52篇25万字,微服务、云原生、容器、K8S、Serverless精华文章集锦

2017正在走远,新年之初,小数精选过去一年阅读量居高的技术干货,从容器.K8S 到微服务.云原生.Service Mesh,汇集成52篇精华集锦,充分反映了这一年的技术热点走向. 此文值得收藏,方便随时搜索和查看.2018,小数将继续陪伴大家,为朋友们奉献更有逼格的技术内容.2018年,在IT架构领域,你想看到哪些话题,请留言告诉我~~ 微服务篇 没说出口的研发之痛,做与不做微服务的理由请添加链接描述配置中心一团糟?微服务化改造切合企业系统需求请添加链接描述Weibo Mesh服务化实践如何应

第1章 云原生

软件 -> 开源 ->云 1.1 互联网架构变迁 1.1.1 互联网架构的核心问题 海量用户: 产品迅速迭代:敏捷的探知市场需求,快速的推陈出新.      7 * 24小时不间断服务:尽量缩短宕机时间. 流量突增:比如双11,促销,热点事件等.         业务组合复杂: 1.1.2 从集中式架构到分布式架构 传统的三层架构: 集中式架构分为标准的三层:数据访问层.服务层和web层. 服务层是核心,提供公开的API,也可以通过Web层提供API. 分布式架构.SOA和服务化: 垂直伸缩:

普元云计算-阿里云上的容器技术实践详解

转载本文需注明出处:EAII企业架构创新研究院,违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复公众号:"EAII企业架构创新研究院".(微信号:eaworld)   导读:本文以"实践过程中问题与思考"为主体,与大家分享其中的过程和经验,希望大家在后续的工作中能够避免相关问题,形成更佳实践. 为什么选择阿里云 现在的公有云如雨后春笋,国外如AWS.Azure.Bluemix,国内如BAT.DaoCloud.goodrain,都可以给大家提供丰富的云

第七章 云原生生态的基石 Kubernetes

7.1 Kubernetes架构 K8s的核心组件: etcd: 协同存储,负责保存整个集群的状态. API:资源操作的唯一入口. controller manager: 维护集群的状态,执行故障检测.自动扩展.滚动更新. Scheduler:负责资源调度,按照预定的调度策略将Pod调度到相应的机器上. Kubelet: 作为工作节点负责维护容器的生命周期. 容器运行时: 镜像管理,实现Pod和容器的真正运行. Proxy: 负责提供集群内部的服务发现和负载均衡.         推荐使用插件:

第九章 云原生数据架构

9.1 关系型数据库尚能饭否   在大数据.NoSQL以及NewSQL等新技术的轮番轰炸后,依然是主流 9.1.1 优势 开发优势:SQL查询灵活度非常高,方便的进行联机事务处理.JDBC完善.ORM完善.     ORM是为了解决 面向对象和关系型数据库阻抗不匹配的问题的:                    (阻抗不匹配: 比如一个Opprotunity下面有多个LineItems, 面向对象很好表示这种关系,Opp对象下有一个lineitems的List: 但是在关系型数据库中,就有两张

第五章云平台业务

由于云计算是一门新兴产业,供应商可以自由创新与提供各种业务模式.百度一下, 你会发现琳琅满目的内容:测试即服务(Testing as a service),数据即服务(Data as a service),存储即服务(Storage as a service), 安全即服务(Security as a service)……等等. 美国国家标准技术研究所(National Institute of Standards and Technology)在特别刊物800-146文档中提出三类云服务模式:

第五章 大数据平台与技术第11讲 MapReduce编程

在大规模的数据当中,需要分发任务,需要进行分布式的并行编程.Hadoop这样一种开源的大数据分析平台. Map阶段 Reduce阶段:相同的键把它聚集到一起之后,然后通过Reduce方式把相同的键聚集的元素进行某种运算.比如说累加运算,比如说累乘运算. 两个步骤:一.输入数据,一行一行:二.产生键值对.三.对键值对进行运算. 实际例子当中键值对是什么样子呢? 假设有一个非常大的文件,这个文件无法存到内存,用户想知道这个文件当中每个单词出现的次数. 像这种运算非常适合用Map-reduce方式来完

第五章 大数据平台与技术 第13讲 NoSQL数据库

NoSQL不是不用SQL,是Not only SQL,不仅仅是结构化的查询. NoSQL兴起的原因 在Web2.0时代新浪一分钟可以发送两万条微博,苹果可以下载4.7万次应用. 数据的高并发性,同时有90万次的查询向百度的服务器提出了搜索要求.还有高扩展性,Web应用千变万化,可能对字段的需求在不断地增加.传统的数据库无法对字段进行简单的扩展. 关系型数据库作为一个统一的数据模型,既被用于数据分析,也被用于在线业务.数据分析强调的是高吞吐量,我要产生大量的计算结果.而在线业务需要低延时,意思是需