Pull to refresh
0
0
Максим @mahimus

User

Send message

Построение микросервисной архитектуры на Golang и gRPC, часть 1

Reading time14 min
Views50K

Введение в микросервисную архитектуру


Часть 1 из 10


Адаптация статей Ewan Valentine.


Это серия из десяти частей, я постараюсь раз в месяц писать про построение микросервисов на Golang. Я буду использовать protobuf и gRPC в качестве основного транспортного протокола.


Стек, который я использовал: golang, mongodb, grpc, docker, Google Cloud, Kubernetes, NATS, CircleCI, Terraform и go-micro.


Зачем мне это? Поскольку мне потребовалось много времени, чтобы разобраться в этом и решить накопившиеся проблемы. Так же я хотел поделиться с вами тем, что я узнал о создании, тестировании и развертывании микросервисов на Go и другие новые технологии.


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


  • грузы
  • инвентарь
  • суда
  • пользователи
  • роли
  • аутентификация
Читать дальше →
Total votes 25: ↑17 and ↓8+9
Comments8

Бесплатные SSL-сертификаты на 2 года с поддержкой до 100 доменов

Reading time1 min
Views124K
Интернет на волне всеобщей прослушки и связанной с этим паранойи постепенно переходит на тотальный SSL. К сожалению, пока это сделать не очень просто и обычно не бесплатно. Из бесплатных сервисов годные сертификаты, поддерживаемые всеми браузерами, предоставляет сервис StartSSL. В середине 2015 года при поддержке Mozilla, Cisco и других уважаемых организаций будет организована раздача бесплатных сертификатов в автоматическом режиме.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments127

Я — сертифицированный PHP-специалист

Reading time4 min
Views33K
Да, наверное, возможность применения данного выражения — греет кому-то душу, но я немного о другом.

Разрешите поделиться опытом прохождения сертификации по PHP 5.5 от компании Zend Technologies.

Моя цель:
  • показать на примере, что это не так сложно, как кажется;
  • не так легко, как может показаться;
  • показать еще один весьма субъективный метод подготовки к тесту;
  • вдохновить тех из коллег, которые возможно планировали сертификацию, но все не решались это сделать.

Путь от «да, я хочу получить статус ZCE» до покупки ваучера


4 года — ровно столько времени потребовалось от простого «Да, не плохо было бы получить сертификат» до «Девушка, смотрите, а я сдал»

Если у вас появится такая мысль, то открывая в очередной раз Америку, скажу — вам помогут: правильно и ясно поставленная цель; четко разграниченные сроки; план действий.

Цель


Записывать поставленные цели — старо как мир, однако, о ведении записей и планировании жизни как таковой я раньше не задумывался. «Стать десятым ZCE в Казахстане» — одна из первых записанных на бумаге и достигнутых целей.
В этом плане нам технарям не нужно стесняться учиться и перенимать опыт у тимлидов, руководителей проектов и топ-менеджеров. Жизнь — это не только код, фичи и багфиксы.
Читать дальше →
Total votes 44: ↑29 and ↓15+14
Comments30

Регулярные выражения, пособие для новичков. Часть 1

Reading time14 min
Views912K
Регулярные выражения (РВ) это, по существу, крошечный язык программирования, встроенный в Python и доступный при помощи модуля re. Используя его, вы указывается правила для множества возможных строк, которые вы хотите проверить; это множество может содержать английские фразы, или адреса электронной почты, или TeX команды, или все что угодно. С помощью РВ вы можете задавать вопросы, такие как «Соответствует ли эта строка шаблону?», или «Совпадает ли шаблон где-нибудь с этой строкой?». Вы можете также использовать регулярные выражения, чтобы изменить строку или разбить ее на части различными способами.
Читать дальше →
Total votes 105: ↑99 and ↓6+93
Comments32

Удобное удаленное управление консолью linux из-под Windows

Reading time5 min
Views69K
Итак, друзья, некоторое подмножество нас (людей) так или иначе испытавает необходимость удаленного управления компьютером (как правило, сервером) на linux (способ может сработать и в BSD, и в Mac OS X, но я не пробовал) при помощи ssh. Другое подмножество использует Windows в качестве ОС на основной рабочей машине. К пересечению этих подмножеств обращена моя статья.

Полезности, ради которых затевается всё вселье:
1. Сохранение подключения при обрыве связи. Этот пункт для меня самый важный и сыграл решающую роль в том, чтобы взяться за настройку такой системы. Дело в том, что я живу в общежитии с очень-очень нестабильным интернетом, и обрывы связи у меня (в плохие дни) могут происходить поминутно. А putty требует последовательности действий, чтобы переподключиться каждый раз
2. Сохранение сессии, включая текущую директорию, историю команд и вывода. Зачастую, единственной задачей при подключении к серверу стоит: зайти в одну и ту же директорию и написать git pull. Чтобы каждый раз не вспоминать путь к этой директории, нужно сохранение сессии
3. Терминал поддерживает вкладки. Самое главное, что данный терминал можно использовать также и для cmd, и для PS, и для git bash консоли. Поэтому не придется держать несколько разных терминалов открытыми.
4. Плюсы tmux: многооконность в одной сессии и split

image
Читать дальше →
Total votes 32: ↑23 and ↓9+14
Comments49

Оптимизация обработки сообщений RabbitMQ

Reading time3 min
Views59K
В рамках рабочих задач недавно мною было проведено небольшое исследование на тему целесообразности использования опции prefetchCount при работе с брокером сообщений RabbitMQ.
Хочу поделиться этим материалом в виде слайдов и комментариев к ним.

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

* на слайдах вместо слова «подписчик» используется «консумер», в комментариях для единообразия тоже
* рассматривается отдельно взятая очередь с пятью консумерами (C1..C5)

Идеальные условия



Узнать всю правду
Total votes 48: ↑44 and ↓4+40
Comments16

Highly Available кластер RabbitMQ

Reading time6 min
Views73K
Знакомимся с RabbitMQ

Переводы на хабре:
RabbitMQ tutorial 1 — Hello World
RabbitMQ tutorial 2 — Очередь задач
RabbitMQ tutorial 3 — Публикация/Подписка

Сразу дополню некоторые недочеты. И кратко повторю основные термины.

Принцип работы архитектуры использующей rabbitMq

image

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments25

Майкрософт и ФРИИ приглашают на серию студенческих хакатонов Imagine Cup

Reading time2 min
Views5.5K
Хакатоны Imagine Cup – это уникальные двухдневные мероприятия, которые проводит Майкрософт совместно с Фондом Развития Интернет-Инициатив (ФРИИ) специально для тех, кто хотел бы научиться создавать современные мобильные и облачные приложения. В ближайшие пару месяцев мы посетим 8 разных городов России, чтобы помочь начинающим разработчикам придумать и создать новые приложения на платформе Майкрософт, а также провести незабываемую ночь в компании с компьютерами и единомышленниками.


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

PhpStorm — повышаем производительность (клавиатурные сокращения). Часть 1

Reading time4 min
Views209K
imagePhpStorm — повышаем производительность (плагины и темы оформления). Часть 2

У всех нас есть любимые IDE или редакторы в которых мы пишем код. Для меня это PhpStorm, и потребовалось некоторое время, чтобы освоить все клавиатурные сокращения и ускорить свой рабочий процесс. В этой статье я поделюсь с вами некоторыми сочетания клавиш и советами, которые возьмут на себя часть рутинной работы, если вы тоже делаете свою работу в этой IDE. Эта статья была частично вдохновлена этим Reddit тредом, и я буду упомянать и демонстрировать некоторые трюки найденные там.

Обратите внимание, что я разрабатываю на Linux в Vagrant, размещенном в Windows, я буду использовать клавишу CTRL вместо CMD. Если вы работаете в OS X, замените CTRL на CMD.

Клавиатурные сокращения и хаки


PhpStorm позволяет настроить себя практически до бесконечности — вы можете заточить этот инструмент под себя так, что постороннему может показаться, что это совсем другая IDE.

(осторожно, много gif изображений)
Давайте посмотрим, чем мы можем воспользоваться
Total votes 77: ↑68 and ↓9+59
Comments58

HackDay #30 в Москве

Reading time1 min
Views2.2K
image

Завтра (в пятницу 21 февраля) открываем HackDay #30 в центре притяжения технологических и креативных сообществ Москвы DI Telegraph.

Ждем на мероприятии программистов, дизайнеров, маркетологов, менеджеров, проектировщиков интерфейсов, маркетологов, PR-специалистов, и всех тех, у кого есть идея IT-проекта, но нет команды для ее воплощения.
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments0

Почему у нас нет поддержки ВКонтакте

Reading time4 min
Views33K
После нашего первого анонса на Хабре к нам пришло много новых пользователей из России и одна из самых часто запрашиваемых фич была — поддержка Вконтакте. Почему нет, ведь пользователей сети Вконтакте очень много и наконец с «лайками» из этой соц. сети можно сделать что-то полезное для работы.

У нас уже накопился приличный опыт интеграции с различными API: Twitter, Facebook, Github, Behance и т.д. плюс у нас уже выделился некий boilerplate код, с помощью которого новые интреграции делаются в кратчайшие сроки. Поставив себе цель, порадовать наших пользователей на этой неделе, я вынуждуен признать — это оказалось невыполнимой задачей.

Про причины и то, каким недостатком обладает Вконтакте API, читаем далее.
Читать дальше →
Total votes 42: ↑27 and ↓15+12
Comments20

Information

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