Как стать автором
Обновить
-2
0
Алексей @jellyfish

Пользователь

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

Некоторые приемы YAML

Время на прочтение3 мин
Количество просмотров77K
В этом посте я расскажу про не очень известные особенности языка YAML.

Пролог


Системное администрирование за последние несколько лет несколько изменилось. Вместо маленьких скриптиков на bash у нас теперь огромные проекты системы конфигурации. Puppet с миллионом модулей готов «отконфигурять» для нас любую машинку, все поставить и все настроить. И конечно же, венчает это торжество автоматизации Hiera — система управления системой управления.

В начале идея выделения всех конфигурационных данных в иерархическую структуру и редактирования красивых и удобных YAML файлов кажется невероятно соблазнительной, особенно если вспомнить множество форматов конфиг-файлов, создатели которых, кажется, участвовали в соревнованиях по оригинальности мышления. Однако очень уже скоро мы оказываемся с тысячами строк YAML. Давайте посмотрим как можно использовать YAML чтобы наши конфигурации было легче читать и поддерживать.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии18

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

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

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

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

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

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

Zettelkasten: как один немецкий учёный стал невероятно продуктивным

Время на прочтение18 мин
Количество просмотров368K
Изображение предоставлено автором. Основано на фотографии Патрика Томаса с Ансплэша

Это перевод статьи Дэвида Клира о методе ведения заметок Zettelkasten, благодаря которому немецкий социолог Никлас Луман написал более 70 книг и 400 научных статей. Стоит читать, если вы хотите создать собственную базу знаний, систематизировать идеи и перестать забывать важные мысли.

Статья бережно перенесена из блога бегущего редактора. Кстати, следить за анонсами новых статей можно в моём телеграм-канале. Подписывайтесь, чтобы ничего не пропустить!
Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии82

Роль TechOps, DevOps, and NoOps в жизненном цикле программного обеспечения

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

Соберем пазл Ops’ов.

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

Раньше, IT отделы представляли собой единые команды, но теперь популярна идея организации команд более эффективно для удовлетворения потребностей компании. Основываясь на этих идеях,  IT группы разделяются по специализациям отделов с четкими ролями и требуемыми результатами, продолжая совместную работу. Часть из популярных идей включают в себя  TechOps, DevOps, и NoOps.

TechOps, DevOps, и NoOps это не примеры технологий или языков программирования. Это модели работы, определяющие как IT команды будут внедрять и выпускать проекты в релиз. Это просто различные подходы к производству, развертке и поддержке продуктов. 

Разберемся в этих идеях.

TechOps

Широкое и зачастую плохо определяемое назначение TechOps специалистов может дать впечатление, что они занимаются вообще всем, что связано с IT. Действительно, TechOps-задачи сильно разнятся от организации к организации, но все они попадают в категорию по предоставлению и обслуживанию существующей технологической инфраструктуры. Это включает такие вещи как сетевая поддержка, управление базами данных, обеспечение и контроль безопасности, аварийное восстановление, оптимизация сети, установка и обновление программного обеспечения и другие задачи поддержки. 

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

Selenium vs Puppeteer vs Cypress vs Playwright

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

Всем привет. Я qa automation engineer уже 14 лет и 9 из них мне так или иначе приходилось работать с автоматизацией веб-приложении (и не только). Я писала свои автотесты на C#, Java, и Js. Сейчас я хотела бы поделиться опытом, как я выбираю фреймворк для тестирования веб приложения. Думаю кому-то мой текст может быть полезен. 

Первое, с чего следует начинать создания своего фреймворка, - это с выбора движка взаимодействия с браузером. Именно движок в дальнейшем станет краеугольным камнем ваших тестов. Именно выбор движка является фундаментом дома, который вы строите (и потом этот фундамент никак не переделать сторонними библиотеками).

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии17

Введение в Data classes

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

Одна из новых возможностей, появившихся в Python 3.7 — классы данных (Data classes). Они призваны автоматизировать генерацию кода классов, которые используются для хранения данных. Не смотря на то, что они используют другие механизмы работы, их можно сравнить с "изменяемыми именованными кортежами со значениями по умолчанию".



Введение


Все приведенные примеры требуют для своей работы Python 3.7 или выше

Большинству python-разработчикам приходится регулярно писать такие классы:


class RegularBook:
    def __init__(self, title, author):
        self.title = title
        self.author = author

Уже на этом примере видна избыточность. Идентификаторы title и author используются несколько раз. Реальный класс же будет ещё содержать переопределенные методы __eq__ и __repr__.


Модуль dataclasses содержит декоратор @dataclass. С его использованием аналогичный код будет выглядеть так:


from dataclasses import dataclass

@dataclass
class Book:
    title: str
    author: str
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии19

Ключевое слово this в JavaScript. Полное* руководство

Время на прочтение6 мин
Количество просмотров41K
* скорее всего, я что-нибудь да упустил, но уверен, в комментариях мне это подскажут

Эту статью я пишу для своих личных нужд. Планируется, что она будет содержать в себе ответы на все вопросы, которые мне задают студенты на эту тему. Если она пригодится кому-то ещё — здорово.

image

Содержание.

  1. Введение
  2. Заблуждения о this
  3. Как определить значение this
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии30
Тебя заморозили, чтобы разбудить в будущем. Здорово? Ты тоже так думал, пока не проснулся и не увидел, что вокруг одни роботы. И они не очень-то рады человеку: у них и так безработица, кризис, цены на гелий-3 растут, а тут ещё и ты из прошлого понаехал. Но ты программист, а программисты не сдаются! Вместе с Академией больших данных MADE от Mail.ru Group мы подготовили задачи, с которыми не справились местные ИИ. Готов решить их и доказать, что человека не заменить? Тогда вперёд! В будущем всё же есть один плюс: все документы и медосмотр тут делает ИИ. Занимает это считанные секунды, и никакой бюрократии. Вот и новая работа… Ты заглядываешь через плечо коллеги-робота и от удивления чуть не роняешь нанокружку. Да это же код на Python! Что ж, хоть какие-то человеческие ценности вечны!
Ладно, где там задачи? Подайте их сюда!
Всего голосов 17: ↑15 и ↓2+13
Комментарии8

Безопасность REST API от А до ПИ

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

Введение


Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответствии со спецификацией. Задача обеспечения безопасности REST API не так очевидна, как, например, обеспечение безопасности баз данных, но ее необходимость не менее важна.
В настоящее время многие онлайн системы с помощью API передают приватные данные пользователей, такие как медицинские или финансовые. Текущая же ситуация с безопасностью в веб-приложениях весьма печальна: по данным Comnews порядка 70% содержат кри­тичес­кие уязвимости. Поэтому всем, кто участвует в проектировании, реализации и тестировании онлайн систем, важно иметь общую картину по существующим угрозам и способам обеспечения безопасности как всей системы, так и используемого REST API.

В статье я попытался обобщить информацию о существующих уязвимостях REST API, чтобы у читателей сложилась общая картина. На схемах представлена современная архитектура клиент-сервер и обобщенный REST API запрос с потенциальными угрозами безопасности. Далее я подробнее расскажу об этих угрозах, и как технически реализовать защиту от них.

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

Хочу больше годных профстатей, Хабр

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

Листая страницы Хабра, поймал себя на мысли, что я воспринимаю Хабр  как новостную ленту в социальной сети. То есть как нечто, что прямого отношения лично ко мне не имеет и касается меня очень  косвенным путем. Нечто полуразвлекательное-полупознавательное.

Ну, судите сами. Вот примерный список тем, которые превалируют на Хабре.

1. Что там новенького  у Илона Петровича Маска.

2. Как с помощью Arduino, говна и палок сделать годный фаллоимитатор радиоприемник.

3. Как я ушел с прошлой работы, и как мне было там плохо.

4. Как я нашел свою текущую работу, и какая она крутая.

5. Как живется специалисту X в стране Y.

6. Какой путь нужно проделать фельдшеру из Ангарска, чтобы стать тестировщиком мобильных приложений в Ирландии.

7. Обсуждение новомодной платформы для веб-разработки, которая через 3 года станет старомодной.

8. Промываем косточки крупным компаниям.

9. Исторические экскурсы в IT/технологии/медицину.

10.   Реклама компаний.

11.   Мнения обо всем отвлеченном на свете.

12.   И т.д.

Все эти темы и все статьи – неплохие, интересные. Но я хотел бы другого.

Читать далее
Всего голосов 203: ↑169 и ↓34+135
Комментарии169

Всë, что вам нужно знать об управлении релизами

Время на прочтение8 мин
Количество просмотров28K
В постоянно меняющемся, эволюционирующем мире приложений отдавать полусырые релизы пользователям — не вариант. Именно здесь на первый план выходит управление релизом. Данный материал от одного из менеджеров компании Hike, рассказывает о трейн-релизах и о стратегии ветвления, вводя в курс дела тех, кто хочет расширить свою зону компетенции и получить представление об управлении проектом.

Приступим!
Всего голосов 23: ↑22 и ↓1+21
Комментарии1

Шпаргалки по безопасности: REST

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


REST — чрезвычайно популярная архитектура веб-приложений. Для вызова функций на сервере используются обычные HTTP-запросы с задаваемыми параметрами (для структуризации параметров обычно используют JSON или XML), при этом, строгого стандарта для REST-архитектуры не существует, что добавляет ей гибкости (и, конечно, немного хаоса).
Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии9

Распил стартапа. Калькулятор Деммлера

Время на прочтение3 мин
Количество просмотров56K
Конечная цель любого стартапа — деньги. Будет ли это успешно работающий доходный бизнес или выгодная продажа более крупным игрокам рынка, зависит от каждой отдельной компании. Кто-то хочет получить свои миллионы от Гугла, кто-то и сам не прочь стать Гуглом. Конечно, важна идея, самовыражение, амбиции — не без этого. Но в итоге, если не верить, что стартап принесет миллионы, то и начинать не стоит. Поговорим о том, как же делить доли в стартапе между основателями компании.

Мы делили апельсин, много нас, а он один


В американской традиции стартапов принято брать в долю всех участников проекта, работающих с первого дня его основания. Отличный способ мотивации команды, скажу я вам. Но как делить баснословные доходы, если они таки будут? Самое первое, приходящее на ум — поделить поровну. Таким образом, если над стартапом работало пять человек, то каждому достанется по 20%. Справедливо? Не очень.

У американцев есть отличная поговорка про курицу и свинью «a chicken is involved with breakfast, but a pig is committed»: речь о яичнице с беконом на завтрак, для приготовления которого требуется некоторое усилие от курицы (снести яйцо и жить себе спокойно дальше), в то время как свинье придётся принести куда более существенную жертву. Так же и в бизнесе: некоторые участники проекта выполняют работу достаточно формально и потом наблюдают за результатами, другие же несут принципиально большие риски и вкладываются в дело сильнее.

Frank Demmler, профессор предпринимательства в бизнес-школе при Carnegie Mellon University, предложил следующий метод распределения долей в стартапе.
Читать дальше →
Всего голосов 81: ↑73 и ↓8+65
Комментарии54

Hadoop: что, где и зачем

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


Развеиваем страхи, ликвидируем безграмотность и уничтожаем мифы про железнорождённого слона. Под катом обзор экосистемы Hadoop-а, тенденции развития и немного личного мнения.
Читать дальше →
Всего голосов 61: ↑58 и ↓3+55
Комментарии26

Когда Chef и Puppet — не решение. Часть 1

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

За последние лет пять я вижу очень много статей по «удачным» рецептам построения систем деплоймента и управления конфигурацией на базе Chef/Puppet/Vagrant/Ansible. Я потратил около 7 лет на решение задач автоматического деплоймента в компании, в которой я в то время работал, и теперь считаю, что имею достаточно опыта, чтобы покритиковать многие распространенные инструменты.

Я не могу раскрыть очень много подробностей в силу NDA и еще не прошедшего срока о неразглашении, хотя мне и очень бы хотелось детально описать мой подход. В этой статье мне бы хотелось обрисовать общий принцип и идеи и получить конструктивную критику в комментариях. Описанные ниже примеры конечно же не относятся ни к какой конкретной компании и имеют своей целью просто привести примеры.
Читать дальше →
Всего голосов 36: ↑25 и ↓11+14
Комментарии88

Поняв Docker

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

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


К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


Что мы имеем сегодня


  • Зоопарк дубовых VPS-хостингов.
  • Дорогие IaaS и PaaS с гарантированным vendor lock in.
  • Уникальные сервера-снежинки.
  • Ворох устаревших зависимостей на неподдерживаемой операционке.
  • Скрытые связи частей приложения.
  • Незаменимый админ полубог на скейтборде.
  • Радуга окружений: development, testing, integration, staging, production.
  • Генерация конфигов для системы управления конфигами.
  • Feature flagging.
docker run docker
Всего голосов 92: ↑83 и ↓9+74
Комментарии245

Корректирующие коды «на пальцах»

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

Корректирующие (или помехоустойчивые) коды — это коды, которые могут обнаружить и, если повезёт, исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок. Конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам.


Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.


Давайте же разберёмся, что это такое.


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


Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным.

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

Роскомнадзор пытается добить Rutracker. Блокировки серверов-анонсеров и методы обхода

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

Rutracker толком не потерявший свою аудиторию вполне закономерно вызывает недовольство Роскомнадзора и других ведомств. Они все-таки старались, деньги тратили, выступали с заявлениями, а оно все работает и помирать не собирается. Под блокировкой был основной сайт rutracker.org, который, по сути, был просто каталогом magnet-ссылок и torrent-файлов. Новый виток борьбы привел в добавлению в списки блокировок серверов-анонсеров. Именно они поддерживают инфраструктуру ресурса и позволяют отдельным пирам найти друг друга.

Update
2 мая СМИ запестрели заголовками о начале массовой блокировки всех анонсеров и зеркал Rutracker: lenta.ru, Вести, Известия, Ведомости. Однако в интервью Газете.Ру представитель Роскомнадзора сообщил, что блокировки проводятся в плановом режиме и ничего глобального в плане тотальных блокировок они не производили за последние дни.
«Мы не проводим никакие массированные атаки. Мы ведем целенаправленную работу по повышению эффективности блокировки пиратского контента», — подчеркнул пресс-секретарь Роскомнадзора в беседе с корреспондентом «Газеты.Ru».

Он уточнил, что ни о каком замедлении трафика для пользователей трекера речи не идет, а блокировка RuTracker проводится в плановом режиме.

Тем не менее проблема реальна, сервера блокируются, а в посте есть полезные ссылки на открытые трекеры. Поэтому решил не удалять материал.
Читать дальше →
Всего голосов 101: ↑100 и ↓1+99
Комментарии173

Пособие по Ansible

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

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


Этот режим интересен потому что вам не нужно иметь публично доступную главную машину для удаленной настройки узлов; это узлы должны быть доступны (позже мы увидим, что скрытые узлы также могут получать конфигурацию).

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность