Никита Федькин - мысли, заметки, анонсы
2.92K subscribers
155 photos
5 videos
12 files
298 links
Связаться со мной - @nixel2007.
Никита Федькин (ранее Грызлов).

На канале не публикуется платная реклама.
Download Telegram
#анонс

В небольших муках, но таки выпущены релизы BSL Language Server 0.10.0 и плагина для VSCode Language 1C (BSL) 1.17.0.

С первого раза не все пошло гладко, поэтому для них уже выпущены баг-фиксы с единичкой в последнем номере версий :)

https://github.com/1c-syntax/bsl-language-server/releases
https://github.com/1c-syntax/vsc-language-1c-bsl/releases

Новым "вкусным" изменением (помимо новых девяти (!) диагностик) является расчет Когнитивной сложности - метрики, которая показывает, насколько сложным для понимания является тот или иной метод.

В VSC она отображается в виде всплывашки над определением метода (см. приложенный скриншот) и новой диагностики на превышение порогового значения (15) с детальной информацией о местах увеличения счетчика.

Тем, кому новая всплывашка мешает, оставлена возможность ее отключения через конфигурационный файл.

Отдельно обращаю внимание, что теперь по умолчанию диагностики рассчитываются только на открытие и сохранение файла. Для включения расчета "при редактировании" файла так же есть новая настройка в конфигурационном файле.

На очереди релиз sonar-community-bsl, но это уже "завтра".
Опять скрин при редактировании потерялся
Первый взгляд на GitHub Actions (https://github.com/features/actions)

В перерывах между подготовкой своего доклада и раздачей фидбэка на присланные доклады других участников секции "Инструментарий" предстоящей конференции Infostart Event 2019, удалось потыкать такую штуку как GitHub Actions.

Напомню, что это такой встроенный сервер сборок от GitHub/Microsoft, работающий и отображаемый прямо "внутри" сайта GitHub.com в отличии от популярного Travis-ci, располагающегося на отдельном сайте. И являющийся прямым его конкурентом.

За прошедшее время синтаксис пайплайна (или, как он здесь называется, workflow) переехал с малопонятного HCL на более привычный YAML.

Получив наконец инвайт в организацию 1c-syntax и покурив пару мануалов, я решил набросать сборочную линию, аналогичную уже имеющейся в репозитории bsl-language-server.

Работа ещё не завершена, но промежуточный вариант можно оценить в этом пулл-реквесте

Из плюсов, которые я для себя отметил в GitHub Actions:
- ci-сервер внутри GitHub. Отображение данных сборки на вкладке Checks в пулл-реквестах и на общей панели Actions в репозитории - это однозначно удобнее, чем отдельный сайт. Я помню, как я радовался при интеграции GitLab Ci внутрь GitLab (кажется, в 8.0), здесь похожее ощущение.
- в целом понятный синтаксис описания сборочной линии. Писавшим для трависа или гитлаба будет многое знакомо.
- поддержка запуска команд внутри докер образа с человеческим синтаксисом, а не через ворох аргументов для docker run, как это приходится делать на трависе
- три поддерживаемые оси, которые легко кладутся в матричный билд
- триггер не только на коммит или релиз, но и по крону и даже по событию в issue
- запуск служебных сервисов вроде рэдиса или нджинкса двумя строками в конфиге

Ну и самое, наверное, приятное и удивительное - расширяемость.

GitHub Actions даёт понятный и в целом удобный механизм для создания собственных сложных шагов в виде докер-образов или javascript-пакетов.
Сообщество уже разработало довольно много "пользовательских" действий, доступных в маркетплейсе GitHub, где появился соответствующий новый раздел.
И даже собрали awesome-list.

Документация по GitHub Actions доступна по ссылке - https://help.github.com/en/categories/automating-your-workflow-with-github-actions

Если вы хостите свои проекты на GitHub, этот продукт определенно заслуживает внимания.
Начинаю серию коротких постов, посвящённых Infostart Event 2019.

В чатах начинают появляться вопросы вида "а будет ли чатик по секции Инструментарий?"

Чтобы долго не ходить, ловите ссылку @ie2019_tools_section

Обсуждаем доклады, мини-доклады и мастер-классы, готовим вопросы, ~~господи, кого я обманываю~~
Про мою активность на Infostart Event 2019.

Напоминаю, что помимо ведения секции во второй и секцию ответов на вопросы в третий день ИЭ, я выступаю еще с двумя докладами.

Основной доклад будет в Большом зале во второй день - "Атака сервера кнопконажималкой", в 11:20. На нем я расскажу о своем опыте проведения нагрузочного тестирования на связке Тест-Центр + Vanessa Automation.

Однако, хотя в расписании это и не отражено, я участвую в еще одном докладе. В первый день в 10.20 Андрей Овсянкин и я будем читать парный доклад "Планы запросов - это просто!". Да, прям вдвоем на сцене, в режиме диалога. Надеюсь, вам понравится. Волнуюсь больше, чем за свой доклад, если честно :)

Приходите, буду рад всех видеть!
И последний на сегодня пост про Infostart Event 2019.

Расписание второго дня в этом году очень плотное. Много интересных докладов, много отличных докладчиков. Составление расписания было сложной задачей. В некоторых местах я откровенно рискнул, но надеюсь, что это наоборот подстегнет ваш интерес :)

Меж тем все мы помним, чем заканчивается первый день - вечеринкой!

От меня просьба (и совет) - приходите целиком на всю секцию! Открывает день Валерий Максимов, который подготовил в этом году нечто интересное и полезное про CI-CD. За ним доклад Марата Биккина, который расскажет про внедрение практик DevOps в огромных корпорациях, про сложности, которые за этим стоят, и про то, как не только начать, но и успешно внедрить выбранные практики.
И так доклад за докладом, до самого вечера, до бомбического доклада Юры Лазаренко!

Надеюсь на встречу утром! :)

P.S. Еще раз ссылка на чат по секции Инструментарий: @ie2019_tools_section
Про GUI для Docker.

В своей работе я плотно работаю с Docker. Не 1С в докере (хотя стараемся туда запихнуть агентов для CI), а сопутствующие продукты. Кролик, прокси сервера и моки или реальные упакованные сайты, с которыми интегрируюсь. И конечно куча служебной обвязки, от pgAdmin и odminus до каких-нибудь сонаркубов.

Встает вопрос об удобной админке всего этого добра. Хост-машина у меня под Windows, соотвественно использую Docker Desktop для контейнеризации. И родной Kitematic. И страдаю от этого.

Те, кто пробовал работать с Kitematic, думаю, обращали внимание, что он... ну... глючный :) Список контейнеров обновляется непредсказуемо, логи не всегда рендерятся, статусы контейнеров врут.

Конечно, всегда есть docker cli, но я за 3 года использования докера так и не выучил, а как же доопубликовать порт в запущенном контейнере, особенно, когда ты потерял тот скрипт с простыней параметров, которым его запускал.

К сути - месяц назад я набрел на portainer.io. Это докер-контейнер с веб-интефрейсом для управления докер-машинами. Все отошли от IE2019 Inception, да?

Он умеет коннектиться как на localhost, так и на удаленные машины. Работает с docker swarm, дает удобную админку как по запущенным контейнерам, так и по списку образов, сетей, разделов, которые есть у докер-машины. Умеет работать со "стэками" контейнеров, которые получаются после работы docker-compose. Даже есть создание контейнеров/стэков из "шаблонов" приложений с предустановленными базовыми настройками.

Плюс ко всему логи, графики нагрузки на машины и контейнеры, запуск cli (режим exec -it) прям в браузере.

Если вы ищите для себя удобный гуй для докера, попробуйте портейнер.

У него есть демо-версия, которая ресетится каждые 15 минут - http://demo.portainer.io
Логин: admin
Пароль: tryportainer

Но она обычно пустая и без предварительного беглого чтения документации понять там что-либо может быть сложно. Быстрый старт для поднятия локально:
https://portainer.readthedocs.io/en/latest/deployment.html#quick-start
Не знаю, случайность ли это, или специально так вышло, но автоматический стоп-кадр с записи моего доклада на IE2019 максимально точно отвечает на вопрос "а о чем там был доклад?" :)
#МамаЯВТелевизоре

В качестве эксперимента решили мы тут с Андреем @theEvilBeaver Овсянкиным устроить стрим по доработке BSL Language Server. Парный доклад уже был, теперь будет парное программирование на публику.

Постараемся запилить пару полезных фич для BSL LS. Да, прямо код будем писать. Прямо в IntelliJ IDEA, прямо на Джаве.

Когда: завтра, 16.10.2019 19:30. Длительность... Как пойдет :) Но на пару часов нас точно хватит.
Где: YouTube. Ссылка на стрим - https://www.youtube.com/watch?v=2N2QNuTzve8
Зачем: Напилить что-нибудь клевое, показать, что это не страшно и не сложно. Собрать донатики на выпитое пиво и развитие проекта.
#стрим №2. опенсорс-субботник.

Судя по отзывам на стрим по BSL LS, смотревшим в основном понравилось. Мы этой новостью воодушевились и решили продолжать начатое.

В среду 23.10.2019 в 19.30 планируется следующая youtube-трансляция, в которой мы постараемся пробежаться по имеющимся в oscript-library долгам, отревьювить неотревьювленное, выпустить невыпущенное и вообще оценить общее состояние библиотеки :)

Пулл-реквесты, висящие задачки, пинание мэйнтейнеров в прямом эфире - да-да, на мне тоже долгов навалом :)

Ссылка на трансляцию: https://www.youtube.com/watch?v=1BEh_gzc9m0&feature=youtu.be&fbclid=IwAR0TWWApBl1XLSthA7LmrDN0hhDNl4q93dUgVfRYGF1MYDfNsyJ1OUBDsKY

P.S. Praise the OneScript!
Видео со стрима #2

По той же ссылке, что и проходил стрим, теперь доступна видеозапись:
https://www.youtube.com/watch?v=1BEh_gzc9m0

По результатам стрима - выпустили обновление трех пакетов (и на выпуск четвертого дали права), пару раз поломали сайт оскрипта, пару раз починили сайт. Не уверен, что все до конца работает, но дочиним :)

И микрофоны откалибруем, честно-честно!

Спасибо всем присутствовавшим!
#devops-инженер #длиннопост

Долгое вступление. Допустим, у вас есть проблема - вы хотите попасть из точки А в точку Б. Как этого добиться?
Если отбросить идею самовнушения "мне не нужно в точку Б", то решение довольно простое - нужен способ для перемещения. Какой? Мы можем пройтись пешком. Или на машине. Или на самолете. Какой из способов передвижения мы выберем? Зависит, например, от расстояния между А и Б.
В этой простой аналогии прогулка пешком, машина или самолет - это конкретные "продукты". У каждого есть плюсы и минусы. Они требуют обслуживания и навыков использования. Но все эти продукты одного и того же "класса инструментов" - это инструменты передвижения.

Мы много говорим про DevOps. Обсуждаем, имплементируем, распространяем идею и в конце концов полностью теряем изначальный смысл.

"CI - это девопс! Тесты - это девопс! Гит - это девопс!"

Все эти лозунги очень быстро превращаются в:
"Девопс - это гит, тесты и дженкинс!"

Теряется информация о том, что девопс - это культура, идеология, средство. Инструмент, но не в смысле какого-то конкретного продукта, а как способа решения конкретных проблем.
И получается, что человек-который может применять конкретные "продукты" вроде того же Дженкинса, внезапно становится devops-инженером.
- Ну, он же инженер?
- Инженер!
- ДевОпс?
- Ну, дженкинс - это же девопс??? Вот!

А, на минуточку, причем тут принятие неудач как нормальной ситуации? Уменьшение организационных препон? Решения конфликта разработчиков и сопровожденцев?

- Ну, у нас же Дженкинс! 1С в Кубернетесе! У нас нет этих проблем!

Ага, щщщаз...

Как-то получается, что понятие DevOps от идеи и культуры перешло к навыку применения конкретных продуктов. Так было с Аджайлом, так происходит с ДевОпсом, так будет и с любой методологией. Имплементации вытесняют изначальную идею.

К чему я это всё. Google распространяет идею (и название) Site Reliability Engineering. Инженеры обеспечения надежности сайта. Или сервиса. Это свод принципов и конкретных практик, по которым Google "имплементирует" DevOps. В отличие от большинства попыток имплементаций девопса в 1с, Гугл все же уделяет внимание всем семи ключевым аспектам разработки приложений по DevOps. И/или 12 факторам "хорошего приложения" из The twelve-factor App, как вам удобнее.

На мой взгляд, SRE или SRE-инженер, если так угодно, это намного более точное и правильное название для тех, кто называет себя "девопс-инженерами". Естественно если этот девопс-инженер занимается или хотя бы контроллирует все 12 факторов.
Под издательством O'Reilly выпущена книга про SRE, доступная к чтению онлайн - https://landing.google.com/sre/sre-book/toc/index.html

Термин SRE потихоньку начинает появляться на сайтах вроде hh.ru, надеюсь, что он получит широкое распространение взамен косноязычному девопс-инженеру.

В заключение. Пробегитесь по оглавлению книги. Или по статье про девопс хотя бы на вики. Подумайте, действительно ли то, чем вы занимаетесь, имеет хоть какое-то отношение к термину DevOps. Обратите внимание на пункты, которыми на вашем проекте/продукте не занимаются. И особенно на те пункты, которые вызывают у вас удивление. Вспомните, что вы не CI-CD внедряете, а решаете вполне определенную проблему. И можете ли вы честно ее сами себе сформулировать?
#стрим

Завтра в 20:00 06.11.2019 будет очередной стрим.

На этот раз будем ковырять BSL Parser. Расскажем, что это за зверь, как его допиливать, как использовать в BSL LS. Бонусом окунемся в мир профилирования джавы, может быть даже получится что-то пооптимизировать.

В качестве резервных идей есть ещё куча задач в BSL LS :)

Ссылочка на трансляцию: https://youtu.be/bigxcIRmM0I

З.Ы. Анонс припозднился. Но лучше поздно, чем никогда.
З.З.Ы. Вероятно следующий стрим будет про сишарповые кишочки OneScript. Но это не точно (с)
Канал Веселый1с продолжает свое шествие по небольшой 1сной тусовке.

На этот раз @theEvilBeaver записал вводный оффлайн ролик про docker.
Планируется целая серия таких роликов.
Как сказал автор: "в видео есть шероховатости", но раз мы с тормозящим на стримах видео справились, то и эти шероховатости тоже уберутся :)

Ждём ваш фидбэк, лайки, дизлайки не ждём :)

https://youtu.be/aZ9x2Hz7NUY
#стрим

Соскучились по стримам?

Сегодня 20.11.2019 в 20:00 состоится очередное собрание "на поговорить". Поговорим о новостях за прошедшие пару недель, об отладчике оскрипта. Может быть даже сделаем что-нибудь полезное.

Ссылка на будущий стрим:
https://youtu.be/zrsHvP42WXw

Поставь напоминалку, чтобы не пропустить!
#вместострима

Добрался наконец до свежего ролика от @theEvilBeaver на youtube-канале Веселый1С про отладчик OneScript. Кто-то в стиле ЛОРа может заявлять, что "отладчик не нужен", а остальным ссылочка :)

https://www.youtube.com/watch?v=cAeD0D_bSUk

На мой взгляд - просто, доступно и удивительно мало просмотров :)

Что я могу сказать про отладчик? Он работает (уже не первый год) и продолжает улучшаться (что очень радует). А его реализация на базе Debug Adapter Protocol заставляет меня мечтать о его подключении в другие редакторы, например, в ту же IntellijIDEA. Поставил себе очередную зарубку на "надо сделать".