Краткое введение в etcd

etcd лого

Такое чувство, будто в последние месяцы я черезчур уж сильно сосредоточился на дебаггинге и .NET Core, и как-то подзабил на топик, ради которого весь этот блог и затевался — DevOps и распределённые приложения. Ошибку осознал, и сегодня мы посмотрим на что-нибудь более релевантное. Например, etcd.

Во время моего романа с распределёнными приложениями etcd всегда был где-то неподалёку. То он был альтернативой Consul, когда я разбирался с сервис-дискавери и управлением конфигурациями. То etcd всплыл как основное хранилище настроек кластера в Kubernetes. В общем, он везде. Так что я думаю, стоит разобраться, на что же это за зверь такой.

Читать далее Краткое введение в etcd

Гриппозное безумие и бесплатная канадская стрижка

Лысая голова

При всей злополучности моей поездки в Беларусь, в последнюю ночь перед возвращением в Канаду я смотрел в потолок и думал: вот если бы завтра Батька отменил Канаду (каким-нибудь указом номер восемь, он может), я бы совсем не растерялся. Нашёл бы себе работу в Минске, купил бы и поставил на учёт машину (ещё помню как), настроил быт. В общем, влился бы назад в размеренную белорусскую жизнь и не споткнулся бы. Как будто бы и не было Канады. И это дико странно, потому что, хотя я и скучаю по Беларуси, назад — не то, чтобы сильно стремлюсь. А тут два с половиной года Канады как будто бы начисто вытерло из памяти. Может, зайду назад в суверенную Канадию, и отпустит? Читать далее Гриппозное безумие и бесплатная канадская стрижка

Вскрываем дамп NodeJS процесса с llnode

Научиться дебаггить дампы .net core процессов на Linux при помощи lldb и SOS плагина оказалось очень приятным опытом. Всё-таки «дамп процесса» звучит как нечто крайне низкоуровневое, а тут можно и на управляемые потоки посмотреть, и в памяти покопаться. В общем, приятное колдунство. И между прочим, lldb плагины были не только для .NET. Я видел ещё и для Python, и для Java.  Интересно, а есть ли что-нибудь похожее для NodeJS и JavaScript? Хе,

Of Course!

То есть «конечно», по-буржуйски. Есть плагин под названием llnode, который как раз с NodeJS и работает. Сегодня я не буду копать в нём слишком уж глубоко, всё-таки со скриптом в последнее время практически не работаю. Но посмотреть, как это вообще делается, интересно. Так что приступим. Читать далее Вскрываем дамп NodeJS процесса с llnode

Парад граблей и европейская Беларусь

Грабли

Либо кто-то проклял мои отпуска, либо я разучился ими пользоваться. Если в прошлую поездку в Нью-Йорк мы совершили стратегическую ошибку, вселившись вчетвером в одну комнату на полторы недели у друзей, то в этот раз мы… вселились вчетвером в одну комнату у тёщи на две недели в Минске. Если в середине прошлой поездки заболела жена, уменьшив количество вылазок на капиталистическую природу, то в середине этой слёг с гриппом я, и отменил почти всё. Вот теперь сижу и думаю, если ли здесь какая-нибудь закономерность, или это просто кажется. Читать далее Парад граблей и европейская Беларусь

Тайна «Debug adapter process has terminated unexpectedly»

vs code

Любопытная история приключилась со мной намедни. Моя основная C# IDE на никсовых системах — Visual Studio Code — внезапно приказала долго жить. Не целиком, а самая полезная её часть — дебаггер. Стоило мне поставить брейкпоинт где-нибудь в коде и запустить проект, как редактор останавливал праздник интеллекта с ошибкой «Debug adapter process has terminated unexpectedly»:

Debug adapter process has terminated unexpectedly

A вот раньше всё работало просто прекрасно. Так как незадолго до проблемы я устанавливал на Убунту сразу несколько новых связанных с дебаггингом утилит (lldbperf и lttng), то естественно подумал, что проблема пришла от них. Но ни их удаление, ни переустановка VS Code целиком не изменили ровным счётом ничего.

В довесок к этому единственная внятная альтернатива VS Code для работы с C# на Linux — JetBrains Rider — тоже косячит. Какие-то проекты она может запустить и дебаггить, какие-то — нет. Те, что мне нужны, например, она даже запустить не может. В общем, не оставалось ничего другого кроме как начать разбираться, кто убил VS Code. Читать далее Тайна «Debug adapter process has terminated unexpectedly»

Один дома и свидетельство на возвращение в Беларусь

Один дома

А мы едем в Беларусь! Вот прямо сейчас — опубликую пост, и буду вызывать такси. Это уже вторая поездка на Родину после переезда в Канаду в 2015-м, и, хотя она точно так же странно переживается внутри как и первая, есть несколько новых интересных моментов. Один с кодовым названием «канадец», а второй — «один дома». Начну, пожалуй, с него и издалека. Читать далее Один дома и свидетельство на возвращение в Беларусь

Отправляем .NET Core метрики в Graphite через StatsD

.NET Core StatsD

Уже прошло больше года с тех пор, как я подключил кусок JavaScript к collectd плагину и начал собирать данные мониторинга с нашей CI, чтобы потом хранить их в Graphite. И знаете что? Оно до сих пор работает. Даже JavaScript’овая часть. Но настали времена, когда мне нужно будет собирать метрики с .NET Core сервисов, и, чувствую, связкой JavaScript + collectd я уже не отделаюсь.

По идее, проблем быть не должно. В Graphite ведь можно отправлять данные хоть по TCP в виде текста, так что сервисы вполне могут заняться этим самостоятельно. Но можно сделать даже ещё проще. Читать далее Отправляем .NET Core метрики в Graphite через StatsD

Вторая мышиная война

Научный подход

Они вернулись. Как только снаружи стало холодать, с диких канадских лугов в дом потянулись мыши. Не знаю, как они пробираются внутрь, но если в прошлом году я словил три штуки и мышиный вопрос был полностью закрыт, то в этом на моём счету уже 8 мышиных душ, и это явно ещё не конец. Читать далее Вторая мышиная война

Тестирование серверов и контейнеров с goss

тестирование серверовНедавно почитывал последний выпуск Technology Radar и нашёл вот какую интересную штуку в разделе новых техник программирования: «разработка контейнеров по TDD». Мдя. Ментально я пока ещё не могу провести соединительную линию между Докером и TDD, но инструменты, которые там упомянуты, оказались достаточно интересными.

Первый — serverspec. С его помощью можно прогонять локальные и удалённые сервера-контейнеры по набору BDD-подобных юнит-тестов. Тулза выглядит вполне зрелой и продуманной, поддерживает не только Linux, и всё было бы хорошо, если бы один огромный косяк (возможно, только для меня): serverspec написан на Ruby, и значит, что он абсолютно не совместим со стеком, в котором я обычно работаю.

Вторая тулза — goss — оставляет впечатление небольшого швейцарского ножика. Вроде и то немного умеет, и это. Обычно я к таким инструментам отношусь настороженно, но… goss какой-то странно прикольный, так что на него хочется посмотреть поближе. Читать далее Тестирование серверов и контейнеров с goss

Про канадские пенсии

Канадские пенсии

Среди обилия плюшек, которыми нас подкармливают на конторе, с начала этого года появилась ещё одна: на каждый доллар, положенный в мою пенсионную копилку, контора доложит ещё один от себя. До определённого предела, конечно, но и предел такой вполне ничего.

Так делают не только наши. Хватает и американских, и местных канадских контор, в которых подпитка пролетарского пенсионного фонда — один из основных бенефитов. Единственное, что меня смущает, так это то, что я вообще не представляю, как работают пенсии и старость в Канаде. Нужно ли откладывать на неё? Хватает ли пенсии на жизнь, или стоит заранее озаботиться огородиком у хайвея? И вообще, в 34 уже стоит задумываться об этом, или можно отложить до полтинника?

Знающие люди говорят, что озаботиться стоит, и чем раньше, тем выгоднее, поэтому я на всякий случай полез в гугл. А заодно посмотрел, как вообще отстоят с этим дела в Беларуси. Вдруг зря уезжал. Читать далее Про канадские пенсии