Pull to refresh
0
0
Send message

Сравнительный обзор VPN клиент-серверных приложений

Reading time6 min
Views46K

Каждый, кто задумывался о своем VPN сервере, задавался вопросами, а какие VPN сервисы существуют, что выбрать и, самое главное, что подойдет лично мне? В данной статье я хочу поделиться своими наблюдениями о некоторых VPN сервисах, которыми сам пользовался и/или пользуюсь.

Ну что ты там понаписал...
Total votes 15: ↑12 and ↓3+9
Comments31

Масштабирование базы данных через шардирование и партиционирование

Reading time11 min
Views155K


Масштабирование базы данных через шардирование и партиционирование


Денис Иванов (2ГИС)


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

Немного расскажу о себе — я работаю в команде WebAPI в компании 2GIS, мы предоставляем API для организаций, у нас очень много разных данных, 8 стран, в которых мы работаем, 250 крупных городов, 50 тыс. населенных пунктов. У нас достаточно большая нагрузка — 25 млн. активных пользователей в месяц, и в среднем нагрузка около 2000 RPS идет на API. Все это располагается в трех датацентрах.

Перейдем к проблемам, которые мы с вами сегодня будем решать. Одна из проблем — это большое количество данных. Когда вы разрабатываете тот или иной проект, у вас в любой момент времени может случиться так, что данных становится очень много. Если бизнес работает, он приносит деньги. Соответственно, данных больше, денег больше, и с этими данными что-то нужно делать, потому что эти запросы очень долго начинают выполняться, и у нас сервер начинает не вывозить. Одно из решений, что с этими данными делать — это масштабирование базы данных.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments17

Аутентификация и авторизация в микросервисных приложениях

Reading time11 min
Views213K

Автор: Вячеслав Михайлов, Solutions Architect

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

Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments15

IoT за копейки: делаем устройство с веб-интерфейсом

Reading time6 min
Views49K

Автор: Николай Хабаров, Senior Embedded Developer, DataArt

В этой статье мы расскажем, как создать собственное устройство с веб-интерфейсом в домашней сети, используя новейшую версию 0.5 прошивки DeviceHive для микросхемы ESP8266. Но для начала, давайте разберем, что нового появилось в самой прошивке: основные нововведения связаны с возможностью автономной работы в локальной сети.
Total votes 21: ↑20 and ↓1+19
Comments52

SQL: пара приемов в SELECT-запросах

Reading time3 min
Views24K

Автор: Юрий Цыганенко, Senior QA

Тестирование новых функций часто проводят на данных, взятых с уже функционирующей системы. В этом случае тестировщикам порою приходится строить запросы для хитрых случаев. Например, нужно протестировать новую функциональность интернет-магазина, причём играют роль интервалы между покупками. Нам доступны данные с работающей версии — можно загрузить их на тестовый стенд и проверить работу новой версии продукта. (NB!: конечно, имея дело с «живыми» данными, нужно исключить из них приватную информацию и обеспечить возможность логина интересующим нас пользователям).

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

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

Аналогичные задачи и их разбор — под катом.
Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments7

Тестирование глазами разработчика: инструменты, мифы, ситуации

Reading time10 min
Views21K


Евгений Сафронов, Senior Developer, DataArt

«Тестирование можно использовать для того, чтобы доказать наличие ошибок в программе, и никогда — для того чтобы доказать их отсутствие!»
Эдсгер Дейкстра


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

Тестирование — это проверка работоспособности программы, предмета или любой промышленной разработки. Как и в любом деле, здесь есть свои тонкости и своя философия. Она, наверное, ближе тестировщикам, которые на произведенные нами вещи смотрят деструктивно — они с самого начала думают о том, как сломать предложенный разработчиками продукт. Это не очень типично для пользователей, которые более предсказуемы и обычно находят ошибки, случайно пытаясь сделать с нашей программой что-то нетипичное. У разработчиков подход к программам в принципе другой, но мы должны помнить: тестировщики должны ломать то, что мы создали — это их хлеб.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments1

Устройства с управлением через веб-интерфейс

Reading time4 min
Views15K


Автор: Николай Хабаров, IoT Google Developer Expert, эксперт по встраиваемым системам, DataArt.

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

Устройство работает на основе микроконтроллера ESP8266Wi-Fi) и прошивки DeviceHive.
Total votes 16: ↑14 and ↓2+12
Comments6

Майкл Лазар: «Интернет, мобильные и проводные телефоны работают, потому что люди смогли согласовать стандарты»

Reading time8 min
Views5.8K


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

— Кто определяет стандарты в телекоме?

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

В 1865 году был создан ITU — тогда эта аббревиатура расшифровывалась как «Международный телеграфный союз» — он должен был гарантировать работу телеграфов по всему миру. ITU до сих остается высшей инстанцией в индустрии связи, буква Т в его названии теперь обозначает «телекоммуникационный» [по-русски ITU традиционно называют Международным союзом электросвязи, — Прим. ред.]. Теперь он представляет собой ни много ни мало подразделение ООН, организации хоть и заметно более молодой, но, согласитесь, солидной. ITU распределяет радиочастоты, курирует запуск спутников и формулирует рекомендации для всех игроков рынка.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments11

Визуализация данных для вашего Web-проекта

Reading time6 min
Views18K


Автор: Александр Кашеверов, Senior JavaScript Developer

Добро пожаловать и приятного чтения!

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

Цель — осветить предметную область и упростить проблему выбора конкретного решения. Рассмотрим отличия библиотек и остановим взгляд на популярных вариантах, будут примеры и совсем немного теории.

Для лучшего понимания — необходимо знание JavaScript и общее представление о работе веб.

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

Моя статья, вероятно, не всеобъемлющая, поэтому пишите комментарии и личные сообщения, я готов выслушать критику и дополнить материал.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments5

Всегда ли нужны Docker, микросервисы и реактивное программирование?

Reading time15 min
Views49K


Автор: Денис Цыплаков, Solution Architect, DataArt

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

Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

В последнем пункте регулярно возникают типичные ошибки, о некоторых из них я расскажу в статье.
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments104

DataArt запустил бесплатный сервис улучшения резюме CV Duck

Reading time4 min
Views11K


Сервис рассчитан, в первую очередь, на разработчиков и тех, кто занимается созданием цифровых продуктов. HR-эксперты и редакторы исправляют ошибки и дают рекомендации, как структурировать резюме, описать профессиональный опыт и навыки.

Бета-версия CV Duck доступна пользователям с декабря 2018 года, сейчас специалисты DataArt обработали около 350 резюме. Пока сервис функционирует только в России и Украине — ввиду ограничений, связанных с обработкой данных, — хотя в дальнейшем возможно его развитие и на других рынках.

Чтобы получить рекомендации, нужно просто загрузить собственный вариант документа на cvduck.pro. Через несколько дней (мы установили срок в 10 дней, но чаще успеваем уложиться в два–три дня) пользователь сервиса получает отредактированную версию резюме с комментариями рекрутера и редактора. Эксперты дают рекомендации по содержанию (структура, объем, формат изложения, наличия важных данных и т. д.) и форме, проверяют стилистику, орфографию и пунктуацию (на английском, русском и украинском языках).
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments25

Лучшие практики Node.js — советы по структуре проектов

Reading time8 min
Views42K

Привет, Хабр! Представляю вашему вниманию адаптированный перевод первой главы "Node.js Best Practices" автора Yoni Goldberg. Подборка рекомендаций по Node.js размещена на github, имеет почти 30 т. звезд, но до сих пор никак не упоминалась на Хабре. Предполагаю, что эта информация будет полезна, как минимум, для новичков.
Глава 1. Советы по структуре проектов
Total votes 38: ↑32 and ↓6+26
Comments6

Information

Rating
Does not participate
Registered
Activity