PAAS平台
- 微软azure PAAS栈
- PAAS的范畴:解决搭建开发环境技术栈,解决构建基础技术框架服务(日志存储消息等),解决搭建测试环境。
- 老一代PAAS平台局限性:主要提供应用的部署和托管。仅仅支持特定laas基础技术,单种开发语言框架,特定服务,中间件需要手动配置,应用和资源隔离问题
- 新一代PAAS:docker(第三代PAAS平台)。全方位的应用生命周期管理。
包括cloud foundry,openshift,docker,heroku,mopaas等paas技术和服务。特征:多语言和框架,多服务,多云和多laas技术。 - docker历史。Docker的CTO Solomon Hykes。于2013.03.27正式作为public项目发布,开源后蓬勃发展。
- docker技术原理。
docker是虚拟化的一种轻量级替代技术。docker容器技术不依赖任何语言框架、系统,可以将app变成一种标准化、可移植、自管理的组件,并脱离服务器硬件可以在任何主流系统中开发、调试、运行。
相关核心技术:cgroup,LXC,Jails,BTRFS,AUFS,Service Discovery,SE linuxcgroups
首先挂载资源控制器(子系统,比如说cpu子系统就是控制cpu时间分配的),然后创建cgroup节点,将进程id写入,就可以完成资源限制。[我的理解是资源控制器的一个用户组]LXC
linux container是基于容器的操作系统层级的虚拟化技术。借助namespace和cgroup,LXC提供统一API和工具建立管理container。LXC和其他操作系统层次的虚拟化技术比,最大的优势在于LXC被整合进内核,不用单独为内核打补丁。但是没有那么强壮,因为如果内核停止,所有容器会停止运行。
性能:LXC>>KVM>>XEN
内存利用率:LXC>>KVM>>XEN
隔离程度:XEN>>KVM>>LXCAUFS
linux写时拷贝技术
AUFS详解
Advance Union File System将多个文件系统mount到一个目录下,并使用copy on write技术。在对多层镜像文件进行读写时,只看到单层(最底层)。App打包
使用多层image时,可以通过AUFS技术将这些image加载合并到统一的路径中,以只读的方式存在。最后再叠加一层可写的空白Layer用作记录对当前环境所做的修改。
[一切都是为了重用image]docker全生命周期开发模式
docker image
docker image 是一个极度精简版的Linux程序运行环境。
docker image是需要定制化build的一个“安装包”,包括基础镜像+应用的二进制部署包。
docker image内不建议有运行期需要修改的配置文件。
dockerfile用来创建自定义image,包含了用户指定的软件依赖等。当前目录下包含dockerfile,使用命令build来创建新的image。
docker image最佳时间是尽量重用和使用网上公开的基础镜像。docker container
docker container是image的实例,共享内核。
docker container里可以运行不同os的image。
docker container不建议内部开启SSHD服务。docker exec命令进入容器排查问题。
docker container没有IP地址(只具有私有IP),通常不会有服务端口暴露,是一个封闭“沙箱”。
docker container生命周期:created,running,stopped,paused,killed。docker daemon
docker daemon是创建和运行Container的linux守护进程,也是docker最主要的核心组件。
docker daemon可以理解为docker container的container。
docker daemon可以绑定本地端口并提供Rest API服务,用来远程访问和控制。(k8s应用)docker Registry/Hub
托管镜像,包括docker官方维护和开发者共享。
docker hub是dotCloud公司私有的。
国内只有DaoCloud提供代理缓存服务。
企业中建议使用私有docker registerydocker核心组件的关系
docker001.jpg
网友评论