Pull to refresh
8
0
Анатолий Березняк @Bezk

User

Send message

DevOps придумали разработчики, чтобы админы больше работали

Reading time9 min
Views42K

Еще 4 года назад использование контейнеров в production было экзотикой, но сейчас это уже норма как для маленьких компаний, так и для больших корпораций. Давайте попробуем посмотреть на всю эту историю с devops/контейнерами/микросервисами ретроспективно, взглянуть еще раз свежим взглядом на то, какие задачи мы изначально пытались решить, какие решения у нас есть сейчас и чего не хватает для полного счастья?


Я буду в большей степени рассуждать про production окружение, так как основную массу нерешенных проблем я вижу именно там.

Читать дальше →
Total votes 95: ↑91 and ↓4+87
Comments62

Метаданные S3 в PostgreSQL. Лекция Яндекса

Reading time12 min
Views12K
Это вторая лекция с Я.Субботника по базам данных — первую мы опубликовали пару недель назад.

Руководитель группы СУБД общего назначения Дмитрий Сарафанников рассказал об эволюции хранилища данных в Яндексе: о том, как мы решили делать S3-совместимый интерфейс, почему выбрали PostgreSQL, на какие грабли наступили и как с ними справились.


— Всем привет! Меня зовут Дима, в Яндексе я занимаюсь базами данных.
Total votes 38: ↑37 and ↓1+36
Comments9

Rekit Studio: IDE для React-приложений

Reading time9 min
Views21K
Сегодня мы публикуем перевод материала Нейта Ванга, создателя Rekit. Здесь он рассказывает о новом стабильном релизе системы, Rekit Studio. Это — полноценная IDE для разработки приложений, созданных с использованием технологий React, Redux и React Router. Он говорит, что его команда создаёт с помощью Rekit сложные веб-приложения уже больше года.

Предыдущая версия Rekit Studio называлась Rekit Portal. Она не поддерживала возможностей по редактированию кода. Теперь, благодаря редактору Monaco Editor, того, который используется в VS Code, и благодаря замечательному средству для форматирования кода prettier, Rekit Studio позволяет удобно работать с кодом. Именно поэтому в названии системы появилось слово «studio».

Rekit Studio
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments4

Подключаем оплату через Apple Pay на сайте

Reading time5 min
Views55K
Сейчас, в том числе и у нас на сайте, и в приложениях ivi, есть явная тенденция роста аудитории на мобильных устройствах. Также растет и доля покупок, совершаемых в интернете с мобильных устройств. В отличие от десктопа, помимо традиционных вариантов оплаты, доступны системы мобильных платежей, например Apple Pay, Android Pay, Samsung Pay. Эти системы можно использовать не только для оплаты в терминалах, принимающих банковские карты, но и для оплаты в приложениях и на веб-сайтах.


Внедрение мобильных платежей мы начали с веб-версии ivi и выбрали мобильный сайт и систему Apple Pay.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments9

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

Reading time7 min
Views37K
Эта статья — вольный пересказ моего доклада на прошедшем Хайлоаде.

Я возглавляю компанию, в которой работает 75 человек, а начинали мы 10 лет назад впятером.


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


Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments55

Индексы в PostgreSQL — 1

Reading time17 min
Views393K

Предисловие


В этой серии статей речь пойдет об индексах в PostgreSQL.

Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

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

В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments59

Quadstor — виртуальный SAN для бюджетников

Reading time6 min
Views17K
Еще примерно год назад я наткнулся на статью «50 инструментов для автоматизации облачной ифраструктуры» в котором описывались инструменты для работы с виртуализацией и в нем промелькнул инструмент под названием Quadstor. И недавно, наконец-то дошли руки до этого замечательного софта, и теперь хочу немного о нем рассказать, что это такое и с чем его едят!
Quadstor — это виртуализация хранилищ которая работает на основе iSCSI. quadstor.com

И так, что он умеет:

  1. Поддержка виртуальных дисков по Fibre Channel, iSCSI или локально.
  2. Тонкие диски (Thin Provisioning)
  3. Дедупликация данных
  4. Высокая доступность (High Availability)
  5. Поддержка VAAI (Hardware Acceleration)
  6. Поддержка кластеров Windows server 2012, Hyper-V, VMware
  7. Поддержка ZFS
  8. И самое основное — он бесплатный (ну а поддержка за деньги).
  9. Размер виртуального диска до 64Тб.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments12

Web PUSH Notifications быстро и просто

Reading time17 min
Views339K

Добрый день. В этой небольшой заметке я хочу рассказать как быстро и просто настроить push-уведомления на вашем сайте. Эта статья ни в коем случае не претендует на звание исчерпывающего руководства, но, я надеюсь, что она даст точку старта для дальнейшего изучения.


Информации по этой теме в интернете полно, но она фрагментирована, разбросана по разным ресурсам и перемешена с уведомлениями для мобильных устройств с примерами на Java, C++ и Python. Нас же, как веб-разработчиков, интересует JavaScript. В этой статье я постараюсь саккумулировать всю необходимую и полезную информацию.


Web PUSH Notifications


Я думаю, вы уже знаете что такое push-уведомления, но я всё же напишу коротко о главном.


Пользователь, заходя на сайт, вытягивает (pull) с него данные. Это удобно и безопасно, но с развитием интернет ресурсов, появилась необходимость оперативно доставлять информацию пользователям не дожидаясь пока те сами сделают запрос. Так и появилась технология принудительной доставки (push) данных с сервера клиенту.

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments66

Как создать круглую Progress Button

Reading time9 min
Views45K
Урок по реализации круглой кнопки загрузки (далее progress button) by Colin Garven. Будем использовать, описанную by Jake Archibald, технику анимации SVG линий для того, чтобы анимировать progress button и показать пользователю состояния «success and fail».

image
Читать дальше →
Total votes 34: ↑21 and ↓13+8
Comments8

PostgreSQL и задачи, с ней связанные, на HighLoad++

Reading time6 min
Views30K


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

Руководитель и идеолог международного сообщества, Брюс Момжан, вот уже какой год приезжает к нам на HighLoad++. Этот год не исключение, Брюс будет рассказывать про «Upcoming PostgreSQL Features» — кому рассказывать про будущее этой СУБД, как не Брюсу?

Почему же, несмотря на такую активность, это база данных по-прежнему далеко не так распространена, как, например «базулька» MySQL. В чем подвох? Эту тему мы активно обсуждали на конференции PGDay'15, которую организовал один из докладчиков HighLoad++ Илья Космодемьянский.

Для начала небольшое исследование:
  1. Крупнейшие платные CMS в России (Битрикс, Netcat, UMI) не поддерживают PostgreSQL;
  2. Самые популярные бесплатные CMS (Wordpress, Drupal, Joomla) тоже (или поддерживают с трудом или поддерживают недавно);
  3. Только каждый третий хостинг провайдер предлагает поддержку PostgreSQL.

Читать дальше →
Total votes 49: ↑45 and ↓4+41
Comments46

Новый PHP, часть 2: Scalar types

Reading time8 min
Views45K

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

До сих пор мы говорили о типах только в отношении классов и интерфейсов. В течение многих лет мы только их (и массивы) и могли использовать. Однако же, PHP 7 добавляет возможность использовать и скалярные величины тоже, такие как int, string и float.

Но постойте. В PHP большинство примитивов являются взаимозаменяемыми. Мы можем передать "123" в функцию, которая хочет int, и довериться PHP, который все сделает «правильно». Так для чего же тогда нужны скалярные типы?
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments94

Как перевести сайт целиком на постоянный HTTPS для всех

Reading time6 min
Views44K

Шифруем всё подряд


Эра незашифрованного веба проходит, и это хорошо. В этой инструкции мы предполагаем, что на вашем сервере работает веб-сервер Nginx. И теперь мы сделаем так, чтобы все посетители сайта пользовались исключительно протоколом HTTPS. Кроме этого мы включим HSTS – это «HTTP Strict Transport Security», когда сайт не только поддерживает HTTPS, но и настаивает на его использовании.

Для этого есть множество способов, но я опишу метод под названием «HTTPS termination». Иначе говоря, мы поставим перед веб-сервером обратный прокси, который и будет обеспечивать HTTPS. Это получается проще и гибче, чем настраивать HTTPS только при помощи возможностей веб-сервера. Возможно, вам покажется контринтуитивным, что добавление ещё одного приложения в стек упростит вашу жизнь – но это действительно так.

Уточним, что данный рецепт подходит для серверов на базе Linux, на которых установлен Nginx.

То, что будет работать прежде всех остальных приложений в стопке – это HAProxy. Это в первую очередь приложение для балансировки – он умеет распределять приходящие запросы между разными физическими серверами. Много высоконагруженных сайтов используют его в этом качестве (тот же reddit), но в последней версии у него появилась возможность выполнять SSL termination. Он умеет устанавливать HTTPS-соединения от имени сервера.

Поэтому мы поставим HAProxy, скормим ему наши сертификаты SSL/TLS, поручим перенапрявлять все HTTP запросы на HTTPS, и покажем ему уже сам веб-сервер в качестве бэкенда.
Читать дальше →
Total votes 63: ↑49 and ↓14+35
Comments38

Нестандартная оптимизация проектов на PHP

Reading time5 min
Views29K
В данной публикации хочу рассказать о том, как нетрадиционными методами мы смогли снизить нагрузку на серверы и ускорить время обработки страницы в несколько раз.

image

Традиционные методы, думаю, всем известны:
  • Оптимизация SQL-запросов;
  • Поиск и исправление узких мест;
  • Переход на Memcache для часто используемых данных;
  • Установка APC, XCache и подобных;
  • Клиентская оптимизация: CSS спрайты и т.п.


В нашем же проекте всё это было сделано, но при этом проблема скорости обработки страниц сохранялась. Средняя скорость обработки страницы была в районе 500мс. В один прекрасный момент пришла идея проанализировать, какие ресурсы есть, и на что они могут тратиться.
Читать дальше →
Total votes 53: ↑40 and ↓13+27
Comments103

Потенциальная уязвимость в Telegram Android

Reading time9 min
Views40K
Дисклеймер: Описанная ниже потенциальная уязвимость на данный момент исправлена: 18 декабря 2014 была обновлена версия на Google Play, 3 января 2015 были внесены правки в публичный код на GitHub.

Так сложилось, что мне необходимо было изучить исходные коды механизма шифрования, передачи и дешифрования сообщений в Telegram для мобильных платформ iOS и Android. То есть речь идет о клиентских приложениях, именно их исходники (iOS, Android) находятся в свободном доступе.

Так как я больше специализируюсь в iOS, то в первую очередь приступил к изучению версии для этой платформы. Потратив около дня на чтение исходников и на работу с отладчиком, я сообразил что к чему и приступил к Android версии. Несложно догадаться, что механизмы и принципы работы должны быть идентичны в силу совместимости всех платформ между собой. Но к своему удивлению я обнаружил несколько отличий в алгоритме дешифрования сообщений в Android версии, что и породило уязвимость, если можно так выразиться. Общая суть уязвимости заключается в том, что в клиентском приложении отсутствует сравнение хеша дешифрованного сообщения с оригинальным хешем, передаваемым вместе с зашифрованным сообщением. По сути отсутствует проверка подписи сообщения. Отсутствие такой проверки может позволить третьим лицам, имеющим доступ к серверу, создавать рандомную активность от лиц участвующих в секретном чате. При этом доступ к общему секретному ключу не требуется, и он остается неуязвим для третьих лиц.
Больше деталей под катом
Total votes 74: ↑72 and ↓2+70
Comments30

Дриббблификация дизайнеров

Reading time6 min
Views80K
Примечание: Dribbble — сервис, где графические дизайнеры хвастаются друг перед другом своими работами.


Лишь одно из этих погодных приложений пытается решить насущную проблему.

В сообществе дизайнеров наблюдаются расходящиеся тенденции. С одной стороны мы наблюдаем интересные блоги от Райана Сингера и Джулии Жуо, которые развивают наше ремесло. С другой стороны, всё большее количество народу постят свои работы и обсуждают их на Dribbble, что в целом двигает наше ремесло в обратную сторону. Этот пост – не про Dribbble, как таковой, он про то, что ценит это сообщество. Я буду использовать термин «дизайн продукта», но также буду иметь в виду дизайн пользовательских взаимодействий с продуктом.
Читать дальше →
Total votes 54: ↑46 and ↓8+38
Comments32

Создание «интернет-знаменитости» за 68 долларов

Reading time2 min
Views178K


Сантьяго Сваллоу (Santiago Swallow) — визионер, консультант, автор и мыслитель. У Сантьяго 85 тыс. фоловеров в твиттере и статья в Википедии. Пожалуй, по состоянию на 17 апреля это был самый «известный» человек в интернете, про которого никто не слышал. Оно и неудивительно, ведь Сантьяго на самом деле не существует.

Создание образа Сантьяго Сваллоу заняло всего два часа и 68 долларов.
Читать дальше →
Total votes 190: ↑160 and ↓30+130
Comments83

[Перевод] Cross-Storage: Сделайте локальные данные доступными между доменами

Reading time2 min
Views5K
image

Как мы знаем localStorage API имеет некоторые ограничения, которые, возможно, придется обходить при написании крупных приложений. Новая библиотека cross-storage* дает возможность меж-доменной поддержки localStorage с использованием полномочий. Данная библиотека так же включает в себя Promise API для стандарта ES6.
Далее
Total votes 18: ↑15 and ↓3+12
Comments4

Подборка занимательных CSS рецептов «Голые пятницы #2»

Reading time3 min
Views50K
Привет, Хабр! В этот раз мы поговорим о стилизации инпутов без картинок и JS, особенностях вертикальных отступов, CSS счетчиках, необъятных возможностях в именовании классов, а также расскажем, как улучшить анимацию на слабых устройствах.

голые пятницы
Поехали!
Total votes 50: ↑46 and ↓4+42
Comments39

Как я создавал плагин постраничной прокрутки One Page Scroll с открытым исходным кодом

Reading time12 min
Views59K
Эффекты прокрутки используются в вебе уже давно, и хотя есть уже много плагинов, из которых можно выбрать, лишь малая их часть обладает таким малым весом и простотой, какие требуются для многих дизайнеров и разработчиков. Большинство виденных мною плагинов пытаются сделать слишком много, в результате чего их трудно включать в свои проекты.

Не так давно Apple представила iPhone 5S, и сайт с презентацией, где страница была поделена на секции, и каждая секция описывала одну из особенностей продукта. Я подумал, что это – замечательный способ представления продукта, исключающий возможность пропустить ключевую информацию.

Я отправился на поиски подходящего плагина, и к удивлению, не обнаружил такового. Так и родился плагин постраничной прокрутки.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments14
1
23 ...

Information

Rating
Does not participate
Location
Петродворец, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity