分布式系统实践
1. 剖析Elasticsearch集群:分布式的三个C、translog和Lucene段
https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653160175&idx=1&sn=3f982b5a2102f5966b512d2ad9e8e6db&scene=0&key=77421cf58af4a6534e55141c3bdbf944a4769a7471beab65d6fd0da55e6963975707198b8befe20cfe83e51de5ca3538&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=ncWL5oXEcxj2Ie60h4gWrAHAn2mJ4qbevBAM26rNsl5JTk1yuwpHqAhZI3ksyd1t
要点: 剖析Elasticsearch集群系列涵盖了当今最流行的分布式搜索引擎Elasticsearch的底层架构和原型实例。本文是这个系列的第二篇,我们将讨论Elasticsearch如何处理分布式的三个C((共识(consensus)、并发(concurrency)和一致(consistency))的问题、Elasticsearch分片的内部概念,比如translog(预写日志,WAL(Write Ahead Log)),以及Lucene中的段。
2. 近千节点的Redis Cluster高可用集群案例
https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547585&idx=1&sn=9a664b16f656f757632cd4eb29f9a5dc&scene=0&key=8dcebf9e179c9f3adc43167de5469ee441c07c6fa549314bb4ac11c9a7709ff48602d9fdde549a7ab3494ba18355e193&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=rGGvDHhtyIxx2XFl%2Bhx0nHdwK8T%2FqyfVsvkUvGC5IOLJt5o%2BksDN%2Fsm772KdJNDJ
要点: 可能只有优酷在线上使用了redis cluster的方案了. 这篇文章总结了优酷700个节点的redis cluster集群使用过程中踩过的坑和调优的方法, 是非常稀缺的redis cluster的使用案例, 值得学习.
服务化和资源管理技术
1. Docker的步伐:DevOps与OS化
https://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4MA==&mid=2650686916&idx=2&sn=986409faad9b8cf471de9e52a376fe97&scene=1&srcid=0729zBtu0d24L4HedFirmvHB&key=8dcebf9e179c9f3a9df68e5e9c75bda771933148607f187ddf4356bbf5fddb7c501b5d86d3820c8a9c3bb69322a0d6da&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=0VtviUbn9xzfjjnRVb2BM8Um%2BpuF%2Bv5%2BEBUvJzxEjlkEqyt%2B%2BMcLUBmrOaI%2Bq0KP
要点: Docker 、微服务、 DevOps 以及精益研发等新词汇,在较短的时间内,即充斥着整个 IT 行业. 这篇文章总结了docker的发展过程中不同阶段的侧重点, 以及docker新版本的重点改进.
2. 爱奇艺基于 Docker 的 App Engine 实践
https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=2649690916&idx=1&sn=bd2bd3ebc6205505c52e5bd0cc2eb970&scene=0&key=77421cf58af4a653ae297c870f0c43e9da2147417ed106e2a17abe4982c2dca05c54e688a7d7ef385b6c8886d23dd08c&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=ncWL5oXEcxj2Ie60h4gWrAHAn2mJ4qbevBAM26rNsl5JTk1yuwpHqAhZI3ksyd1t
要点: 这篇文章介绍了爱奇艺的QAE平台的技术栈以及技术选型的考虑, 读过文章之后我认为, QAE的技术选型是比较合适的, 底层基于mesos和marathon做IaaS, 日志收集参考了cAdvisor, 不过服务发现和日志分析的选型我觉得可以有更好的选择, 这里主要是为了切合原有系统了.
服务高可用技术
1. 美团外卖系统架构演进与稳定性的探索
https://mp.weixin.qq.com/s?__biz=MzI4NzE1NTYyMg==&mid=2651101480&idx=1&sn=dca99936779611b04bf2136616539625&scene=1&srcid=0728oxh7tOXISeIzUt7QxxYM&key=8dcebf9e179c9f3a2e22e5804a261f03a85eec4c09d54d88e6cc270b50828dafcf9889dfd00ba389ba5d0e3074e664fa&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=0VtviUbn9xzfjjnRVb2BM8Um%2BpuF%2Bv5%2BEBUvJzxEjlkEqyt%2B%2BMcLUBmrOaI%2Bq0KP
要点: 曹振团是我这次去深圳认识的朋友之一, 6月份在北京的讲师见面会上就聊了半天, 看上去朴实平和, 他的分享里非常详细的介绍了美团在稳定性方面做的工作, 包括定期巡检, 眼测, 日志收集和分析, 限流, 预案, 灰度发布等, 大家可以观看视频.
2. 缓存更新的套路
http://coolshell.cn/articles/17416.html
要点: Cache可以说是我们非常熟悉的东西了, 不过缓存更新的design patten可能有些同学还比较模糊, 本文对cache更新的design pattern做了详细的总结.
DevOps 技术
1. 阿里技术专家:持续交付与微服务背后的实践逻辑
https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650756192&idx=1&sn=575154e273a909fca90b184ae6ecc017&scene=0&key=77421cf58af4a653563f4ce6c2c1b970039d0af8ed3f90d49e1810155a61edd971f296376b5ac34fc35bff1c5f97e3b8&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=ncWL5oXEcxj2Ie60h4gWrAHAn2mJ4qbevBAM26rNsl5JTk1yuwpHqAhZI3ksyd1t
要点: 本文非常详细的总结了持续交付过程中遇到的问题以及解决方案, 包括怎么做测试, "别人的功能还没做完", 环境管理, 微服务等内容.
2. 漫谈微服务与DevOps:如何在实践中快速落地?
https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650993466&idx=1&sn=dc11f1cc96f712a3feeb43f7c364371d&scene=0&key=8dcebf9e179c9f3aec3a20dc85a64e520ea0ce279bca7062f362e3500f080c7a77c70f88fcf57b89f1070325e17a24e2&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=boPoGz5bieh4ESAD46aBh%2BJ74pTeCaCAcv3OjggB%2BNDx4zmtCrrvPAshTEPQaa%2Fy
要点: 本文围绕作者这些年在OpenStack、Kubernetes、Microservice、DevOps、Cloudfoundry、ELK等云计算相关领域及技术的实践,从微服务和DevOps两方面着手,旨在为两者的落地提供一个快速可行路径。
大杂烩
1. 提高代码可读性的 10 个注释技巧
https://mp.weixin.qq.com/s?__biz=MjM5MzA0OTkwMA==&mid=2651194881&idx=1&sn=4de7f1e2aee4ec0f45b4ace2167fde9b&scene=0&key=77421cf58af4a653df7f37a3714dd39336a58e5872dfa36df85955690fe2d63be258aae7761765813beda5a28be1d398&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=eRG62QbSHJfkRaSf9P2%2FSGqipeXpHjxK32fYjYtlJRJRzt%2BwKbocbqbjlC0mZKXY
要点: 代码是给人读的, 尤其是给后人读的, 如果代码可读性差, 那么以后就没人愿意接手. 注释是代码中很重要的一个环节, 这篇文章介绍了提升代码可读性的注释技巧.
2. 如何正确终止正在运行的子线程
https://mp.weixin.qq.com/s?__biz=MzAxNDI5NzEzNg==&mid=2651156875&idx=1&sn=063ba2d1edda8cd7e5484906718301e0&scene=1&srcid=0724z8nDkeJ7iMr2qgUGtFrt&key=77421cf58af4a6536a00e78d844eb41097b8b7f982a200ce5421651791daada27a3e1e1d4bad2b1db0d448dd6a948376&ascene=0&uin=Mjk1ODMyNTYyMg%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=ncWL5oXEcxj2Ie60h4gWrAHAn2mJ4qbevBAM26rNsl5JTk1yuwpHqAhZI3ksyd1t
要点: 很多服务类的程序都会注册一个信号处理函数, 当需要退出服务的时候, 做清场处理, 比如让所有线程退出. 不过大家想过如何终止一个线程吗? 很多同学可能会说, 直接return不就终止了吗? 这也没错, 但是如何线程正在sleep或者被阻塞了呢? 这篇文章讲解了几种终止线程的方法.