容器技术

当我们在聊 Serverless 时你应该知道这些

 ̄綄美尐妖づ 提交于 2019-11-30 18:14:52
作者 | 杨泽强(竹涧)阿里云技术专家 说起当前最火的技术,除了最新的区块链、AI,还有一个不得不提的概念是 Serverless。Serverless 作为一种新型的互联网架构,直接或间接推动了云计算的发展,从 AWS Lambda 到阿里云函数计算,Serverless 一路高歌,同时基于 Serverless 的轻量计算开始登录云计算的舞台,本文将从两个部分展开: 介绍 Serverless 的概念,历史及其现状与未来的思考; Serverless Container 的概念及现状。 一、聊聊 Serverless 前文讲到 Serverless 是一种新型的互联网架构,目前尚没有官方权威的定义,可以认为: Serverless 无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务(例如 AWS Lambda 服务),客户端逻辑和服务托管远程过程调用的组合。 AWS Lambda 作为 Serverless 最早的框架产品,在 2014 年由亚马逊推出,但最早的 Serverless 概念并不是由亚马逊提出,下面我们来简单聊聊 Serverless 的历史。 Serverless 历史 发轫之始 2012 年云基础设施服务提供商 Iron.io 的副总裁 Ken 提出 软件的未来 , 首次提出来 Serverless 概念 ,

Kubernetes 实践案例分享|将 Node.js 应用从 PaaS 平台移动到 Kubernetes Tutorial

允我心安 提交于 2019-11-30 16:16:03
在谈到为什么、以及如何将我们的服务迁移到 Kubernetes 的故事之前,需要强调的是,使用 PaaS 平台是完全没错的。如果要开发一个新的产品,PaaS 是一个很完美的平台,同时它还是一个很好的快速迭代的解决方案——当然,这取决于你的需求和资源。 PaaS RisingStack 的产品 Trace,我们的 Node.js 监控解决方案运行在最大的 PaaS 提供商之一上已有半年多。我们在其它解决方案中选择了 PaaS,因为我们想要重点关注产品而不是基础设施。 我们的需求其实和简单;我们需要: 快速部署 简单弹性伸缩 无宕机部署 回滚功能 环境变量管理 不同的 Node.js 版本 无需开发运维人员 使用 PaaS 平台时,我们不希望有的副作用: 服务间网络延时大 缺乏 VPC 多租户技术引起的响应时间高峰 更高的成本(为每个进程支付,无论大小:clock,内部 API 等等)。 Trace 是作为一组微服务来开发的,所以你可以想象一下,网络延迟和服务费很快就开始对我们造成损害。 Kubernetes Tutorial 从 PaaS 经验来看,我们正在寻找一种解决方案,只需要少量的开发运维工作、同时保持原有的开发流程不变。我们并不想失去任何我们上面提到过的优势——但是,我们也曾想要修补那些明显的漏洞。 我们那时候正在寻找更加配置化的,团队中任何人都可以修改的基础设施。

Docker操作实践(3):Docker的操作详解

独自空忆成欢 提交于 2019-11-30 14:59:00
今天是Docker讨论系列的终章,文章将从组织的学习利用一张图片分享几个概念和命令来了解Dorcker的命令,后面再细化的在说明​Docker run命令。 如果你还没看过前面的内容: 第一篇 《容器的本质是什么?容器从何而来?》 第二篇 《Docker的安装及架构介绍》 一张图了解docker命令 上图摘自:http://bingohuang.com/simplify-docker-image-2/ 1. 概念介绍: Images: docker镜像。可将容器转化为镜像,也可从镜像运行出一个个的容器实例。类似于虚拟机模板的概念。 Container: 容器。 有running\stopped\pause三种状态,类似于虚拟机的概念。 Tar files: 可以将镜像打包为tar文件,也可以将打包后的tar文件重新load为镜像 Dockerfile: 构建镜像的声明式配置文件。Docker技术的核心亮点之一。当我们从一个基础镜像(centos镜像)构建一个另一个基础镜像(如java镜像)时,一般不会使用的在centos镜像中直接安装java的方式,而是将java软件与centos镜像放置于一起,在相同目录下编写好dockerfile,dockerfile中定义了java镜像安装的命令和环境配置参数等安装信息,然后使用docker

docker第一篇 容器技术入门

你说的曾经没有我的故事 提交于 2019-11-30 13:18:51
Container   容器是一种基础工具,泛指任何可以容纳其它物品的工具。 Linux Namespaces (docker容器技术主要是通过6个隔离技术来实现) namespace 系统调用参数 隔离内容 内核版本 UTS   CLONE_NEWUTS 主机名和域名 2.6.19 IPC CLONE_NEWIPC 信息量、消息队列和共享内存 2.6.19 PID CLONE_NEWPID 进程编号 2.6.24 Network CLONE_NEWNET 网络设备、网络栈、端口等 2.6.29 Mount CLONE_NEWNS 挂载点(文件系统) 2.4.19 User COLNE_NEWUSER 用户和用户组 3.8 Control Groups, CGroups控制组 (一般用来限制资源使用)把系统级的资源分成多个组,然后把每个组内的资源量指派或者分配到不同的用户空间进程上。   blkio:块设备IO   cpu: CPU   cpuacct: CPU资源使用报告   cpuset:多处理平台上的CPU集合   devices:设备访问   freezer:挂起或恢复任务   memory:内存用量报告   perf_event: 对从group中的任务进行统一性能测试   net_ds:cgroup中的任务创建的数据报文的类别标识符 LXC (LinuX

Containers vs Serverless:你选择谁,何时选择?

时间秒杀一切 提交于 2019-11-30 12:47:56
两者都是当今技术时代的热门话题,也都被视为是开发技术的竞争对手。 首先,还有相当多的好奇和担心。此外,两者都是可供工程师使用的、高效的、机器无关的抽象。 但是,在冠军之间,有一个不可逾越的鸿沟。你要么在容器区域,要么选择 Serverless。除此之外,如果你愿意将两者结合起来,那将是一个强大的组合。 预计到 2021 年,Serverless 将达到 77.2 亿美元 的规模。但对容器的需求也将增长 40% 。 1. 什么是 Serverless? 简而言之, Serverless 是运行在服务器上的,基于云服务的子集。 1.1. 容器 vs. Serverless:为什么 Serverless 更好? 服务提供商或供应商管理 Serverless 操作的基础设施需求。你所需要做的就是部署代码。因此,你有机会更专注于应用逻辑,而不必担心基础设施。 该技术在主流企业中是非常酷的一种存在。 来源: https://www.slideshare.net/speckandtech/a-bot-in-minutes-with-serverless 有很多可用的平台 —— Google 云、AWS Lambda、 EdgeEngine 2. 为什么要从 Containers 到 Serverless? 2.1. 廉价 使用 Serverless,你通常是按使用量付费。闲置资源会有价格豁免

Containers vs Serverless:你选择谁,何时选择?

拈花ヽ惹草 提交于 2019-11-30 12:47:40
两者都是当今技术时代的热门话题,也都被视为是开发技术的竞争对手。 首先,还有相当多的好奇和担心。此外,两者都是可供工程师使用的、高效的、机器无关的抽象。 但是,在冠军之间,有一个不可逾越的鸿沟。你要么在容器区域,要么选择 Serverless。除此之外,如果你愿意将两者结合起来,那将是一个强大的组合。 预计到 2021 年,Serverless 将达到 77.2 亿美元 的规模。但对容器的需求也将增长 40% 。 1. 什么是 Serverless? 简而言之, Serverless 是运行在服务器上的,基于云服务的子集。 1.1. 容器 vs. Serverless:为什么 Serverless 更好? 服务提供商或供应商管理 Serverless 操作的基础设施需求。你所需要做的就是部署代码。因此,你有机会更专注于应用逻辑,而不必担心基础设施。 该技术在主流企业中是非常酷的一种存在。 来源: https://www.slideshare.net/speckandtech/a-bot-in-minutes-with-serverless 有很多可用的平台 —— Google 云、AWS Lambda、 EdgeEngine 2. 为什么要从 Containers 到 Serverless? 2.1. 廉价 使用 Serverless,你通常是按使用量付费。闲置资源会有价格豁免

spring ioc Di

和自甴很熟 提交于 2019-11-30 12:21:29
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。 一、分享Iteye的开涛对Ioc的精彩讲解   首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846 1.1、IoC是什么   Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:   ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么

docker一些常用命令

点点圈 提交于 2019-11-30 12:18:53
一、Docker简介: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 二、docker命令整理: 1. 容器操作: docker create # 创建一个容器但是不启动它 docker run # 创建并启动一个容器 docker stop # 停止容器运行,发送信号SIGTERM docker start # 启动一个停止状态的容器 docker restart # 重启一个容器 docker rm # 删除一个容器 docker kill # 发送信号给容器,默认SIGKILL docker attach # 连接(进入)到一个正在运行的容器 docker wait # 阻塞一个容器,直到容器停止运行 2. 获取容器信息: docker ps # 显示状态为运行(Up)的容器 docker ps -a # 显示所有容器,包括运行中(Up)的和退出的(Exited) docker inspect # 深入容器内部获取容器所有信息 docker logs # 查看容器的日志(stdout

基于MysqlConnector/C++的数据库连接池的实现

筅森魡賤 提交于 2019-11-30 12:18:09
1. 连接池的介绍: 1.1 应用背景: 一般的应用 程序 都会访问到数据库,在程序访问数据库的时候,每一次数据访问请求都必须经过 下面几个步骤: 建立数据库连接,打开数据库,对数据库中的数据进行操作,关闭数据库连接。而建立数据库连接和打开数据库是一件很消耗资源并且费时的工作,如果在系统中很频繁的发生这种数据库连接,必然会影响到系统的性能,甚至会导致系统的崩溃。 1.2 技术思想: 在 系统 初始化阶段,建立一定数量的数据库连接对象 ( C onnection) ,并将其存储在连接池 中定义的 容器中。当有数据库访问请求时,就从连接池中的这个容器中拿出一个连接;当容器中的连接已经用完,并且还没有达到系统定义的最大连接数时,可以再创建一个新的连接 , 当当前使用的连接数达到最大连接数时,就要等待其他访问请求将连接放回容器后才能使用。当使用完连接的时候, 必须 将连接放回容器中,这样不同的数据库访问请求就可以共享这些连接,通过 重复使用 这些已经建立的数据库连接,可以解决上节中说到的频繁 建立连接 的缺点,从而提高了系统的性能。 经过上述描述,我们可以归纳出数据库连接池的主要操作: (1) 首先建立一个数据库连接池对象 (2) 初始化 一定数量的数据库连接,放入连接池对象的容器中 (3) 当有数据库访问请求时,直接从连接池的容器中得到一个连接,这里出现三种情况: (a)

Docker初体验

纵饮孤独 提交于 2019-11-30 10:47:03
断断续续的使用Docker好几年了,但是一直没有全面深入的去了解过,每次用到都是Google一下相关的命令解决临时的问题,到头来却毫无收获。好在,我终于意识到了这个问题,便决定从头开始,耐心的学学Docker,并把学习过程记录下来,方便以后参考,也望与大家交流学习。 本人比较偏爱Ubuntu,故本文所用命令皆基于Ubuntu 16.04,其他版本的命令会有稍有不同,本文不多做介绍。 目录 简介 容器 VS 虚拟机 安装 准备 安装 镜像加速 安装Docker Compose 常用命令 运行容器 管理容器 镜像管理 Dockerfile OnBuild Ignore File 简介 容器:将软件打包成标准化单元,以用于开发、交付和部署,而 Docker 是世界领先的软件容器平台。 容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器 VS 虚拟机: 容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。 容器是一个应用层抽象,用于将代码和依赖资源打包在一起。多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行。与虚拟机相比,容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动。 虚拟机 (VM)