Как стать автором
Обновить
0

Алкоголик

Отправить сообщение

Kubernetes в миниатюре для локального запуска: k0s, MicroK8s, kind, k3s и Minikube

Время на прочтение12 мин
Количество просмотров35K

Тех, кто работал с Kubernetes, вряд ли удивит ситуация, когда внезапно пришла идея по автоматизации, унификации, преобразованию чего-либо в кластере, но так, чтобы не волноваться за конечный результат. Когда возникает потребность в какой-то песочнице, чтобы провести тестирование, проверить гипотезу «на коленке», не используя рабочий Kubernetes-кластер.

В таких случаях приходят на помощь «мини-кластеры». Их можно запустить на рабочем ПК, «поиграться» с примитивами, построить новую структуру, а после завершения эксперимента — безвозвратно удалить (ведь это уже отработанный материал!).

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

Читать далее
Всего голосов 51: ↑50 и ↓1+49
Комментарии28

Как оформить серию коммитов Git, чтобы её приняли в любой проект

Время на прочтение8 мин
Количество просмотров29K

Добрый день, коллеги! Доказывать, что нужно использовать систему контроля версий, уже давно не нужно. И Git занял тут лидирующую позицию, стремительно вытеснив SVN. Но это инструмент, а инструментом нужно уметь пользоваться, чтобы добиться лучших результатов. Как топором, один человек сможет просто срубить дерево а другой из этого дерева сможет сделать великолепную скульптуру. Так и с помощью Git, один человек сможет просто не потерять результаты своего труда за день, а другие смогут организовать совместную работу над проектом нескольких сотен человек. Да так, что о любой строчке кода можно будет и через пять лет сказать, откуда она взялась и для чего нужна.

Постараюсь рассказать для начинающих и не очень разработчиков, как оформлять свои коммиты, чтобы их максимально быстро и без претензий принимали в любые проекты, как опенсорсные так и коммерческие.

Читать далее
Всего голосов 59: ↑56 и ↓3+53
Комментарии30

Как Эйнштейн «опроверг» Ньютона

Время на прочтение7 мин
Количество просмотров25K
Перевод статьи физика и популяризатора науки Мэтта Страсслера

К тому времени, как Эйнштейн в 1905 году вывел свою специальную теорию относительности (СТО), прошло уже больше 200 лет с тех пор, как Ньютон записал свои законы движения. Его последователи развивали его идеи, усложняли их и уточняли. Два столетия научных экспериментов, инженерных изделий и технологий, основанных на этих законах, подтверждали их правильность прямо и косвенно с большой точностью. В жизни людей XVIII и XIX веков уравнения Ньютона работали. Вряд ли бы они перестали работать в XX веке, и так и случилось – часы, двигатели, суда, мельницы, холодильники, гироскопы и пушки продолжали прекрасно работать и после того, как СТО Эйнштейна появилась в 1905 году. Так как же мог Эйнштейн «опровергнуть» Ньютона? Как Ньютон мог оказаться «неправым»?

Легко просто написать набор уравнений и заявить: «Я думаю, что общепринятые уравнения неверны, а мои новые – верны». Это каждый может сделать. Ежегодно я получаю десятки работ, выполненных начинающими физиками (или слышу о таких работах), содержащих ровно такие заявления. У большинства из них ошибку можно найти на первой странице, поскольку существует эксперимент или технология, которые не смогли бы работать, если бы новые уравнения были верны. Чрезвычайно сложно изобрести уравнения, соответствующие всем проделанным экспериментам и изобретённым технологиям. Таков высокий стандарт науки и природы.
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии89

Делаем сервер из Android-телефона

Время на прочтение8 мин
Количество просмотров116K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Всего голосов 130: ↑129 и ↓1+128
Комментарии97

Разработка REST-серверов на Go. Часть 7: GraphQL

Время на прочтение11 мин
Количество просмотров7.4K
Перед вами — седьмая (заключительная) часть серии статей о разработке REST-серверов на Go. В предыдущих статьях мы занимались, в основном, различными подходами к разработке REST API для простого приложения, автоматизирующего управление задачами. Сегодня мы исследуем кое-что совершенно новое и поговорим о том, как сделать похожий API, пользуясь не REST, а GraphQL.



Хотя тут я уделяю определённое внимание причинам выбора GraphQL и сравнению GraphQL и REST, это здесь не главное. Есть множество статей, освещающих эти вопросы, и я советую вам поискать их и почитать. Главная цель этого материала заключается в том, чтобы привести пример создания GraphQL-сервера на Go. Для того чтобы не усложнять нашу задачу, этот сервер использует модель данных, очень похожую на модель, реализованную в одном из вариантов сервера из предыдущих материалов (речь идёт о простом бэкенде, дающем возможность работать со списком задач).
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии1

Как полностью выгореть на примере разработки квеста

Время на прочтение6 мин
Количество просмотров26K

Всем привет, это продолжение истории разработки: «Как в 30 лет стать старым и никому не нужным на примере разработки квеста». Прошел год и мне есть что рассказать.

Прошлая статья окончена на подготовке к выпуску в Steam «долго страдального» квеста над которым я работал 4 года.

10 марта запланированная дата релиза, но в игре остается критический баг который ломает все анимации. И что самое странное на моей конфигурации он не разу не встречается, но программист, композитор и игроки которые протестировали демо постоянно пишут о нем.

Читать далее
Всего голосов 92: ↑92 и ↓0+92
Комментарии105

На чём айтишнику кататься этим летом?

Время на прочтение10 мин
Количество просмотров37K
Ваш покорный слуга — на «покатушках» по грязям, в лесу

Эта история будет интересна тем, кто никогда не слышал про рассмотренный вид транспорта. Данная статья не претендует на абсолютную точность и корректность всех деталей, «все персонажи вымышлены, а совпадения случайны». И вообще, всё это мне приснилось и ничего из того, о чём будет рассказано ниже, — не было. Итак…

Всего голосов 98: ↑89 и ↓9+80
Комментарии218

Что такое модули Terraform и как они работают?

Время на прочтение5 мин
Количество просмотров24K

Многие новички пропускают настройку модулей Terraform, чтобы облегчить процесс настройки. По крайней мере, они так думают, что облегчили себе задачу. Рассмотрим что такое модули Terraform и как они работают.

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии10

Майним Bitcoin с помощью бумаги и ручки

Время на прочтение7 мин
Количество просмотров323K
В один прекрасный момент мне захотелось прикинуть, насколько быстро можно майнить биткойны вручную. Оказалось, что для майнинга используется хеширование SHA-256, а оно достаточно простое и может быть вычислено даже без компьютера. Само собой, процесс очень небыстрый и совершенно непрактичный. Но, пройдя все шаги на бумажке, можно хорошо разобраться в деталях работы алгоритма.


Один криптографический раунд
Читать дальше →
Всего голосов 128: ↑124 и ↓4+120
Комментарии30

Атопический дерматит (нейродермит): что сломалось и как лечить

Время на прочтение11 мин
Количество просмотров78K
image
Одно из возможных проявлений атопического дерматита

Знаете, чему учат студентов-медиков, когда они в первый раз попадают на курацию по кожно-венерологическим заболеваниям? Правильно общаться с пациентом и корректно его осматривать. Типичный студент, увидевший кожу с неприглядными корочками или покраснениями, сразу отодвигается на полтора метра и делает круглые глаза. А потом чуть ли не палочкой пытается тыкать в пациента, стараясь не приближаться. Людей это расстраивает, особенно с учётом того, что большинство пациентов там вовсе не болеет чем-то страшным и заразным.

Часто попадаются довольно неприятно выглядящие хронические заболевания, которые радикально не лечатся, но поддаются контролю при правильном подходе. Псориаз или атопический дерматит очень сложно лечить из-за двух причин:

  1. Базовая причина связана с генетическими дефектами, которые мы пока не можем чинить, несмотря на все успехи генотерапии.
  2. Есть куча непонятных факторов, которые могут запускать этот процесс.

В итоге можно попытаться загнать заболевание в постоянную ремиссию. Сегодня мы поговорим:

  1. Что это за патология, с которой сталкивается около 20 % людей.
  2. Что ломается в организме у атопиков.
  3. Как это связано с аллергией.
  4. Что лучше мазать на кожу.
  5. Почему антидепрессанты могут сильно помочь.

Под катом будет несколько фотографий повреждённой кожи, но не ужас-ужас, как вы и просили.
Читать дальше →
Всего голосов 96: ↑91 и ↓5+86
Комментарии160

Сокеты в ОС Linux

Время на прочтение5 мин
Количество просмотров83K

В данной статье будет рассмотрено понятие сокета в операционной системе Linux: основные структуры данных, как они работают и можно ли управлять состоянием сокета с помощью приложения. В качестве практики будут рассмотрены инструменты netcat и socat.

Читать далее
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Используете Kafka с микросервисами? Скорее всего, вы неправильно обрабатываете повторные передачи

Время на прочтение16 мин
Количество просмотров17K


Apache Kafka стала ведущей платформой для асинхронной коммуникации между микросервисами. В ней есть мощные функции, которые позволяют строить устойчивые к ошибкам и отказам асинхронные архитектуры.


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


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

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии17

Практический взгляд на хранение в Kafka

Время на прочтение8 мин
Количество просмотров32K


Kafka повсюду. Где есть микросервисы и распределенные вычисления, а они сейчас популярны, там почти наверняка есть и Kafka. В статье я попытаюсь объяснить, как в Kafka работает механизм хранения.

Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии3

Оптическая иллюзия 2020

Время на прочтение1 мин
Количество просмотров79K
image


Я просидел у монитора 15 минут с кусками бумаги, пытаясь разоблачить подвох. Интересно, а если вместо стрелочек использовать слова «влево», «вверх», «вниз» сохранится ли эффект?

Оптическую иллюзию выложили в Твиттер 25 ноября и она бомбанула. Тысячи человекочасов потеряны, сотни тысяч листиков приложено к экрану.

Для сомневающихся:
Всего голосов 173: ↑154 и ↓19+135
Комментарии67

Docker is deprecated — и как теперь быть?

Время на прочтение5 мин
Количество просмотров75K

Kubernetes объявил Docker устаревшим и планирует прекратить его использование примерно через год, в версии 1.22 или 1.23. Эта новость вызвала много вопросов и непонимания. В блоге Kubernetes появилось целых две статьи, разъясняющих смысл записи в Changelog (раз и два). Если все обобщить, то для разработчиков (те, которые Dev) ничего не меняется — они все так же могут продолжать использовать docker build для сборки своих контейнеров, а вот для инженеров, ответственных за эксплуатацию кластера (Ops), пришла пора разобраться и освоить несколько новых инструментов.

Читать дальше
Всего голосов 105: ↑98 и ↓7+91
Комментарии81

Команда find в Linux – мощный инструмент сисадмина

Время на прочтение5 мин
Количество просмотров207K


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


Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:


  • Дате добавления.
  • Содержимому.
  • Регулярным выражениям.

Данная команда будет очень полезна системным администраторам для:


  • Управления дисковым пространством.
  • Бэкапа.
  • Различных операций с файлами.

Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.

Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии12

Не лайтхаусом единым: как проверить свой сайт со всех сторон

Время на прочтение3 мин
Количество просмотров18K


Когда мы говорим о веб-валидаторах и оптимизации сайта под них, мы чаще всего имеем ввиду Lighthouse/Pagespeed Insights от Google, который давно стал де-факто стандартом для оценки производительности сайта. Кто-то стремится к заветным 100 баллам даже на прототипах и шаблонных приложениях в две кнопки, кто-то в шутку создает абсолютно недоступный сайт с идеальным рейтингом, но для всех фронтендеров лайтхаус предоставляет вменяемую, хоть и довольно поверхностную, аналитику производительности сайта и поиск бутылочных горлышек. Однако скорость загрузки — лишь один из множества параметров, которые стоит проверять на своём сайте, и для большинства других есть свои валидаторы и скоринговые алгоритмы. Мы рассмотрим инструменты для каждого из значимых направлений и составим список, по которому стоит прогонять свой сайт, чтобы в дальнейшем не отлавливать проблемы вручную.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии4

Коллеги, вы меня огорчаете

Время на прочтение12 мин
Количество просмотров169K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Всего голосов 181: ↑137 и ↓44+93
Комментарии1152

Как pod в Kubernetes получает IP-адрес

Время на прочтение7 мин
Количество просмотров24K
Прим. перев.: эта статья, написанная SRE-инженером из LinkedIn, в деталях рассказывает о той «внутренней магии» в Kubernetes — точнее, взаимодействии CRI, CNI и kube-apiserver, — что происходит, когда очередному pod'у требуется назначить IP-адрес.

Одно из базовых требований сетевой модели Kubernetes состоит в том, что у каждого pod'а должен быть свой собственный IP-адрес и любой другой pod в кластере должен иметь возможность связаться с ним по этому адресу. Есть множество сетевых «провайдеров» (Flannel, Calico, Canal и т.п.), которые помогают реализовать данную сетевую модель.

Когда я только начинал работать с Kubernetes, мне было не совсем ясно, как именно pod'ы получают свои IP-адреса. Даже с пониманием, как функционируют отдельные компоненты, было сложно представить их совместную работу. Например, я знал, для чего нужны плагины CNI, но не представлял, как именно они вызываются. Поэтому решил написать эту статью, чтобы поделиться знаниями о различных сетевых компонентах и их совместной работе в кластере Kubernetes, которые и позволяют каждому pod'у получить свой уникальный IP-адрес.
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии2

Хранение данных в кластере Kubernetes

Время на прочтение5 мин
Количество просмотров33K

Настроить хранение данных приложений, запущенных в кластере Kubernetes, можно несколькими способами. Одни из них уже устарели, другие появились совсем недавно. В этой статье рассмотрим концепцию трёх вариантов подключения СХД, в том числе самый последний — подключение через Container Storage Interface.


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии5

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность