Weekly reading list

Docker收购Infinit PDF

Infinit为容器提供了分布式存储,其特点包括

  • 基于软件:可以部署在任何硬件之上,从遗留设备到消费级实体机、虚拟机,甚至容器。
  • 可编程:开发者可以轻松地完成多个存储基础设施的自动化创建和部署,并且每个都能借助基于策略的能力进行自定义,适配上层应用的需求。
  • 可伸缩:通过依靠一个去中心化的架构(即点对点),Infinit没有使用leader/follower模型,因而不会有瓶颈和单点失效的问题。
  • 自愈合:Infinit的再平衡策略能让系统适应各种故障,包括拜占庭将军问题。
  • 多用途:Infinit平台提供了块、对象和文件存储的接口:NFS、SMB、AWS S3、OpenStack Swift、iSCSI和FUSE等等。

基本原理:

• Federate all nodes in an overlay network for lookup and routing. • Store data as blocks in a distributed hashtable (key-value store) with a per-block consensus. • Use cryptographic access control to dispense from any leader. • Use symmetrical operations to ensure resilience and flexibility.

Infinit以volume的形式挂载到docker容器中:

Docker@Alibaba——超大规模Docker化的实战经验

  • AliDocker,并非阿里云,主要是阿里内部业务在用
  • Swarm改造支持单swarm实例health nodes 2w+
    • 优化连接管理、最小化锁粒度、修改diff算法减少node刷新时的开销、减少连接线程
  • Docker Engine增强
    • 磁盘配额、固定IP、Hooks、解决hyperd重启容器销毁问题等
  • 镜像分发:流式分发、镜像分批预热、P2P等
  • swarm-proxy HA

7

微服务在微信后台的架构实践

  • 多地自治,园区互备:城市间RTT 30ms-400ms,园区间小于2ms
  • RPC:protobuf/libco
  • 调度:Yard,双层调度器(Mesos+Yard)
  • 过载保护:轻重分离、队列式、组合命令式

  • 数据存储:PaxosStore,同步复制、多主多写

Go:微服务架构的基石

  • 负载均衡:seesaw、caddy
  • 服务网关:tyk、fabio、vulcand
  • 进程间通信:RESTful、RPC、自定义
    • REST框架:beego、gin、Iris、micro、go-kit、goa
    • RPC框架:grpc、thrift、hprose
    • 自定义:协议,编解码
  • 服务发现:etcd、consul、serf
  • 调度系统:kubernetes、swarm、mesos
  • 消息队列:NSQ、Nats
  • APM(应用性能监控):appdash、Cloudinsight、opentracing
  • 配置管理:etcd、consul、mgmt
  • 日志分析:Beats、Heka
  • 服务监控:open-falcon、prometheus
  • CI/CD:Drone
  • 熔断器:gateway、Hystrix-go

基于万节点Kubernetes支撑大规模云应用实践

  • 基于OpenStack的IaaS:裁剪KVM镜像、优化启动流程,Openvswitch SDN、Ceph存储
  • 容器与虚拟机共用一套虚拟化网络
  • Ceph存储直接挂载到容器
  • 统一的日志收集、分析、搜索
  • Kubernetes调度器优化:将原来的串行队列改为多个优先级队列
  • etcd集群扩展:将Pod/Node/ReplicationController拆分到不同的etcd集群

20 天持续压测,告诉你云存储性能哪家强 📈

对阿里云和腾讯云两种云存储产品(云盘)的性能和价格对比:

  • 测试方法:SNIA发布的企业级SSD评测规范实现
  • 阿里云 SSD 云盘必须搭配 I/O 优化实例才能给发挥最大性能
  • 腾讯云高效云盘的读写操作可同时达到预期性能峰值(数据块 16KB 以下),而阿里云方面,读写无法同时达到预期性能峰值
  • 腾讯云达到了预期的性能;阿里云部分没有达到, 400GB 容量的时延过高
  • 腾讯云高效云盘的时延在 1ms 以下, IOPS 、吞吐量的优势更加突出
  • 两家高效云盘的 IOPS 表现均比较稳定,几乎呈一条直线,只有阿里云的 400GB 云盘有些略微波动
  • 容量越大,似乎闲置时间对性能恢复的影响越明显;阿里云 400GB 高效云盘的性能波动受闲置时间影响较明显

外卖的背后-饿了么基础架构从0到1的演进

  • 负载均衡
    • 最初:HAProxy部署在客户端本地,不需要考虑HAProxy的高可用;问题是部署规模大,维护客户列表复杂,并且配置不统一
    • 解决:
      • RPC+内置LB SDK,服务自注册/自发现,配置少,部署简单
      • Redis/DB解决方案GoProxy: DAL/Corvus作为服务自注册,GoProxy订阅注册事件并自带服务发现的Haproxy
      • 健康检查:心跳检测,进程在、端口活不代表服务可用
  • 无损升级
    • 最初:发布前通知客户端停止请求,服务端将正在处理的请求处理完毕才能升级
    • 解决:
      • RPC调用:服务发现机制会在注销时通知客户端,直连情况下客户端从可用列表中剔除准备下线的服务
      • 数据库访问,客户端限制连接存活时间,DAL侧重连
  • 基础架构:开放式架构
    • 基于组件,给业务开发团队最大的自由
    • 基于运行时,给业务开发团队最大限度的自由
    • 开放封闭原则:基础框架应该是可以扩展的,但是不可以“选择”的
comments powered by Disqus