PREFACE前言Computation may someday be organized as a public utility.John McCarthy(美国计算机科学家和认知科学家,1971年图灵奖获得者)让计算以公共资源的形式更加便捷地服务于这个世界这一想法早在20世纪60年代就已出现。几十年过去,云计算概念的提出将愿望化作现实。毫无疑问,云计算是进入20世纪以来最重要的信息技术变革之一。虽然云不是某种特定的算法,也不是某个安装在电脑中的软件,更不是一个新兴的硬件设备,但它却成为当今信息社会的重要基础设施。无论是政府、企业、高校,还是其他团体或个人,都日益依赖云计算带来的便捷。尽管云计算已飞速发展多年,但目前市面上关于云计算的教材却屈指可数,将云计算的基本理论与产业实践结合的教材更是凤毛麟角。为此,上海交通大学计算机科学与工程学院申报了教育部-阿里云产学合作协同育人项目,在该项目的支持下进行云计算课程的建设,并基于课程编写了本书。本书是校企联合建设课程并编写教材的有益尝试。在内容上,本书全面系统地介绍了云计算的相关概念、方法、技术与现状,充分融入产业界的先进理念,结合产业一线实践,既反映了编者在云计算和互联网规模系统设计领域的主要教学和科研成果,也展现了阿里云公司有关专家和工程师多年的技术积淀和开发经验。本书有两个突出的特点。首先,全书跨越云的各个层次,内容全面而新颖。虽然以云计算为核心,但同样重视云存储;虽然主要着眼于云的系统平台和软件环境,但对同样关键的硬件基础设施(即数据中心)也做了较为详尽的介绍。其次,本书是一部理论和实践相结合的教材,论述深入浅出、易于理解。书中不仅介绍了经典的虚拟化理论、网络理论等,还以阿里云的真实系统为例,阐述了云计算实践过程中的工程和技术问题。本书面向计算机、电子工程等相关专业的学生,以及对云计算技术感兴趣的技术人员和研究人员。第1章对云计算的基础概念进行了阐述,使读者初步了解云计算的诞生和发展,为后续的学习奠定基础。第2章介绍数据中心及架构,读者从中可以理解云计算这一无形服务的硬件根基和运行环境。第3章重点介绍云计算中的网络技术,由于云数据中心的访问量大,因此对网络有很高的要求。第4章重点介绍云计算的重要系统支撑虚拟化技术,本章对于理解云计算环境中的资源管理具有重要参考价值。第5章介绍分布式存储技术,在云环境下,数据存储是核心问题之一,该章将应用大量的案例来进行说明。第6章在云存储基础上介绍云数据库的知识,建议想了解云计算对大数据的支持的读者深入学习这一章。第7章和第8章分别对中间件和分布式部署进行介绍,其中包含丰富的实际产品细节,建议学有余力的学生在此基础上增加实践操作。第9章从产业角度给出了对云计算的理解和思考,以及云上架构设计的常用方法和最佳实践,并对云计算的未来进行了展望。本质上,云计算不是一门独立的技术领域,而是构筑在多门已经成熟的计算机技术领域之上的一个综合体系。因此,本书可以看作是云计算相关技术体系的总览,并以本书内容为主线延伸到其他专业课程的学习中。在上海交通大学计算机科学与工程系的教学实践中,学生通过这门课收获最多的是关乎原理的为何(比如为何选择虚拟化,为何不选择传统架构等),然后是关乎技术的如何(比如如何实现高可靠性,如何分布式部署等),最后是关乎云计算实践的应用技巧和方法等。全书各章最后均附相关的习题,供读者思考和练习。此外,每章之后还附有参考文献,除相关书籍和论文外,我们还提供了主要技术开发者社区的博客和文章链接。考虑到云计算是一个技术快速更新的领域,读者可以通过互联网了解技术的最新动态和进展。本书的成稿得益于很多人的付出和努力。感谢教育部高等学校计算机类专业教学指导委员会系统能力培养研究项目专家组的指导,感谢上海交通大学计算机科学与工程系相关老师的付出,感谢阿里云公司唐洪、李妹芳、刘澍泉、任华华、文荣、姚伟斌、易立、汤志敏、曹锋、林晓斌、钟华、赵杰辉、李毅、王宇德、张良模、王晓斐等专家对本书技术内容的指导和建议,感谢阿里云公司章文嵩、吴结生、卢毅军、曲海峰、祝顺民、朱照远、张献涛、董元元、徐立、李文兆、陈舟锋、周琦、仇应俊、占超群、李妹芳等专家在授课过程中为本书提供了素材,特别感谢阿里云公司李妹芳以及机械工业出版社华章公司各位编辑的辛苦工作和大力支持。云计算是一个充满生机和活力的领域,限于作者的学识及视野,本书难免存在疏漏和理解不到位之处,欢迎各位同行和读者批评指正。我们将不胜感激!作 者2017年7月