пятница, 23 декабря 2016 г.

Вьетнам меняется на глазах

      Я с одной стороны уже давно не живу во Вьетнаме, но с другой стороны довольно часто здесь бываю. И для меня разительны изменения которые происходят в этой стране. Все сказанное ниже в основном про Хошимин(Saigon).  С одной стороны количество высотных зданий в городе увеличивается катастрофически быстро. Еще пару лет назад их было буквально штук 5. Сейчас куда не посмотри - везде высотки. Я не могу назвать их небоскребами, но по 30-40 этажей есть. Количество машин увеличивается просто невероятно быстро.  Видно что люди багатеют, много новых машин премиум класса. Это все хорошо, но с другой стороны неподготовленность транспортной инфраструктуры и наплевательское отношение к правилам дорожного движения приводят город к транспортному коллапсу. Раньше большим достоинством Сайгона было то что ты мог добраться до работы на мопеде за 20 минут. Сейчас это время увеличилось в два раза. Но я думаю и это не предел. Думаю через пару-тройку лет Сайгон окончательно встанет в пробку.

Akamai sucks

     В последнее время мы отгребаем огромное количество проблем с Akamai. Казалось бы - крупнейший CDN провайдер, обслуживает гигантов индустрии. Но по факту оказывается что ребята совершенно не мониторят доступность своих сетей, практически невозможно заставить их исправить косяки на их стороне.  Я не знаю какой сервис они предоставляют в Европе/Америке, но в SEA их сервис просто отстойный. Они легко могут начать отправлять вашу статику из дата-центра в Индонезии до Америки, а потом обратно в Индонезию. Клиенты будут сутками жаловаться что статика грузится по 20 секунд а поддержка Akamai будет делать удивленные лица. Да ?? Правда что-ли ?? Вот так да... мы исправим... И через пару дней они действительно исправят это.  Иногда edge сервера Akamai вообще бывают недоступными из опредеоенных подсетей.  И очень трудно заставить их исправить подобную ситуацию. 
      Строго говоря - если ты положил свой контент в Akamai - совершенно не факт что твои клиенты вообще смогут его скачать. В общем я советую подумать три раза а нужен ли вам такой CDN провайдер. 

понедельник, 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 - библиотека для логгирования 

пятница, 2 декабря 2016 г.

Профайлинг в Golang

       Недавно мне рассказали про https://github.com/uber/go-torch. Оказался мега-полезной штукой.  Позволяет из стандартных Golang профайлингов строить flame graph:

Еще одна приятная новость - профайлинг в Golang 1.7 практически не оказывает влияния на производительность. Я включал его на продакшен серверах среди белого дня - и даже не увидел заметного скачка в потреблении CPU.