优秀的云计算工程师需要学什么?云计算Docker学习路线
2019-03-28 14:59
483 查看
云计算工程师要学什么?随着互联网的快速发展,云计算这个词大家并不陌生,但是云计算究竟是做什么的,想要从事云计算要学习什么,很多都不知道,那么今天就给大家讲一下云计算。 云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。 对云计算的定义有多种说法。对于到底什么是云计算,至少可以找到100种解释。下面给大家分享下云计算Docker学习路线资料: 容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用"装"起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这其实是 PaaS 最理想的状态。 问题:容器的本质到底是什么? 容器的本质是进程。容器就是未来云计算系统中的进程;容器镜像就是这个系统里的".exe"安装包。Kubernetes 就是操作系统! 容器 web容器 web中间件 html (nginx apache ) php (php模块 php-fpm) java(tomcat weblogic Resin JBoss WebSphere ) python (uwsgi) nginx+tomcat+jdk weblogic nginx+php-fpm nginx+uwsgi+django mycat mysql-proxy 数据库中间件 轻量级虚拟机 所有容器共享宿主机内核 秒级启动 100容器 传统虚拟机 每台虚拟机拥有一个独立的内核 分钟级别 10台GUEST OS 运维 1.rd开发产品(需要配置开发环境)lamp 2.测试(需要配置测试环境) 3.op上线(需要线上环境) 开发 测试 运维 开战 1. rd开发产品(需要在docker容器里配置开发环境) 2. 把容器打包成镜像交给运维,运维上线 Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。 Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单。容器就像是轻量级的虚拟机,并且可 以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点。 Docker跟原有的工具区别: 传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行; Docker的部署模式是:复制->运行。 开发rd: 开发环境 运维op: 线上环境 容器和 VM 的主要区别: 容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离。虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。容器使用宿主操作系统的内核,而虚拟机使用独立的内核。Docker 的局限性之一是,它只能用在 64 位的操作系统上。 Docker对服务器端开发/部署带来的变化: 实现更轻量级的虚拟化,方便快速部署 对于部署来说可以极大的减少部署的时间成本和人力成本 Docker支持将应用打包进一个可以移植的容器中,重新定义了应用开发,测试,部署上线的过程,核心理念就 是 Build once, Run anywhere 1)标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用; 2)节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级; 3)方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合; 4)节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级; 5)方便持续集成,通过与代码进行关联使持续集成非常方便; 6)可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。 ci/cd Docker 优势: 1、交付物标准化 Docker是软件工程领域的"标准化"交付组件,最恰到好处的类比是"集装箱"。 集装箱将零散、不易搬运的大量物品封装成一个整体,集装箱更重要的意义在于它提供了一种通用的封装货物的 标准,卡车、火车、货轮、桥吊等运输或搬运工具采用此标准,隧道、桥梁等也采用此标准。以集装箱为中心的 标准化设计大大提高了物流体系的运行效率。 传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。 Docker的标准化交付物称为"镜像",它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。 2、一次构建,多次交付 类似于集装箱的"一次装箱,多次运输",Docker镜像可以做到"一次构建,多次交付"。当涉及到应用程序多副本 部署或者应用程序迁移时,更能体现Docker的价值。 3、应用隔离 集装箱可以有效做到货物之间的隔离,使化学物品和食品可以堆砌在一起运输。Docker可以隔离不同应用程序 之间的相互影响,但是比虚拟机开销更小。 总之,容器技术部署速度快,开发、测试更敏捷;提高系统利用率,降低资源成本。 Docker的度量: Docker是利用容器来实现的一种轻量级的虚拟技术,从而在保证隔离性的同时达到节省资源的目的。Docker的 可移植性可以让它一次建立,到处运行。Docker的度量可以从以下四个方面进行: 1)隔离性 Docker采用libcontainer作为默认容器,代替了以前的LXC。libcontainer的隔离性主要是通过内核的命名空 间来实现 的,有pid、net、ipc、mnt、uts命令空间,将容器的进程、网络、消息、文件系统和主机名进行隔 离。 2)可度量性 Docker主要通过cgroups控制组来控制资源的度量和分配。 3)移植性 Docker利用AUFS来实现对容器的快速更新。 AUFS是一种支持将不同目录挂载到同一个虚拟文件系统下的文件系统,支持对每个目录的读写权限管理。AUFS具有层 的概念,每一次修改都是在已有的只写层进行增量修改,修改的内容将形成新的文件层,不影响原有的层。 4)安全性 安全性可以分为容器内部之间的安全性;容器与托管主机之间的安全性。 容器内部之间的安全性主要是通过命名空间和cgroups来保证的。 容器与托管主机之间的安全性主要是通过内核能力机制的控制,可以防止Docker非法入侵托管主机。 Docker容器使用AUFS作为文件系统,有如下优势: 1)节省存储空间 多个容器可以共享同一个基础镜像存储。 2)快速部署 如果部署多个来自同一个基础镜像的容器时,可以避免多次复制操作。 3)升级方便 升级一个基础镜像即可影响到所有基于它的容器。 4)增量修改 可以在不改变基础镜像的同时修改其目录的文件,所有的更高都发生在最上层的写操作层,增加了基础镜像的可共享内容。
相关文章推荐
- 想要成为优秀工程师究竟需要什么素质?
- 云计算需要学什么课程?新手小白如何学习云计算大数据
- 优秀的数字前后端设计工程师需要具备什么能力?
- 优秀前端工程师如何养成--html学习路线
- java工程师需要学习什么
- 想成为一名数据工程师,需要了解目前的行业情况、学习途径和学习路线
- 大数据实时计算工程师/Storm工程师职业学习路线图
- 游戏开发学习路线(需要学什么)
- App开发需要重点学习什么计算机技术
- 硬件工程师需要学习哪些知识
- 什么人适合学习Python,以及新手Python学习路线指导
- 成为一名Java高级工程师你需要学什么
- 什么是预编译?何时需要预编译 (C、C++工程师面试题)
- 小白H5成长之路4:还需要学习什么备用知识?
- 优秀的前端需要做到什么?
- AI工程师职业规划和学习路线完整版
- 人工智能工程师学习路线/自然语言处理算法工程师
- 学习SEO,究竟需要掌握些什么
- 想成为优秀工程师,你需要这些
- 嵌入式硬件工程师可以做什么?需要哪些技能?