Ghost如何从独立服务器迁移到DigitalOcean的经验
程序员文章站
2024-01-30 16:27:10
...
Ghost是一个博客平台,随着业务发展,遇到了用户快速增长,每月要面对1亿的访问请求,为了应付增长,需要至少2个月的时间来采购服务器和进行配置。独立服务器已经制约了Ghost的进一步发展,这是迁移至云端的的原因。这篇文章翻译自Ghost运维工程师分享的迁移经验。
需求
将近一年多的Ghost专业版的运营,下一个基础设施应该满足以下条件
Ability to scale up server capacity within minutes(快速扩容)
Enough RAM to serve thousands of blogs(足够的内存满足上千个博客)
Offer great customer support(强大的客户支持)
Allow us to migrate our software without a significant refactor(不需要重大的软件架构)
DigitalOcean satisfied all of these requirements.(DigitalOcean满足我们的服务)
迁移大纲
Secure public network(安全公共网络)
Secure private network(安全专用网络)
Replicate databases(复制数据库)
Update DNS (cutover exclusively to destination servers)(更新DNS)
Decommission old environment(淘汰旧环境)```
#完成后的架构
CloudFlare的提供内容分发网络(CDN),域名服务(DNS),缓存和防止恶意请求
核心服务提供用户服务和支付管理
缓存服务器加速用户访问和跳转错误访问
应用服务器主要运行用户博客程序
数据库是基于MySQL的集群,存储数据
Github进行代码管理
Ruxit负责监控
Amazon S3负责加密数据和整体备份
#Step1:创建服务器清单
> 这一步的目的是把当前运行服务器的所有架构和配置整理出来
**为什么?**
规划任何服务的迁移,能够完整再现现有的服务是很重要的,可以确保迁
移顺利进行。需要所有的服务器和软件组件的内容。
Ghost(Pro)成立之初,就创建了快捷方式并且运行很快,我们手工配置服务器,虽然现在运行良好,我们并不是拥有所有的配置细节文档。
**如何做?**
为了整理出来完整的软件包、部署清单等,我们考虑了当前流行的几个配置管理工具,包括Puppet, Chef, Ansible, 和 SaltStack,我们需要一个能够完成工作并且不太复杂的工具,最终我们选择了SaltStack.
选择的原因是
轻小、便于安装和维护
采用master/minon管理架构,由master推送更新道minon,降低了minon向master索取更新可能带来的风险
有一个专门的主服务器,可以防止管理员和开发者从未授权的服务器更新内容
使用ZeroMQ队列服务,相比SSH,更低的功耗,支持加密
SaltStack包含Salt Cloud服务,可以和DigitalOcean的API快速对接,几分钟就可以实现部署管理
**结果**
第一次基础部署花了大概三周时间,第二迭代花了一周,最后部署生产环境,只需要2天时间就可以完成部署。
#资源
[SaltStack使用说明**](https://link.zhihu.com/?target=https%3A//www.digitalocean.com/community/tutorials/an-introduction-to-saltstack-terminology-and-concepts)
[如何安装Puppet**](https://link.zhihu.com/?target=https%3A//www.digitalocean.com/community/tutorials/how-to-install-puppet-to-manage-your-server-infrastructure)
[如何安装配置Ansible**](https://link.zhihu.com/?target=https%3A//www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-an-ubuntu-12-04-vps)
[如何理解Chef安装使用](https://link.zhihu.com/?target=https%3A//www.digitalocean.com/community/tutorials/how-to-understand-the-chef-configuration-environment-on-a-vps)
https://zhilala.com/discussion/969
https://zhilala.com/discussion/970
上一篇: 本地apache设置虚拟域名
下一篇: aix-裸设备文件大小查看