华为实习期间学习计划

华为基础开源部门实习_可信部门_微服务组

学习计划

列出每天的学习计划,并在每日工作结束后写出学习成果并总结。

6.6号

  1. 什么是docker,了解docker的历史背景、产生的原因,知道docker的原理。
  2. docker与virtual machine的区别是什么,docker的优势是什么,docker为什么会流行。
  3. 什么是虚拟化。
  4. 什么是kubernetes。
  5. 什么是PaaS,了解PaaS的实际应用,如云端服务器Heroku,google app engine, cloudfoundry等等。
  6. 了解go语言的历史背景及特点,go语言适用于哪些生产背景。

简单来说,docker是一种容器,这种容器包含了许多镜像,镜像类似于java的类,可以实例化为container,container包含了一个程序运行的代码,以及所有相关的配置文件和命令,它最根本的目的和作用就是让开发人员专注于开发程序的核心功能,不必浪费时间在环境配置,库、包的安装调用等等一系列的初始化步骤。由于包含了这些初始化的代码,程序可以运行在任何的操作系统内核,无论在什么样操作系统,这些程序都拥有统一的环境和初始化配置。这样大大节约了时间和人员精力等成本。这也是docker出现的最主要原因,它使开发人员通过docker registry可以在任意一台机器上运行相应的程序而不需要预下载、设置一些参数或环境变量。

docker和virtual machine最大的区别在于虚拟化的对象不同,docker虚拟化的是操作系统,而virtual machine虚拟化的是硬件,vm通过虚拟化硬件与机器原有的操作系统相隔离,拥有并独占硬件资源的一部分,属于比较高等级的分离,而docker只是为相应的程序提供一个container,来使其运行在原有的操作系统之上而无需设置参数和环境变量,程序共享操作系统上的资源。

虚拟化通常指的是服务器虚拟化,主要应用就是虚拟机。通常来说一台服务器往往只有一个操作系统作为硬件的控制系统,硬件和操作系统互相交互,操作系统和应用、软件交互。服务器虚拟化的本质就是在原来的硬件和操作系统层中间插入一个hypervisor层,使得硬件与hypervisor交互,hypervisor与操作系统交互,这么一来hypervisor就成了服务器硬件的控制系统,原来的操作系统在hypervisor看来只不过是类似于文件的东西,那么hypervisor同时运行多个文件(操作系统)也就不成问题了,从而实现多个操作系统并存,提升了硬件的利用率,节省了大量成本。

kubernetes(k8s)是一种协调各个计算机包括虚拟机协同工作的集群,集群中包含了两种节点,一种是master节点,一般一个集群只有一个master节点,负责协调其余所有的工作节点,包括通信,监督,管理和修复等等,其余的所有节点都是为了运行docker container,一般kubernetes是和docker协同工作的,容器和容器云,这种容器云可以用来管理 部署各个容器中的app

云计算主要分为三种形式IaaS, PaaS, SaaS,分别是基础设施即服务,平台即服务,软件即服务,云计算主要分为三层,基础设施,平台,软件,这三种形式的主要区别就是提供的层级不一样,软件运行在平台上,平台运行在基础设施上,那最底层的IaaS就需要开发人员自己构建平台并编写应用,因为IaaS只提供了基础设施,硬件资源。那么最顶层的SaaS其实我们每天都在接触,比如微信聊天,我们就是直接使用了云服务提供给我们的app而已,客户要做的只是获得这个app并使用它。

6.10号

学习Golang

6.11号

go语言中的slice切片是个比较特殊的类型, 它包含三个属性,一个指向数组的指针,一个是slice的长度,还有一个是slice的容量,长度不可能大于容量,它表示slice中指向目标数组指针当前位置到数组末尾的元素个数。

slice的初始化方式和其他变量差别不大,需要注意的是它有几个特别的地方,一个是在用var初始化时使用的变量类型是[]T,括号内没有数字,否则就是初始化一个指定长度的数组。其次是当使用make初始化slice时,make()函数接收三个变量,第一个是切片类型,第二个是切片长度,第三个是切片容量,可以省略第三个参数, 此时切片容量和切片长度相同。

在我的理解看来,go和c语言有些相似的地方,可能是它的开发者们中的一位就是B语言(C语言前身)的创造者与开发者吧。但是go又在语法上十分的灵活,轻便,简易。同时它也解决了面向对象的开发必备需求。隐式包含和接口,大小写定义,实现了对象继承 和 公私有变量,其中的细节和设计精妙之处还有很多,希望我在不断学习的过程中可以逐渐熟悉并掌握。

6.12号-6.13号

实现一个go语言的简单爬虫程序并通过travis与github、dockerhub持续集成部署。

你可能感兴趣的:(实习)