17Summer@AWS

暑假在Amazon AWS下的RDS Devinfra Team实习,还算比较轻松,最后也拿到了return offer,很开心也学到了很多东西。

大公司有一套很标准的开发流程:pull packages -> modify codes -> write unit tests -> submit code review -> push commits -> pipeline and deployment。同时也有自己的开发和部署工具,所有人都只需要遵从这套开发流程规范,就可以把更多的注意力能放在功能的开发上了。

我所做的东西比较简单,就是在一个已有的部署服务上增加一个exponential waves deployment的feature,让microservices的部署有更快的速度。由于这是个比较新的项目,代码写的十分优雅,变量和函数名非常的详尽,结构也很清晰,所以packages里基本不太需要注释,因为基本上扫一眼就能知道这段代码的大概功能。整个部署服务都是建立在AWS的各种services上的,其中用的比较多的是DynamoDB和SWF。前者是一个NoSQL Database,用于存储整个部署服务的各种元数据;后者是一个简单的Workflow流程图,根据每个workflow的执行结果来决定接下来俩要执行的workflow。具体的实现细节不便多说,但这种组合方式提供了一个很好的做服务的思路,各部分耦合度低,让整个项目的可扩展性很高。

对于成熟一点的组,每周组里都会有一个SDE on call,来解决处理各种组内的tickets。顺便说一下Amazon有一个Leadership Principles,就像八荣八耻社会主义荣辱观一样,是整个公司的指导思想和行动方针,并且用于评估每个员工的工作表现。刚刚描述的就是Customer Obsession,也是LP中最重要的一条,这也是Amazon以顾客为中心的一个体现。

最后还有暑假的西雅图,让人流连忘返。总之这个暑假是开心充实的,而新学期更是值得期待的。准备学习各种AI课程,并且有幸担任CC课TA。希望能顺利完成所有任务,达到毕业要求提前毕业,踏入职场。


Henry Yang

Learn and Be Curious!