思考:用什么搭建企业网站合适呢?
近年来,云计算技术发展迅猛,小陈也紧跟前沿技术,学了一些阿里云云计算有关的基础知识,用过几种常见的云产品。小陈明白,选择什么方式来搭建企业网站,对于后续网站的开发和管理都有较大影响,于是小陈去找同部门的技术导师大刘请教。
小陈:师傅,我想用云服务器来搭建公司网站,合适吗?
大刘:可以,但是在云服务器上搭建应用,要走一个复杂的流程。先安装操作系统,再安装中间件,最后安装应用,其中每个步骤都要修改配置,最后才能把应用跑起来。不同人、不同时间搭建出来的结果都可能不同,这就导致,测试好的应用,发布到生产环境后,仍可能问题频发。相同应用、在不同运行环境中执行结果不同,这就是可移植性问题。在云服务器上搭建应用,往往会遇到类似的困扰。
小陈:可移植性问题,要是不解决,影响很大吧?
大刘:当然。可移植性问题,要么不出问题,要出问题就小不了。一旦出现,小则引起应用更新失败,拉低工作效率;大则造成生产事故,严重影响业务。
小陈:这么严重啊。那有什么其他技术,可解决可移植性问题呢?
大刘:有的,容器。它就是为了解决此类问题而诞生的,你了解过吗?
小陈:容器听说过,但了解不多,我先研究一下,再来请教。谢谢师傅!
大刘:没事,随时交流。我建议在学习容器之前可以先回顾一下服务器虚拟化的知识,可以更好的理解容器技术的来龙去脉。
在大刘的建议下,小陈开始先回顾了虚拟化技术的要点。
虚拟化技术是什么
早期,人们直接在物理计算机上跑应用。由于一台计算机上只能运行一个应用,一旦应用不运行,计算机资源就会闲置下来。
随着业务需求越来越多,为了提高计算机资源的利用效率,人们于是采用一种技术,将计算机的计算、网络、存储等资源抽象出来,分割或组合成一组或多组可利用的虚拟资源,给不同用户来运行应用。这个技术就是虚拟化。
虚拟化技术架构示意图
有了虚拟化技术,人们就可以在一台计算机上跑多个应用了,多个应用可以做到相互不干扰,申请计算资源、部署应用也变的更加高效。
然而随着应用越来越多、越来越复杂,开发者发现虚拟化技术也会遇到一些棘手的问题,比如:开发人员和运维人员的环境往往很难保持一致,即使已经运行在虚拟机当中的应用,面临不同环境间迁移时,依然耗费时间长、效率低下、生产问题频发。
容器为什么会产生
在这样的背景下,开发者开始探索可否把应用和运行环境整体打成一个标准化的包,无论在什么环境下都用这个包,一打开就能运行应用。如果开发、测试、运维等不同技术团队都使用相同的、完整的、带应用与运行环境的标准包,就可以规避环境差异,使应用开发与协同更高效。这个标准化打包的思想就是我们说的容器技术的核心思想。
练习实验:通过ACR快速部署网站应用
https://developer.aliyun.com/adc/scenario/exp/79f68855f1194655bb08e125b59ec104?