技术栈
我主要是负责开发某个内部的service,提供APIs给上游的、其他内部的services使用,用来读取或是修改我们组下游的数据库里的内容。. 1point 3 acres
.1point3acres
我们组的service的技术栈总结如下:
* 下游services包括:key-value database; 类似Blob storage service; Auth service; Metric service; Log storage service.
* 我们的service框架:亚麻内部service framework; RPC. HTTP (在host上有另外一个程序来decrypt HTTPs to HTTP).. Χ
* Service discovery: (1) DNS, or (2) DNS and a service to return server IPs
* Testing: (1) unit test; (2) integration test; (3) load test; (4) integration test which runs at all times.
* Deployment: 内部CICD的pipeline to deploy to all AWS regions.
* Monitoring: 主要metrics是API latency; availability; Host CPU/Memory/Disk.
* Logging: Service log with information of every API request; Application log for service start/shutdown info, warnings, errors, and stacktrace. ..
工作经历
接下来记录下我这两年都干了啥,每个阶段都学到了些什么。
第一年工作经历
按月来划分:. 1point 3acres
1~5: 开发API和Integration test. 学习了Java, dependency injection, unit test, integration test; 亚麻的Java编译和包管理。读了Effective Java和Head first design,在前辈的code review下,感觉写漂亮代码的能力得到了许多提升!
6~8: F**king new region build, 而且还是部署我们的service第一次到政府的regions。每次出了错,我都看不到error,要和有政府权限的engineer沟通,特别烦。 这段经历中我又进一步学习了pipeline的设置(例如deployment time window; what metric to trigger rollback deployment; other deployment settings). 同时学习了我们的service都需要哪些resources(e.g.部署环境; HTTPs所需要的证书;DNS and Load Balancer等等). 此外,由于政府engineers特别忙、老是不理我,我还得到了一个BQ经历 --- 当对方组不理我时,我可以escalate给我的manager :)
最后,想说下我为啥要跑路了。。。一是对组里的技术熟悉以后,就觉得没意思了;二是太累了,不知道是不是亚麻的原因;三是 写业务逻辑写腻了,做ops做累了,感觉没啥意思。. check 1point3acres for more.
准备去给手机写c++ library了。有点害怕这可能是职业规划上的倒退。不过还是去试试看吧,希望比现在的工作有趣.... 如果各位朋友有啥建议,写谢谢各位了。