云服务环境与Docker部署工具
完成微服务的开发之后,必须为其提供-一个合 适的分布式环境进行最终的部署和发布,才能充分发挥微服务架构的优势。这个环境首先应该是安全可靠的,并且是可以进行任意扩展的分布式环境。其次,它的基础设施应该是配备齐全的,并且稳定可靠、可扩展。这些基础设施包括数据库管理系统、文件管理系统、消息服务系统等服务,以及自动化测试和持续交付等工具。
我们开发的每-一个微服务都可以进行任意多副本的发布,能够持续保持高性能的服务状态,所以微服务应用的基础服务设施和构建环境也必须具有可持续扩展的特性。
为了给微服务提供一个可伸缩的环境,我们必须组建或租用云服务。既可以组建私有云,也可以租用公有云,或者两者兼而有之。
虚拟机与基于Docker创建的容器
在Docker出现之前,为了充分利用服务器资源,我们使用VMware等技术来构建虚拟机。
那么,虚拟机与容器之间有什么不一样呢?有人对服务器、虚拟机和Docker这三者做了-一个很形象的比喻,可以用来说明它们的区别:
◎服务器好比运输码头: 拥有场地和各种设备(服务器硬件资源)。
◎虚拟机好比码头 上的仓库:拥有独立的空间堆放各种货物或集装箱。
◎Docker 好比集装箱:是各种货物的打包。
所以,使用Docker工具创建的容器可以存在于任何服务器或虚拟机中,它比虚拟机更加灵活、小巧,在处理一个服务的启动、关闭和更新等操作时更快、更便捷。
安全可靠的云服务环境
如图12-1所示是一个基于阿里云设计的安全云服务架构的网络拓扑图。从这个图中可以看出,任何外部对服务器的访问,包括运维管理人员的访问,都必须经过阿里云云盾和防火墙。
在此基础上,我们可以构建各种集群体系,包括微服务、网关、注册中心、Nginx. 各种基础资源和各种基础设施等。
当然,我们也可以自己组建服务器,建立私有云,来搭建这些环境和基础设施。但是,从成本和便利性等综合条件考虑,建议还是选择云服务供应商提供的服务。
Docker 和docker-compose的下载与配置
Docker是一个优秀的容器引擎,通过它可以为应用系统创建一一个可移植的容器。 容器运行于宿主系统上,其功能相当于一个虚拟主机。但是与虚拟主机相比,Docker 的性能更好。Docker占用资源少,构建非常灵活、方便,且可以非常快速地启动和关闭。
正因为如此,对于整个电商平台的微服务应用来说,我们都将使用Docker进行部署和发布。
在我们开发的微服务中,已经自包含了Tomcat中间件和打包后的Jar文件,可以使用如下所示的Java命令直接运行:
Java -jar *.jar
由此可见,使用Docker部署微服务是非常简便的,只需使用类似于上面所示的命令就可以在Docker中运行Jar包。
另外,使用Docker部署微服务还可以利用更多的服务器资源,设置简单、操作方便。而服务的更新和运行,将更加快速和高效。
下面介绍Docker及其工具的安装,以及Docker的使用方法,以帮助读者加深对Docker 的认识和理解。
Docker 引擎的安装及使用
在Linux环境中安装Docker,可以按以下步骤进行。需要注意的是,Docker需要在Linux7.0或以上的版本中才能运行。下面的安装配置以CentOS 7.0为例。
首先,使用下列命令更新安装环境:
# yum update
然后,编辑下列命令,配置Docker的安装源:
# tee /etc/yum. repos .d/docker.repo <<-' EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum . dockerproject .org/ repo/main/centos/7/
gpgcheck=1
gpgkey=https://yum. dockerproject.org/gpg
EOF
最后,使用下列命令开始安装:
#yum install docker-engine
安装需要一定的时间, 并且会通过网络下载一些安装文件。
安装完成后可以使用下列命令启动Docker:
service docker start
使用下列命令检查版本:
# docker --version
使用下列命令查看详细的版本信息:
# docker version
使用”下列命令可以将Docker设置为开机启动:
# systemctl enable docker
更多有关Docker的信息,读者可以到其官方网站查看。
docker-compose 的下载及配置
docker-compose是一个通 过编排脚本来使用Docker引擎的工具组件,这一工具组件使得我们不必记住那么多的命令和配置参数,即可更加方便和快速地进行应用的部署和更新。
使用下列命令可以将已经编译的docker- compose下载到本地系统中:
curl -L https://github.com/ docker/compose/ releases/download/1.16.0-rc2/
docker-compose- u