在选择服务器操作系统时,Windows附带了许多您需要付费的功能。
Linux是开放源代码,可让用户免费使用。
对比
Linux是开源的,因此是免费的。Web主机仅需要支付技术支持即可安装和维护程序(如果需
要)。服务器提供商不需要将额外的成本转嫁给客户。另一方面,对于Windows服务器,公司通常
必须为操作系统和定期使用许可证付费。
Linux服务器及其运行的应用程序通常设计为精益运行,因此通常使用较少的计算机资源。好处是
程序员可以“即时”修改Linux服务器和软件,而无需重新启动,这在Windows环境中是不可能的。
Microsoft
Windows服务器在多数据库任务下趋向于变慢,崩溃的风险更高。
Linux比Windows更安全。尽管没有哪个系统能幸免于黑客和恶意软件的攻击,但是Linux往往是
一个低调的目标。由于Windows运行着世界上大多数软件,因此,黑客们渴望获得低挂的果实
Windows。
虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
微服务的部署策略
部署单体应用意味着运行大型应用的多个相同副本,通常提供若干台(N)服务器(物理机或虚拟
机),在每台服务器上运行若干个(M)应用实例。部署单体应用并不总是简单明了,但还是比部署微
服务应用简单。
微服务应用由几十甚至数百个服务组成。服务用不同的语言和框架写成,每个都是一个小应用,包括特
定的部署、资源、扩展和监控需求,例如,根据服务需求运行若干数量的服务实例。
此外,每个服务实例必须配套提供适当的 CPU、内存 和 I/O 资源。更具挑战性的是,尽管如此复杂,部
署服务还必须快速、可靠和性价比高。
基于主机(物理机或虚机)的多服务实例 “基于主机的多服务实例”模式是最为传统的应用程序部署方法。
在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。
此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程
中运行多个服务实例。
优点: 由于多个服务实例使用的是同一服务器、及其操作系统,因此它们的资源使用效率相对较
高。
不足:
除非每个实例都是一个单独的进程,否则您对服务实例的实际控制权并不大。而且,您无法
限制每个实例能够使用到的资源比例。这将带来主机内存被大量消耗的隐患。
如果多个服务实例在同一进程中运行,它们之间会缺乏隔离关系。这通常会导致在相同进程
中,某个行为异常的服务能够直接影响、甚至中断其他的服务。
由于运营团队需要了解服务的详细信息,因此在部署期间,他们可能发生人为错误的风险较
高。显然,开发和运营团队之间需要通过必要的信息交换,来尽可能地消除复杂性。
Docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。
虚拟机和容器的区别
(虚拟机与容器 的 区别 - 知乎)
yum remove docker \docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
systemctl status docker
开启
systemctl start docker
停止
systemctl stop docker
重启
systemctl restart docker
开机自启
systemctl enable docker
systemctl disable docker
vi /etc/docker/daemon.json { "registry-mirrors":["你的阿里云专属加速器地址"] }
新建文件
touch /etc/docker/daemon.json
docker images
查看image位置
cd /var/lib/docker/containers (/var/lib/docker为docker默认安装目录) && ll
docker rmi centos
docker rmi -f centos:latest
如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。
正确做法:先删除依赖该镜像的所有容器, 再来删除镜像
docker create -it centos:latest
docker create -it --name centos01 centos:latest
centos:latest即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否
存在指定的镜像,
不存在就从公有仓库下载
-it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端
--name:指定生成的容器的名字,允许空,如果不指定会自动生成
指定名字
docker create -it --name cent01 centos
启动、停止、重启容器
docker start 容器ID|name|name:tag
docker stop 容器ID|name|name:tag
docker restart 容器ID|name|name:tag
查看当前的容器
查看运行中的文件
docker ps
查看所有文件
docker ps -a
启动容器
docker start 名字或者ID