自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木精灵的技术博客

做一点点的技术分享与交流

  • 博客(48)
  • 资源 (13)
  • 收藏
  • 关注

原创 深入理解 Docker 镜像 json 文件

很多时候,当大家谈论起Docker,经常会提到Docker作为容器解决方案,在虚拟化资源方面存在不小优势。轻量级虚拟化技术的优点暂且不谈,从软件生命周期来看,Docker在打包软件、分发软件方面的能力同样出众。而后者很大程度上依赖于Docker的镜像技术。Docker镜像技术提供了一套标准,创造性地使用Dockerfile来规范化Docker化应用的制作流程,结果产生的Docker镜像便于传输与管理

2015-09-04 12:57:43 9811 1

原创 深入分析Docker镜像原理

第一部分:Docker镜像的基本知识1.1 什么是Docker镜像从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角。例如一个ubuntu:14.04的镜像,提供了一个基本的ubuntu:14.04的发行版,当然此 镜像是不包含操作系统Linux内核的。说到此,可能就需要注意一下,linux内核和ubuntu:14.04

2015-09-04 12:51:59 1778

原创 Docker镜像内有啥,存哪?

据说重要的事情要说三遍,那我再表述一下个人观点:Docker镜像是Docker的灵魂所在。前两讲关于Docker镜像的描述,已经从宏观的角度涉及一二。一旦掌握Docker对于镜像的层级管理方式,以及Docker镜像大小的真实情况之后,再来了解Docker镜像包含的内容以及存储,就显得简单很多。Docker镜像内容对于Docker镜像的认识总会有第一次,自那时开始,当然也少不了成长,笔者

2015-08-17 02:38:14 10560 2

原创 深刻理解Docker镜像大小

都说容器大法好,但是如果没有Docker镜像,Docker该是多无趣啊。是否还记得第一个接触Docker的时候,你从Docker Hub下拉的那个镜像呢?在那个处女镜像的基础上,你运行了容器生涯的处女容器。镜像的基石作用已经很明显,在Docker的世界里,可以说是:No Image,No Container。再进一步思考Docker镜像,大家可能很快就会联想到以下几类镜像:1.系统级镜

2015-08-09 22:45:01 19911 3

原创 Docker源码分析(七):Docker Container网络 (上)

1.前言(什么是Docker Container)如今,Docker技术大行其道,大家在尝试以及玩转Docker的同时,肯定离不开一个概念,那就是“容器”或者“Docker Container”。那么我们首先从实现的角度来看看“容器”或者“Docker Container”到底为何物。逐渐熟悉Docker之后,大家肯定会深深得感受到:应用程序在Docker Container内部的部署与运行非常便捷

2015-08-04 22:58:06 1340

原创 Docker源码分析(六):DOCKER DAEMON网络

[摘要] Docker的容器特性和镜像特性已然为Docker实践者带来了诸多效益,然而Docker的网络特性却不能让用户满意。本文从Docker的网络模式入手,分析了Docker Daemon创建网络环境的详细流程,其中着重于分析Docker桥接模式的创建,为之后Docker Container创建网络环境做铺垫。1. 前言Docker作为一个开源的轻量级虚拟化容器引擎技术,已然给云计算领域带来了

2015-08-04 22:27:22 1436

原创 Docker源码分析(五):Docker Server的创建

【摘要】 Docker Server作为Docker Daemon架构中请求的入口,接管了所有Docker Daemon对外的通信。通信API的规范性,通信过程的安全性,服务请求的并发能力,往往都是Docker用户最为关心的内容。本文基于源码,分析了Docker Server大部分的细节实现,力求帮助Docker用户初探Docker Server的设计理念。1. Docker Server简介Do

2015-08-04 22:16:27 1276

原创 Docker源码分析(四):Docker Daemon之NewDaemon实现

【摘要】 Docker架构中Docker Daemon支撑着整个后台的运行,同时也统一化管理着Docker架构中graph、graphdriver、execdriver、volumes、Docker container等众多资源。可以说,Docker Daemon复杂的运作均由daemon对象来调度,而newDaemon的实现恰巧可以帮助大家了解这一切的来龙去脉。1. 前言Docker的生态系统日

2015-08-04 22:12:51 1544

原创 Docker 容器日志的那些事儿

如果时光可以倒流,现实世界的每一步都可以分解到最小,记录下来,就是日志,万物即日志。面对历史,审视日志,可以选择忘却,也可以选择铭记;经历过的,可以选择珍藏,同样也可以让它尘封。Docker容器又何尝不是?日志就像一根时间轴,你在或者不在,他都在那。有人对其善意,有人却对其随意。如若不信,可以回忆,自己是否善待Docker容器的日志。1.传统应用的日志如若不是被过去伤得太深,踏入一个新的世界,应该还

2015-08-04 22:05:31 10456

原创 docker exec 与容器日志

翻看 Docker 的历史,您会发现 Docker 一直在强调 “Application” 一词,Docker 也希望能为分布式应用提供容器化的解决方案。从 Docker 化应用软件的生命周期来看,开发工作似乎位于 Docker 的构建之前,而后容器化的测试、部署与运维都与Docker容器息息相关。不得不说,Docker 思维下的应用软件,管理流程与传统场景有着很大的区别。最大的区别当属:Docke

2015-08-04 21:56:07 4846

原创 docker logs 实现剖析

Docker完全可以轻易构建用户的应用,即为 build;Docker还可以将应用快速分发,即为 ship;最后,Docker依然有能力秒级启动应用,即为 run。Build,Ship,Run,简单的3步,分分钟为 DevOps 创建了管理应用生命周期的捷径。应用是运行起来了,应用运行后,运行状态相信是工程师最关心的点。这一点,Docker如何帮工程师排忧解难呢?想知道应用是否仍在运行?「docke

2015-08-04 21:51:40 6763

原创 一图看尽Docker容器文件系统

Dockerfile是软件的原材料,Docker镜像是软件的交付品,而Docker容器则可以认为是软件的运行态。从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。Docker镜像Docker镜像是Docke

2015-08-04 21:34:34 5061

原创 Docker源码分析(二):Docker Client创建与命令执行

在上文Docker源码分析之——Docker Daemon启动 中,介绍了Docker Daemon进程的启动。Docker Daemon可以认为是一个Docker作为Server的运行载体,而真正发送关于docker container操作的请求的载体,在于Docker Client。本文从Docker源码的角度,分析Docker Client启动与执行请求的过程。

2014-09-12 19:56:11 13952 2

原创 Docker源码分析(三):Docker Daemon的启动

本文从Docker的源代码出发,简要介绍了Docker作为一个后台进程启动过程中运行的流程。

2014-09-11 16:49:29 21805 1

原创 Docker源码分析(一):Docker架构

Docker是PaaS圈内开源的基于LXC的应用容器引擎,基于Go语言开发,遵从Apache2.0协议。最近一年来,Docker在云计算方面的热度持续升温,社区等活跃度也持续走高,使得大家对于Docker普遍持有积极态度。笔者在研究生期间,主要从事PaaS方面的研究与实践工作,具体的研究平台为开源的Cloud Foundry。最近Docker的火热,更是让自己处于对Docker的学习过程中,不能自拔。

2014-09-10 11:09:07 22302 3

翻译 开源的服务发现项目Zookeeper,Doozer,Etcd

本文是Jason Wilder对于常见的服务发现项目Zookeeper,Doozer,Etcd所写的一篇博客,其原文地址如下:Open-Source Service Discovery。 服务发现是大多数分布式系统以及面向服务架构(SOA)的一个核心组成部分。这个难题,简单来说,可以认为是:当一项服务存在于多个主机节点上时,client端如何决策获取相应正确的IP和port。 在传统情况下,当出现服务存在于多个主机节点上时,都会使用静态配置的方法来实现服务信息的注册。但是

2014-08-22 00:29:45 18229 1

原创 Cloud Foundry中warden的网络设计实现——iptable规则配置

在Cloud Foundry v2版本中,该平台使用warden技术来实现用户应用实例运行的资源控制与隔离。在网络方面,warden container技术创建出一块虚拟网卡,专门供warden container内部使用,另外为warden container内部的虚拟网卡在warden server所在的宿主机上也配对了一块虚拟网卡,充当container的外部网关。仅仅创建出两块虚拟网卡,原则上可以保证物理上的“连通”,但是却很难做到网络间通信的“联通”,故在物理资源以及虚拟物理资源完备的情况,wa

2014-08-20 13:37:07 3316 2

原创 Cloud Foundry中DEA启动应用实例时环境变量的使用

在Cloud Foundry v2中,当应用用户需要启动应用的实例时,用户通过cf CLI向cloud controller发送请求,而cloud controller通过NATS向DEA转发启动请求。真正执行启动的事,是由DEA来完成,DEA主要做的工作为启动一个warden container, 并将droplet等内容拷贝进入container内部,最后配置完指定的环境变量,在这些环境变量下启动应用的启动脚本。 本文将从阐述Cloud Foundry中DEA如何为应用实例的启动配置环

2014-07-22 13:31:48 3309

原创 Cloud Foundry中gorouter对StickySession的支持

Cloud Foundry作为业界出众的PaaS平台,在应用的可扩展性方面做得非常优秀。 具体来讲,在一个应用需要横向伸展的时候,Cloud Foundry可以轻松地帮助用户做好伸展工作,也就是创建出一个应用的多个实例,多个实例地位相等,多个实例共同为用户服务,多个实例共同分担访问压力。 大致来说,可以认为是共同分担访问压力,但是也不是针对所有该应用的访问,都进行均衡,分发到不同的应用实例处。譬如:当Cloud Foundry的访问用户访问应用时,第一次的访问,goroute

2014-07-15 20:00:18 1967

原创 Cloud Foundry中DEA与warden通信完成应用端口监听

在Cloud Foundry v2,DEA为一个用户应用运行的控制模块,而应用的真正运行都是依附于warden。更具体的来说,是DEA接收到Cloud Controller的请求;DEA发送请求给warden server;warden server创建warden container并将用户应用droplet等环境配置好;DEA发送应用启动请求至warden serve;最后warden container执行启动脚本启动应用。本文主要具体描述,DEA如何与warden交互,以保证最终用户的应用可以成功

2014-07-14 12:09:01 3737 3

原创 Cloud Foundry warden container 安全性探讨

本文从Cloud Foundry中warden container入手,探讨warden container的安全性。主要集中在多租户container之间,container与云平台之间可能存在的安全问题。

2014-06-26 11:05:17 2970 2

原创 Cloud Foundry中warden的架构与实现

在Cloud Foundry中,当应用开发者的应用由Cloud Foundry的组件DEA来运行时,应用的资源隔离与控制显得尤为重要,而warden的存在很好得解决了这个问题。Cloud Foundry中warden项目的首要目的是提供一套简易的接口来管理隔离的环境,这些隔离的环境可以被称为“容器”,他们可以在CPU使用,内存使用,磁盘使用以及设备访问权限方面做相应的限制。本文从warden架构入手,简要的介绍了warden client,warden server以及warden container的

2014-03-19 14:22:15 7164 5

原创 Cloud Foundry中cloud_controller_ng架构简析

本文中cloud_controller_ng的架构出发,并进行了简单的解析。cloud_controller_ng是Cloud Foundry v2版本中的一个重要组件。其中cloud_controller_ng是cloud_controller的next generation(ng)的含义,而cloud_controller_ng的设计不兼容原先老版的cloud_controller。老版本的cloud_controller采用Rails的MVC框架来实现,而cloud_controller_ng则采用S

2014-02-02 00:32:30 6507 5

原创 Cloud Foundry中dea_ng源码文件分析

/dea_ng/lib/dea/ 目录下各文件的作用简介bootstrap.rb:主要负责配置dea_ng其他的模块,另外还负责将这些模块启动工作,主要的模块有nats,logging,loggregator,droplet_registry ,instance_registry,staging_task_registry,instance_manager ,snapshot ,resourc

2014-01-21 13:58:00 3071

原创 Cloud Foundry中应用实例生命周期过程中的文件目录分析

在Cloud Foundry中,应用在DEA上运行,而应用在自身的生命周期中,自身的文件目录也会随着不同的周期,做出不同的变化。        本文将从创建一个应用(start an app),停止一个应用(stop an app),删除一个应用(delete an app),重启一个应用(restart an app),应用crash,关闭dea,启动dea,dea异常退出后重启,这几个

2014-01-20 21:28:30 2391

原创 Cloud Foundry中Stager组件的源码分析

Cloud Foundry中有一个组件,名为Stager,它主要负责的工作就是将用户部署进Cloud Foundry的源代码打包成一个DEA可以解压执行的droplet。 关于droplet的制作,Cloud Foundry v1中一个完整的流程为:1.用户将应用源代码上传至Cloud Controller;2.Cloud Controller通过NATS发送请求至Stager,要求制作dropet;3.Stager从Cloud Controller下载压缩后的应用源码,并解压;4.Stager将解压后的

2013-11-07 12:16:59 2612

原创 Cloud Foundry中collector组件的源码分析

在Cloud Foundry中有一个叫collector的组件,该组件的功能是通过消息总线发现在Cloud Foundry中注册过的各个组件的信息,然后通过varz和healthz接口来查询它们的信息,最后再将各个组件收集过来的数据发送到指定的存储位置。本文从collector的功能出发,主要讲述以上三个功能的源码实现。

2013-11-04 12:03:55 3271

原创 Cloud Foundry中DEA组件内应用的启动与资源监控

Cloud Foundry中所有的应用都运行在一个称为DEA的组件中,DEA的全称是Droplet Execution Agent。DEA的主要功能可以分为两个部分:运行所有的应用,监控所有的应用。本文主要讲解Cloud Foundry v1版本中DEA如何启动一个应用,以及DEA如何监控应用的资源使用。虽然DEA两个功能的实现远不止这么多,但是笔者认为启动应用和监控应用资源是DEA的精髓所在,很多其他的内容都是在这两个点上进行封装或者强化。

2013-11-01 16:41:35 4305 5

原创 Cloud Foundry中syslog_aggregator的实现分析

Cloud Foundry中,用来收集Cloud Foundry各组件日志信息的组件,名为syslog_aggregator。syslog_aggregator可以做到方便的收集Cloud Foundry中所有组件的日志信息,并将这些信息进行初步处理。syslog_aggregator组件主要包括monit模块,日志管理模块。

2013-10-28 14:32:11 3100 1

原创 Cloud Foundry中gorouter源码分析

在Cloud Foundry v1版本中,router作为路由节点,转发所有进入Cloud Foundry的请求。由于开发语言为ruby,故router接受并处理并发请求的能力受到语言层的限制。虽然在v1版本中,router曾经有过一定的优化,采用lua脚本代替原先的ruby脚本,由lua来分析请求,使得一部分请求不再经过ruby代码,而直接去DEA访问应用,但是,效果依旧不是很理想。为了提高Cloud Foundry router的可用性,Cloud Foundry开源社区不久前推出了gorouter。g

2013-10-11 15:39:38 7771 6

原创 Cloud Foundry中vmc tunnel与caldecott原理

在Cloud Foundry中,用户可以vmc create-service创建一个service instance,但是常规情况下,用户不能手动地进一步对service instance进行设计。以MySQL为例,用户可以创建一个MySQL instance,但是一般情况下,用户不能直接对整个MySQL的database进行schema设计,或者进行增删改查的操作。对于MySQL service

2013-08-06 14:10:57 2920 4

原创 Cloud Foundry中 JasperReports service集成

Cloud Foundry支持的现有服务中,大多数都属于传统的关系型数据库以及NoSQL数据库。在这两类数据库服务中,提供service服务,相当于由数据库server提供数据存储的服务,换言之,也就是由数据库server端创建database,然后将该database转交给Cloud Foundry的app应用使用。JasperReports service的实现首先需要完成JasperReportsservice中的数据表现形式以及存储形式。由于在上一部分以及抽象归纳出JasperReports se

2013-08-02 19:32:38 2879

原创 Cloud Foundry中通用service的集成

目前,CloudFoundry已经集成了很多第三方的中间件服务,并且提供了用户添加自定义服务的接口。随着Cloud Foundry的发展,开发者势必会将更多的服务集成进Cloud Foundry,以供app使用,也扩展了app的功能。本部分主要描述通用service集成进入Cloud Foundry所需要做的设计以及实现。 1. service概念的对应将通用的service类型集

2013-06-21 19:19:00 2801

原创 iReport+JasperReports Server开发过程的Troubleshooting

本文涉及的内容:主要是实现一个subreport的masterreport成功在JasperReports Server(下文简称为JRS)上生成报表。首先是使用iReport分别设计masterreport和subreport,并preview成功;然后再将这两份报表模版在JasperReports Server上连接数据源,并最终生成报表。问题1: No suitable dr

2013-04-22 22:07:15 2460

原创 Cloud Foundry中基于Master/Slave机制的Service Gateway——解决Service Gateway单点故障问题

Cloud Foundry作为业界最出色的PaaS平台之一,给广大的互联网开发者和消费者提供出色的体验。自Cloud Foundry开源以来,有关Cloud Foundry的研究越来越多,这也很好的支持着Cloud Foundry的生态系统。但是作为一个平台,Cloud Foundry仍然会存在一些可靠性,扩展性方面的不足,这也吸引着众多的Cloud Foundry爱好者对其进行更多更深入的研究。

2013-04-14 11:34:28 3381

原创 JasperReports Server on Cloud Foundry

最近由于实验室工作的需要,有一些时间在做Cloud Foundry上对于著名的报表引擎JasperReports的支持。关于官方的讲述可以参考地址:http://blog.cloudfoundry.com/2012/01/12/java-reporting-engine-is-now-available-on-cloud-foundry-via-jasperreports/

2013-04-09 20:48:49 2429

原创 基于网络爬虫的XSS漏洞检测技术

1.   背景和意义在早期的网站设计中,网页的存在形式都是静态的。静态的网页内容稳定,不会经常更新,但是在后期却不易维护。如果需要维护更新网页,则必须重新编辑HTML网页,因此当网站很庞大的时候,维护静态网页的工作量几乎是不能容忍的。随着时代的发展,在这方面发展出来一大批的动态网站技术,比如JSP,ASP,PHP等。这些网站技术的动态性主要体现在其相应网页的形成过程是动态的,即网页内容会根据用

2013-03-20 22:01:15 6741

原创 浏览器中的安全窗口通信

本文为论文《Securing Frame Communication in Browsers》的读书笔记。该论文基于浏览器的安全策略,主要着眼于浏览器中的窗口通信(frame communication)。现在随着网民的不断增多,浏览器在用户的网络生活中扮演着一个不可或缺的角色,但是浏览器在显示用户所需的网页时,并非是安全的。现在绝大多数的网站在窗口中植入第三方的内容,而对于用户来说,主要

2013-03-20 21:42:09 1373

原创 Winnowing:一种文档指纹的通用算法

本文为论文《Winnowing: Local Algorithms for Document Fingerprinting》的读书笔记。       在当今时代,电子内容会通过很多途径出现相同的情况,比如说:引用,版本修订,剽窃等。而文档指纹是用来准确指定拷贝的有效途径,哪怕是在大量的文档集合种有小部分的拷贝。       在该论文中,作者介绍了通用的文档指纹算法,这些算法似乎可以捕捉到任

2013-03-20 21:37:06 5227

原创 TCP/IP协议中的安全问题

本文为论文《A Look Back at “Security Problems in the TCP/IP Protocol Suite”》的读书笔记。      在计算机安全课程上,涉及到TCP/IP的时候,曾经强调TCP/IP种存在不少的安全问题,但是这并不意味TCP/IP的性能或安全性不好,因为TCP/IP的诞生本身就不是立足于安全,而是主要解决网络间的通信问题。然而,随着TCP/IP的

2013-03-20 21:32:28 3873

堆栈 Stack实现计算器 C++ 数据结构

数据结构实验用堆栈实现计算器,大二数据结构实验

2012-01-18

C++ Huffman 数据结构实验

数据结构 Huffman实验的源代码,c++实现

2012-01-18

matrix MFC 大一程序语言设计

大一学程序语言设计时用MFC编写的矩阵MATRIX,很好的学习资料

2012-01-07

FTP C语言 linux

课程设计 基于C语言的linux操作系统下FTP的实现,GUI利用Qt实现 大学三学期课程设计作业,便于理解 报告+源代码

2012-01-04

maze12*12 走迷宫源代码

大一C++初学者,12*12走迷宫源代码。。。仅供参考

2012-01-04

MFC 简易计算器

大一大二学习MFC的好资源,MFC,计算器源代码

2012-01-04

计算机网络 课件 外教

计算机网络的外教课件,很好,了解老外的对网络的理解

2011-06-18

LCDdisplay

C++实现的数字与LCD数字之间的转换.ACM程序设计的初步要求

2011-02-11

计算机图形学 建模 小机器人

计算机图形学 建模 小机器人 可以实现真实的小机器人

2010-12-21

计算机图形学Julia

改程序实现了Julia算法,是图形学的必学程序之一

2010-12-21

单片机msp430及其安装等说明

这个东西很好。对于初学者来说,尤其可以端粒自己的能力.msp430的是用说明

2010-07-22

培训5(关于数学建模的题目)

很好的数学建模题目,可以提高自己的思维逻辑能力

2010-07-21

普通院校高等数学答案

好的不得聊,对考试的其他的众多方面又很大的好处

2010-02-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除