Pull to refresh
0
0
Дмитрий @iPrime

Администратор, программист

Send message

Программно-определяемые СХД: сравниваем 7 решений

Reading time5 min
Views33K
В этой статье я кратко расскажу о программно-определяемых хранилищах (Software-Defined Storage, SDS) и о возможностях их применения, которые они дают при построении ИТ-инфраструктуры. В конце статьи вас ждет сравнение семи SDS-решений. Я протестировал их, когда мы с коллегами из «Онланты» прорабатывали варианты развития инфраструктуры облака OnCloud.ru. Надеюсь, что сравнительная таблица сэкономит вам кучу времени и сил при выборе продукта.


Источник
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments21

Вкратце об OpenID Connect

Reading time9 min
Views78K

Медленно, но неотвратимо наступает смена решений SSO на основе SAML на решения OpenID стека. С недавних пор компания Google реализовала поддержку OpenID Connect протокола на своих серверах. Насколько он может быть приемлем для Вашего проекта и как с ним работать, оценить по спецификации протокола довольно трудно. Немного облегчить это решение должна статья одного из авторов спецификации в своём блоге, перевод которой я и предоставляю аудитории хабра. В целях упростить понимание, некоторые моменты были добавлены от себя, таким образом, чтобы не приходилось обязательно читать ссылки на используемые технологии, но ознакомится с некоторыми из них всё же я рекомендую.


Когда вы читаете спецификацию по OpenID Connect, вы можете испытывать довольно неприятные чувства от лёгкой испуганности до полнейшего разочарования. Всё это происходит потому, что они написаны на “сухом” языке спецификации, и по большей части они описывают граничные случаи, исключения и т.д. Тем не менее, когда вы переводите их на нормальный человеческий язык и переключаетесь на конкретные случаи, всё становится довольно очевидно. Итак, давайте приступим! (Ремарочка: большая часть текста совпадает с первоначальным предложением, написанным Дэвидом Рекордоном. В основном, мои правки затронули лишь некоторые из имен параметров и другие мелочи)

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments3

Обзор способов и протоколов аутентификации в веб-приложениях

Reading time18 min
Views645K


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments20

Каково это — быть разработчиком в России, когда тебе сорок

Reading time37 min
Views161K
Привет всем, я — сорокалетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
Читать дальше →
Total votes 353: ↑338 and ↓15+323
Comments788

Опыт работы со взломанным сервером

Reading time3 min
Views47K


Хочу поделиться своим опытом начинающего системного администратора. Так уж случилось, что мой первый блин комом — это было предложение заняться инфраструктурой в одной маленькой компании. Ситуация сложная. Никакой автоматизации, все вручную и по принципу: работает — не трогай, а если не работает и никто не заметил, то считай, что работает. Предыдущий сотрудник не оставил почти никакой документации. Вот доступ к серверам, кофемашина — там, вроде всё…
Читать дальше →
Total votes 62: ↑58 and ↓4+54
Comments51

Система хранения для миллиардов записей с доступом по ключу

Reading time3 min
Views20K

Даже слон не выдержит столько данных


Постановка задачи


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


К такому количеству записей опробованные SQL/NoSQL системы хранения оказались плохо приспособлены, поэтому клиент предложил с нуля разработать специализированное решение.

Читать дальше →
Total votes 43: ↑30 and ↓13+17
Comments66

«Прозрачный» Squid с разграничением доступа

Reading time3 min
Views44K


Как готовить кальмара, думаю что не я один сталкивался с задачей настройки Squid'а для разграничения доступа сотрудникам предприятия, но при этом он должен быть «прозрачным». Другими словами конфигурация показанная далее удовлетворяет трём условиям:

  • Имеется список запрещенных интернет-ресурсов, доступ к которым закрыт у всех пользователей (Пример: социальные сети);

  • Имеется список разрешенных интернет-ресурсов, доступ к которым открыт у всех пользователей (Пример: портал государственных услуг);

  • Имеется список ip-адресов пользователей которые должны иметь доступ ко всем интернет-ресурсам кроме входящих в список запрещенных.

Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments25

Знакомство с хранилищем Ceph в картинках

Reading time11 min
Views302K
Облачные файловые хранилища продолжают набирать популярность, и требования к ним продолжают расти. Современные системы уже не в состоянии полностью удовлетворить все эти требования без значительных затрат ресурсов на поддержку и масштабирование этих систем. Под системой я подразумеваю кластер с тем или иным уровнем доступа к данным. Для пользователя важна надежность хранения и высокая доступность, чтобы файлы можно было всегда легко и быстро получить, а риск потери данных стремился к нулю. В свою очередь для поставщиков и администраторов таких хранилищ важна простота поддержки, масштабируемость и низкая стоимость аппаратных и программных компонентов.

Знакомьтесь: Ceph


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



При выходе любого диска, узла или группы узлов из строя Ceph не только обеспечит сохранность данных, но и сам восстановит утраченные копии на других узлах до тех пор, пока вышедшие из строя узлы или диски не заменят на рабочие. При этом ребилд происходит без секунды простоя и прозрачно для клиентов.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments67

Проблемы с установкой начального загрузчика на флеш-накопитель

Reading time6 min
Views27K
В статье содержатся 5 вопросов и ответов по следующим темам:

1. Очистка mbr флешки в Windows
2. Конвертирование ISO-файла в гибридный ISO-файл (только Linux)
3. Создание загрузочной флешки с сохранением изменений (Linux, Windows, Mac OS X)
4. Создание мультизагрузочной флешки (Windows)
5. Восстановление таблицы разделов и загрузчика mbr (Hiren's BootCD).
Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments7

Несколько заметок о MySQL

Reading time4 min
Views25K
За время работы с MySQL набралось некоторое количество нюансов и приемов, из которых я составил эту статью в виде набора заметок. Все это не секрет и, разумеется, можно найти в документации.

Буду использовать дефолтные настройки MySQL. Некоторые заметки связаны с PHP, поэтому для примеров буду использовать расширение mysqli.

Для запуска sql-запросов из статьи можно инициализировать таблицы так:

CREATE TABLE IF NOT EXISTS `user_myisam` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `user_myisam` (`id`, `login`, `money`) VALUES
(1, 'ivanov', 100),
(2, 'petrov', 200),
(3, 'sidorov', 300);

CREATE TABLE IF NOT EXISTS `user_innodb` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `user_innodb` (`id`, `login`, `money`) VALUES
(1, 'ivanov', 100),
(2, 'petrov', 200),
(3, 'sidorov', 300);

Проверить текущие автоинкременты можно так:

SHOW TABLE STATUS;

У обоих таблиц они равны 4. При этом имеется такое подключение к БД:

$mysqli = new mysqli($host, $user, $password, $database);
Читать дальше →
Total votes 44: ↑37 and ↓7+30
Comments0

«Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов (x86)

Reading time9 min
Views258K
Не секрет, что в больших конторах тема фильтрации Интернета довольно актуальная. С этой задачей справляется немало программных и аппаратных решений. Но в настоящее время все те сайты, которые мы резали ранее, работают по протоколу HTTPS, т.е. порт 443. Как известно, данный протокол проследить, прослушать и т. п., невозможно. А любой кеширующий фильтрующий прокси-сервер, редиректор и т. п. фильтрует только HTTP, т.е. порт 80. Как же резать Вконтакте, Одноклассники, iphide.info и многие другие подобные сайты? Как блокировать доступ к личной почте в организации, если использование оной запрещено порядками в организации? Да, можно фильтровать по IP адресам, но они частенько меняются, да и на многих ресурсах несколько IP адресов. Блокировать их на уровне файрвола как-то совсем не православное решение, и не совсем удобное.

И вот, совсем недавно, мне один товарищ рассказал, что он поднимает у себя в конторе кеширующий прокси с фильтрацией HTTPS, меня это заинтересовало.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments140

Gogs: легковесный git-сервис

Reading time5 min
Views63K


В числе самых обсуждаемых последних новостей в сообществе разработчиков были новые тарифы GitHub (см., например, здесь).

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

Некоторые прибегают к альтернативному решению и разворачивают GitLab (или другой git-сервис) на собственном или арендованном сервере.

Но и у этого решения есть свои подводные камни: GitLab очень требователен к системным ресурсам. Для частных лиц гораздо проще платить 7 долларов в месяц за GitHub, чем арендовать сервер надлежащей конфигурации.

Из сказанного, однако, не следует, что у GitHub на сегодняшний день альтернативы нет. Об одном весьма интересном и перспективном решении мы хотели бы рассказать в этой статье. Знакомьтесь: Gogs. Этот инструмент будет интересен как для индивидуальных разработчиков, так и для небольших компаний.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments63

Более чем 80 средств мониторинга системы Linux

Reading time12 min
Views320K
Ниже будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.



1. первый инструмент — top

Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
читать дальше
Total votes 94: ↑82 and ↓12+70
Comments68

MongoDB от теории к практике. Руководство по установке кластера mongoDB

Reading time9 min
Views88K
     Доброго времени суток, уважаемые читатели. В этом посте я хотел бы описать несколько примеров развертки mongoDB, отличия между ними, принципы их работы. Однако больше всего хотелось бы поделиться с вами практическом опытом шардирования mongoDB. Если бы этот пост имел план, он бы выглядел скорее всего так:

  1. Вступление. Кратко о масштабировании
  2. Некоторые примеры развертки mongoDB и их описание
  3. Шардинг mongoDB

    Пункты 1 и 2 — теоретические, а номер 3 претендует на практическое руководство по поднятию кластера mongoDB и больше всего подойдет тем, кто столкнулся с этим в первый раз.
Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments11

Паспортный сканер своими руками

Reading time7 min
Views26K


Привет, Хабр! В предыдущих статьях мы уже рассказывали вам про то, как нам удалось превратить ввод паспортных данных на мобильных устройствах из рутины в простую и быструю процедуру. Следующим закономерным шагом мы превратили наш Smart PassportReader SDK в серверную компоненту, облегчив тем самым крупным финансовым организациям работу с документами в бэк-офисах. Наконец, проявив изобретательскую смекалку и инженерный подход, нам удалось разработать программно-аппаратный комплекс (забегая вперед, представим его название — Smart PassportBox), позволяющий оптимизировать работу фронт-офисов и СКУД-решения. Поэтому, если вам интересно сколько директоров, программистов, паяльников, лобзиков и отверток требуется для создания полноценного ПАК, добро пожаловать под кат.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments12

Очень шустрый блог на WordPress при помощи связки nginx + PHP-FPM + MariaDB + Varnish

Reading time13 min
Views92K
В данной статье я расскажу о том, как я заставил свой блог на WordPress летать за счёт грамотного кэширования, сжатия и другой оптимизации серверной и клиентской сторон. На момент написания статьи характеристики VDS следующие:
CPU: 1 x 2GHz
HDD: 10Gb
RAM: 512Mb
OS: Debian 8 x64

Схема работы системы выглядит следующим образом:

image
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments49

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views694K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments45

Лучшие дистрибутивы для проведения тестирования на проникновение

Reading time4 min
Views172K


Существует несколько популярных securty дистрибутивов, содержащих большинство популярных утилит и приложений для проведения тестирования на проникновение. Обычно они основаны на существующих Linux-дистрибутивах и представляют из себя их переработанные версии. В этой статье будут представлены наиболее известные из них.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments17

Процедурно генерируемые карты мира на Unity C#, часть 1

Reading time5 min
Views71K
image

В этом цикле статей мы научимся создавать процедурно генерируемые карты мира с помощью Unity и C#. Цикл будет состоять из четырех статей.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments6

Мониторим S.M.A.R.T. в Zabbix

Reading time11 min
Views37K
Для тех кто использует Zabbix, и хочет научится делать свои шаблоны и мониторить не стандартные системы (которых еще нет в Zabbix), а также,
кому нужен расширенный мониторинг S.M.A.R.T., и кого не устроили уже существующие шаблоны, прошу под кат.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments0

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity