前言
随着信息和网络技术的飞速发展,计算模式从最初的把任务交给大型计算机集中计算,逐步发展为更有效率的基于集群的分布式任务处理模式。互联网的发展使得基于互联网的相关服务增加,使用和交付模式也发生了变化,在这样的背景下,云计算依托相关技术从概念逐步变为现实。云计算被看作第三次IT浪潮,是我国政府“互联网+”战略规划的重要组成部分,云计算已经给人们的生活、生产方式和商业模式带来了根本性改变,是近年来全社会关注的热点。
云计算和大数据是两个密切相关的概念,随着大数据时代的来临,云计算作为大数据的处理架构,其重要性日益凸显。目前,我国高校的计算机、软件工程、物联网等专业都开设了云计算技术的相关课程。这些专业的专业基础课程都是以讲述基础的程序开发知识和系统运维技能为主。实际上,如果要开发大型的软件项目,则需要用到分布式数据库、分布式文件系统、分布式计算框架等云计算相关技术,大型软件的运维和部署更是离不开容器编排、虚拟集群管理这些云计算核心技术的支持。因此,云计算技术相关课程既能帮助学生深入理解和融会贯通程序设计、操作系统、计算机网络、数据库等专业基础课的知识,又能很好地培养学生解决复杂工程问题的能力。
根据面向工程教育专业认证的需要,我们认为,云计算技术的课程目标可分为3个层次: 一是了解云计算的产生背景、概念和体系结构,理解云计算的特征和关键技术,了解虚拟化技术、分布式计算和云存储的基本原理和关键技术;二是掌握PaaS的实现(基于Hadoop)、IaaS的实现(基于OpenStack)和容器技术(基于Docker、Kubernetes等)的应用,对云计算的部署和实施有宏观上的了解;三是初步掌握云计算相关项目的开发和运维方法,具备基于云计算应用需求完成设计任务和解决复杂工程问题的能力,能够综合利用开源云计算软件开发和部署云计算平台。
为了达成以上课程目标,本书在编写过程中注重解决以下几个问题。
(1) 由于云计算技术主要应用在大型软件的开发和运维上,对于学生有能力开发的小型项目,云计算技术很难有用武之地,导致学生觉得云计算技术在平时编程开发时用不上,从而丧失对云计算的学习热情。
(2) 云计算系统相对复杂,很多开源的云计算软件内部组件十分丰富,不同组件具有不同的作用且相互之间紧密联系。想要搭建一个云计算平台并不是一件容易的事,如何搭建一个云平台的学习环境并让学生在上面进行操作实践,提升动手能力是本课程的教学难点和重点。
(3) 云计算技术课程内容比较庞杂,且技术更新的速度非常快。云计算技术课程内容可根据云计算的核心技术分为虚拟化技术、云存储和分布式计算三大块,每一块技术的实现都需要大型开源云计算软件的支持。如何根据项目需求选用合适的软件创建一个云计算系统是实现本课程的课程目标的关键。
本书精选云计算技术的主流和核心内容,既不面面俱到,又考虑到初学者的能力,不过于深入,不过分追求知识体系的完备性,以问题导向的叙述方式为主,目标是帮助初学者理解云计算的本质思想和核心技术。云计算技术的知识体系庞杂,更新速度快,本书力求让初学者迅速入门,并对读者深入探究云计算技术起到先导的作用。
本书按照云计算的三大核心技术将内容划分为3部分,即虚拟化技术、云存储技术、分布式计算,每部分内容既有基本理论的讲述,又有实现软件的阐述。
云计算技术课程对实验教学的要求是很高的,本书安排了和云计算软件紧密相关的实验课程。这些实验课程的内容已经过多年教学环节验证,具有复杂程度适中、可操作性好的特点。
本书是微课版,对关键内容和软件操作录制了14个微课视频,能有效帮助学生完成各项实验内容。
本书的教学大概需要48学时,其中实验不少于16学时。
本书为教师提供了教学用多媒体课件、实例源文件和实验大纲,可登录清华大学出版社网站免费下载。
本书由唐四薪、唐琼、郑光勇、唐金娟编著,唐四薪编写了第3~10章的内容,郑光勇、唐琼编写了第1章和第2章的部分内容,唐金娟编写了第2章的部分内容。
限于编者水平和教学经验,书中不妥之处在所难免,欢迎广大读者和同行批评指正。
编者2026年2月
