понедельник, 5 декабря 2016 г.

Полезные Golang-библиотечки от Uber

        Сегодня осмотрел github аккаунт Uber и нашел просто кучу полезного софта написанного на Golang и для Golang. В общем похоже в Uber прям Golang-бум случился. Кроме https://github.com/uber/go-torch про который я уже они написали:

  • https://github.com/uber/ringpop-go -  фреймворк для fault-tolerant statefull приложений. Если ты не  state-less то твоя жизнь автоматически становится намного сложнее и тебе так или иначе придется решать все те проблемы которые решены в этом фреймворке.
  • https://github.com/uber/tchannel-go  - реализация их внутреннего протокола для взаимодействия между компонентами системы
  • https://github.com/uber/terraform - форк terraform.  Плюс систем типа Ansible/Puppet в том что полно модулей написано под практически весь наиболее распространенный софт. Но в больших компаниях большая часть софта - самописная,  поэтому это преимущество сходит на нет. Гораздо важнее становится - что именно из себя представляет та или иная система управления конфигурацией.
  • https://github.com/uber/jaeger -   распределенная система для трэйсинга приложений. Они еще не до конца выложили ее в opensource, но начало уже положено.
  • https://github.com/uber-go/atomic - библиотека atomic типов с синхронизацией
  • https://github.com/uber-go/fx - Uber фреймворк для микросервисов
  • https://github.com/uber-go/ratelimit - библиотека для реализации ограничений по количеству запросов  
  • github.com/uber-go/sally не самая полезная вещь, но в хозяйстве пригодится
  • https://github.com/thriftrw/thriftrw-go Thrift encoding library for Golang
  • https://github.com/yarpc/yarpc-go - еще один RPC фреймворк
  • https://github.com/uber-go/zap - библиотека для логгирования