如何使用aws的lambda/DyanamoDB/autoscaling/sns以及shell脚本实现rails的cap发布

    最近移植前人留下来的小项目架构,中途除了有一些服务器名字,vpc网段方面感到奇怪以外,基本也都能顺利的转移到新的vpc里面重新做服务器。

    但是在整发布这块的时候,却发现了一个惊为天人的架构。本来rails发布很简单,用capistrano命令就能简单发布很多服务器。结果我越是深入了解旧服务器的发布,越感到事情不简单。

    当初发布的时候就感觉事情有点蹊跷。每次发布都要删除服务器。当时想,删除服务器,那不服务直接挂了吗?结果最后服务都能正常发布完毕,而且分支还能修改。当时对搞这个架构的人生出一些佩服,又有一些鄙夷。cap发布还能改分支(虽然现在我会了,还能处理的更好),但是你服务器没了(这值得吗?)。

    后来我看他的lambda里面有一个get_repo命名的,里面写了些py代码,其中包含分支的部分写了一些dyanamodb字样的东西。于是我去dynamodb里一看,卧槽,分支存在这里面。

    另外我之前在接手这个项目的时候,被甩了1g文档。当时看了看基本就是0.99g的固体废物。里面有一个什么鬼初始化服务器的shell脚本。我看了下顿时又感觉一阵惊雷,牛逼牛逼!

    这几天服务器基本移植完的时候我还在sns里面还发现了一个名为dyanamodb的主题。不得了不得了。我TM要化身名侦探了。

    再结合自动删除重建服务这个特性,是时候揭晓这一切的谜底了。凶手就是尼玛的lambda/DyanamoDB/autoscaling/sns/shell脚本等5大金刚。

    整个推理过程是这样的,当删除ec2服务器几分钟后,autoscaling发现服务器挂了,于是自动启动ec2并自动启动shell脚本,并联系lambda从dyanamoDB里面读取分支信息,然后在ec2上生成发布代码,最后发布这个分支的代码。这些完成以后再通知sns发消息。整个过程完美无缺。不知道为何有一种有气无力的无力感,又有一种荡气回肠的爽快感。推理完毕一阵鬼畜!!!!

    这个时候我对前人的佩服犹如滔滔江水连绵不绝(此处省略1w字高考满分作文)。只是为了发布代码这一项,架构就整成这么牛逼,是我没有想到的。可能这就是顶级架构师的理解吧。草拟大业!

扫描二维码关注公众号,回复: 10785885 查看本文章

猜你喜欢

转载自www.cnblogs.com/hosinokoe/p/12697520.html