开启亚马逊网络服务之旅:Node.js 应用的云部署优化
1. 理解云计算
云计算的核心优势在于可扩展性和弹性。在云计算普及之前,当应用需求超出硬件资源时,部署额外服务器成本高昂且耗时费力,许多初创企业和中小企业难以承担。而借助亚马逊网络服务(AWS),可以按需分配资源,快速启动新服务器,确保应用持续在线。
可扩展性意味着能够迅速部署额外资源支持应用。弹性则是指根据应用需求灵活调整资源,在流量高峰时自动部署更多资源,需求恢复正常时自动缩减,实现按需使用和付费,这一理念彻底改变了 Web 应用开发模式,节省了时间、金钱和能源,降低了企业级软件的进入门槛。
使用云计算也要求开发者转变思维,从传统的固定硬件环境开发转变为云计算环境架构设计。开发者不仅要关注应用的编码实践和组织,还要熟悉 AWS 的各种功能,学会设计、配置和维护虚拟托管环境。
2. 本书的学习方法
本书假定读者至少是初级 Node.js 开发者,希望扩展技能,以可扩展性和弹性为目标设计和开发 Node.js 应用。读者应具备 Web 应用开发的基本概念,了解 RESTful Web 服务,熟悉 Git 或 SVN,并拥有代码编辑器。
在开发过程中,需要做出许多主观决策。例如,本书使用 Amazon RDS 托管 MySQL 数据库,但许多 Node.js 开发者可能更喜欢 MongoDB。若要使用 MongoDB 部署应用,需自行重写数据库连接和查询。无论选择哪种数据库,都需要具备相应的基础知识。
为了在应用中获得云计算的优势,将通过两种方式集成 AWS 服务:一是在 AWS 控制台中配置和定制多个服务;二是在应用代码库中使用 AWS S