Pull to refresh
4
0
Сергей @Serjio2888

Product. Biz. Dev.

Send message

Не открывайте порты в мир — вас поломают (риски)

Reading time4 min
Views63K

image


Снова и снова, после проведения аудита, на мои рекомендации спрятать порты за white-list'ом встречаюсь со стеной непонимания. Даже очень крутые админы/DevOps'ы спрашивают: "Зачем?!?"


Предлагаю рассмотреть риски в порядке убывания вероятности наступления и ущерба.


  1. Ошибка конфигурации
  2. DDoS по IP
  3. Брутфорс
  4. Уязвимости сервисов
  5. Уязвимости стека ядра
  6. Усиление DDoS атак
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments71

Разработка под Docker. Локальное окружение. Часть 1

Reading time3 min
Views71K
Возможно, одна из самых основных причин почему мне нравится докер это то, что он позволяет избавиться от необходимости установки на компьютер различных сервисов. К их числу можно отнести и сам веб-сервер Apache или Nginx, базы данных и прочие компоненты инфраструктуры приложения. Вся инфраструктура прописана в конфигурационном файле docker-compose.yml и запускается одной командой вместе с вашим приложением. Все что нужно разработчику работающему с докером, это по сути сам докер и любимая среда разработки и ВСЕ!
Читать дальше →
Total votes 47: ↑38 and ↓9+29
Comments82

Пишем веб сервис на Go (часть вторая)

Reading time18 min
Views26K
Продолжение статьи о том, как написать небольшое полнофункциональное приложение на Go.

В первой части мы реализовали REST API и научились собирать приходящие HTTP запросы. В этой части, мы покроем наше приложение тестами, добавим красивый веб-интерфейс на основе AngularJS и Bootstrap, и внедрим ограничение доступа для разных пользователей.
Напишем капельку кода на Go
Total votes 38: ↑34 and ↓4+30
Comments12

Безопасность данных в разработке мобильных приложений

Reading time13 min
Views37K

Вступление


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

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments31

Микросервис на Golang

Reading time4 min
Views31K
image Среди беспорядка найдите простоту; среди раздора найдите гармонию; в трудности найдите возможность...
(С) Альберт Эйнштейн

Статей о микросервисах, их достоинствах и недостатках в последнее время написано немало. Однако как-то редко кто пишет об имплементации микросервисной архитектуры, и прежде всего, именно об микросервисе, как о кирпичике, из которой и строится потом здание такого приложения. Я попытался восполнить этот пробел, и поделиться своим опытом в разработке http-микросервиса, вылившемся в конечном счёте в небольшую библиотеку под не оставляющим места для сомнений названием Microservice. Код написан на прекрасно подходящем для микросервисов, простом и удобном языке программирования Golang.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments27

Шпаргалка с командами Docker

Reading time5 min
Views689K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments15

Контейнеры для взрослых (Часть 03): 10 вещей, которые не надо делать с контейнерами

Reading time4 min
Views31K
Вы, наконец, сдались на милость контейнеров и обнаружили, что они решают массу проблем и имеет массу преимуществ:

  1. Контейнеры незыблемы: ОС, библиотеки, папки и приложения – поскольку все это хранится прямо в контейнере, вы на 100 % уверены, что в продакшн всегда пойдет именно тот образ, который тестировался в QA. И работать он при этом будет абсолютно аналогично.
  2. Контейнеры легковесны: Контейнер не ест память впустую. Вместо сотен мегабайт и гигабайт контейнеру нужна память лишь под основной процесс.
  3. Контейнеры быстрые: Контейнер запускается так же быстро, как и обычный Linux-процесс. Не минуты, а буквально считанные секунд.



Однако, многие до сих пор считают, что контейнеры – это виртуальные машины, и забывают про важнейшее их свойство…
Читать дальше: 10 вещей, которые не надо делать с контейнерами
Total votes 38: ↑35 and ↓3+32
Comments194

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

Reading time8 min
Views25K

Поисковая выдача на ListenNotes.com

Listen Notes — это поисковая система и база данных подкастов. Технология на самом деле очень скучная. Никакого ИИ, глубокого обучения или блокчейна. «Если вы должны объявлять о внедрении ИИ, то вы не используете Настоящий ИИ» :)

После прочтения этой статьи вы сможете повторить мой проект или легко сделать нечто подобное. Не придётся нанимать много разработчиков. Помните, когда Instagram привлёк $57,5 млн и отошёл к Facebook за $1 млрд, у них было всего 13 сотрудников — и это не только разработчики. Покупка Instagram произошла в начале 2012-го. Сейчас 2019 год, и сегодня как никогда просто создать что-то значимое с крошечной инженерной командой — даже из одного человека.
Total votes 71: ↑69 and ↓2+67
Comments54

Пишем Telegram-бота на Go для поиска в Википедии

Reading time18 min
Views93K
Содержание
  • Создаем бота
  • Пишем код
  • Разворачиваем бота
  • Заключение

Сейчас очень популярен телеграм и написание ботов для него стало неким hello world наших дней, ввиду чего при мысли о том что можно написать сейчас, многие сразу же думают о написании телеграм бота.


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

Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments23

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Reading time44 min
Views218K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Total votes 80: ↑76 and ↓4+72
Comments270

Разбираемся с интерфейсами в Go

Reading time10 min
Views118K

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

  1. Человеческим языком объяснить, что такое интерфейсы.
  2. Объяснить, чем они полезны и как вы можете использовать их в своём коде.
  3. Поговорить о том, что такое interface{} (пустой интерфейс).
  4. И пройтись по нескольким полезным типам интерфейсов, которые вы можете найти в стандартной библиотеке.
Читать дальше →
Total votes 52: ↑46 and ↓6+40
Comments19

Знакомство с Apache Spark

Reading time8 min
Views119K
Здравствуйте, уважаемые читатели!

Мы наконец-то приступаем к переводу серьезной книги о фреймворке Spark:



Сегодня мы предлагаем вашему вниманию перевод обзорной статьи о возможностях Spark, которую, полагаем, можно с полным правом назвать слегка потрясающей.

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

Культура разработки: как оценивают производительность и эффективность

Reading time8 min
Views16K

(c)

Практически с появления технологической отрасли в ней велась охота за «Белым китом» — метриками труда разработчиков. Возможно, само желание посчитать KPI программистов родилось из фразы, распространенной в традиционном бизнесе: «Вы не можете планировать, если не можете измерить».

Вслед за сотнями различных KPI, которыми пытались обвесить программистов, появилось множество различных методов анализа рабочих данных — от отслеживания направления взгляда на монитор до Scrum и Kanban. Измерения качества труда настолько хорошо работали во многих отраслях, что казалось вполне логичным перенести данный опыт на разработку программного обеспечения. Результат оказался обескураживающим.

Измерения и управление продуктивностью разработчиков не привели к появлению единого международного стандарта качества. Высокотехнологичные IT-компании разрабатывают собственные метрики… отдельные из них практически невозможно сравнить с традиционными KPI в других сферах деятельности.

В этой статье расскажем о самых интересных действующих метриках и о «метриках» в IT.
Total votes 39: ↑32 and ↓7+37
Comments5

Московская история профессионального выгорания — от 1996 до 2017. Путь из топ-менеджера госкорпорации в исследователи

Reading time14 min
Views58K

У тебя есть всё — высокая должность, зарплата в несколько сотен тысяч рублей, надёжность и стабильность государственной корпорации, ранговые корпоративные игры. У тебя малиновые штаны — и подчинённые разве что не приседают и не делают «Ку».


Но ты не чувствуешь себя счастливым. У тебя проблемы в семье. Проблемы с алкоголем. Натянутые отношения с персоналом. Акульи улыбки на совещаниях с такими же топ-менеджерами. Бессонница. Резкие перепады настроения и короткие депрессивные эпизоды. Работа надоела давным давно — с утра ты мрачно осознаёшь, что впереди ещё один бессмысленный день. С друзьями общаться не хочется да и незачем. Ты понимаешь, что в плену социальных условностей — ты IT-директор с высокой зарплатой и завидным положением в обществе — но это как камень на шее. И конфликты, конфликты, конфликты. Уже не только на работе, но и в семье.


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


С этого осознания начинается долгий путь к самому себе.


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


Мой сегодняшний собеседник останется анонимным. Когда ты работаешь в топ-менеджменте, ты уже не можешь говорить от своего лица, в тебе всегда будут видеть представителя компании. Приходится или анонимно говорить неприкрытую правду, или визировать интервью в пиар-отделе.


В беседе он откровенно сравнил два мира — мир государственных корпораций и мир свободного IT-сообщества, где он теперь по-настоящему профессионально свободен и счастлив.



Читать дальше →
Total votes 85: ↑77 and ↓8+98
Comments272

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

Reading time11 min
Views72K

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


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


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


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


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

Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments21

Высоконагруженные системы: решение основных проблем

Reading time7 min
Views53K
Привет, Хабр!

Сегодня я хочу рассказать о некоторых решениях проблем, которые возникают во время использования высоконагруженных систем. Все, о чем пойдет речь в этом материале, проверено на собственном опыте: я – Social Games Server Team Lead в компании Plarium, которая занимается разработкой социальных, мобильных, браузерных игр.

Для начала немного статистики. Plarium занимается разработкой игр с 2009 года. На данный момент наши проекты запущены во всех наиболее популярных социальных сетях («Вконтакте», «Мой мир», «Одноклассники», Facebook), несколько игр интегрированы в крупные игровые порталы: games.mail.ru, Kabam. Отдельно существует браузерная и мобильная (iOS) версии стратегии «Правила войны». В базах числятся более 80 миллионов пользователей (5 игр, локализация на 7 языках, 3 миллиона уникальных игроков в день), в итоге все наши серверы получают в среднем около 6500 запросов в секунду и 561 миллион запросов в сутки.

В качестве аппаратной платформы на боевых серверах в основном используются два серверных CPU с 4 ядрами (x2 HT), 32-64 GB RAM, 1-2 TB HDD. Серверы работают на базе Windows Server 2008 R2. Контент раздается через CDN с пропускной способностью до 5 Gbps.
Разработка ведется под .NET Framework 4.5 на языке программирования C#.

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

Все самое интересное - под катом
Total votes 28: ↑23 and ↓5+18
Comments25

Unix shell: абсолютно первые шаги

Reading time12 min
Views293K

Зачем и для кого статья?


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

Здесь не будет пересказа манов (документации), и статья никак не отменяет и не заменяет их чтение. Вместо этого я расскажу о главных вещах (командах, приемах и принципах), которые надо осознать с самого начала работы в unix shell-е, чтобы работа происходила эффективно и приятно.

Статья касается полноценных unix-подобных окружений, с полнофункциональным шеллом (предпочтительно zsh или bash)и достаточно широким набором стандартных программ.

Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments21

MongoDB и исследование рынка ИТ-вакансий

Reading time9 min
Views7.1K
Вы когда-нибудь анализировали вакансии?

Задавались вопросом, в каких технологиях наиболее сильна потребность рынка труда на текущий момент? Месяц назад? Год назад?

Как часто открываются новые вакансии Java-разработчиков в определенном районе Вашего города и как активно они закрываются?

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


(Источник картинки)
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments2

Зарплаты в ИТ в первом полугодии 2019 года: по данным калькулятора зарплат «Моего круга»

Reading time5 min
Views192K


Публикуем отчет по зарплатам в ИТ-индустрии на 1-е полугодие 2019. Отчёт построен по данным калькулятора зарплат «Моего круга»: в котором за данный период было собрано более 7000 зарплат. 

Посмотрим на текущие зарплаты по всем основным ИТ-специализациям, а также на их динамику за прошедшее полугодие как в целом, так и по основным регионам: Москва, Санкт-Петербург, остальные города. Как обычно, более детально изучим специализации разработчиков программного обеспечения: посмотрим на их зарплаты в разрезе языков программирования, городов и компаний.

Данные, представленные в нашем текущем отчёте, а также любые другие, каждый желающий может получить самостоятельно с помощью калькулятора зарплат «Моего круга». Если вам нравится информация, которую мы получаем с помощью калькулятора, и если вы хотите внести свой вклад в формирование более прозрачного рынка труда в ИТ, приглашаем поделиться своей текущей зарплатой, данные о которой мы используем в нашем следующем годовом отчёте.

Сервис зарплат запущен на «Моем круге» в конце 2017 с целью регулярного мониторинга зарплат в ИТ-индустрии. Зарплаты оставляют сами специалисты, мы их собираем и предоставляем всем в открытый доступ в агрегированной и анонимной форме.
Читать дальше →
Total votes 106: ↑101 and ↓5+96
Comments311

Задачи на собеседованиях в Яндексе

Reading time15 min
Views359K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Total votes 221: ↑178 and ↓43+135
Comments329

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity