微服务下: Serverless实践
背景随着微服务的兴起,我们强调业务(服务)进程的隔离性,且为了保证服务的高可用和高性能,避免单点事故,我们常常都会通过冗余的方式,会启多个进程来提供相同的服务。那么在基础设施层面来说,我们通常有以下几种方式:
传统的方式,一台物理机上面部署多个应用进程。
点评:自建基础设施,前期投入大, 需要维护的东西很多,一般借助虚拟化技术,比如vSphere, vCloud等技术来实现计算资源的分配管理;一般由专门的团队负责,不提供自助服务,资源的申请流程很长。
云时代,比如亚马逊提供的IAAS服务,已经把服务器抽象成了一种可灵活使用的资源,屏蔽了基础设施层的管理(计算,存储,网络),AWS的成功, 引导开发者将应用转移到云上, 解决了硬件管理的问题,而软件配置和管理相关的问题利用自动化配置工具Ansible、Chef等解决;一般会将一个服务部署到一个EC2实例上面。
点评:通过EC2做到了业务进程的隔离,屏蔽了业务进程之间的相互影响
容器时代,Docker把服务器抽象成了镜像,保证一个包含环境和部署软件的镜像在任何地方运行都能保证行为一致。Platform As A Service平
...