Pull to refresh
  • by relevance
  • by date
  • by rating

Пишем телеграм бота на Java от А до Я

Java *

Всем привет.

У меня появилась идея написать серию статей по созданию полноценного проекта на Java для тех, у кого нет опыта работы. Я хочу научить и показать процесс разработки максимально детально, насколько это вообще можно. Шаг за шагом идти к намеченной цели.
Мы будем двигаться с двух сторон - я буду стараться научить, а вы будете стараться понять и воспроизвести у себя это.

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

Кому это будет интересно?

Целевая аудитория — все, кто знает Java SE. Все остальное я буду или описывать в рамках этой серии статей, или это уже описано мною в других статья ранее (например работу с Гитом я описал заранее и просто прикрепляю ссылку на него).
Разумеется, это может быть интересно и уже опытным людям. Отдельно буду благодарен за конструктивную критику моей реализации (это можно будет сделать через гитхаб, в рамках нового issue или написать в телеграм-канале).

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

Читать далее
Total votes 8: ↑2 and ↓6 -4
Views 3.8K
Comments 5

Сборка docker контейнеров с помощью docker контейнеров

Website development *
Sandbox
image

С момента начала работы с Docker, мы столкнулись с немалым количеством проблем. Одна из них — организация сборки приложений и упаковки их в контейнера. Мы решили эту задачу с помощью введения концепции сборочного контейнера. О том, что это такое, зачем нужно и как мы до этого дошли и пойдет речь в этом посте.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 44K
Comments 11

Docker compose и объединение проектов с помощью mixer-a

Website development *Programming *
Одна из проблем, с которыми приходится столкиваться, занимаясь настройкой окружения для разработчиков, с использованием Docker и Docker-compose, это вопрос о том, как сводить вместе несколько различных проектов. При условии, что все проекты, конечно же, имеют docker-compose.yml файл.



Причин, по которым становится необходимо делать это, может быть несколько:
  • Разработка низко связанных компонентов огромной системы. Где каждый проект, по сути, может являться отдельным самостоятельным приложением
  • Подключение отдельных компонентов для тестирования. Вынесение mock-сервисов и тестов в отдельные контейнеры со своей логикой линковки и взаимодействия
  • Внешнии, по отношению к проекту, системы, которые тем не менее 'живут' в docker среде

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 24K
Comments 6

Docker: Окружение для тестирования

IT systems testing *Go *


Последние пять лет принесли в нашу жизнь огромное количество технологий, с помощью которых можно быстро создавать изолированные окружения для разработки и тестирования. Но не смотря на это, организовать стабильное окружение для тестирования — далеко не самая простая задача. А если нужно тестировать сетевые взаимодействия компонентов и анализировать предельный уровень нагрузки на них, то задача становится еще сложнее. Добавив возможность быстрого развертывания окружения и гибкой настройки отдельных компонентов, мы сможем получить небольшой интересный проект.
В этой статье мы подробно расскажем о создании окружения на базе Docker контейнеров для тестирования нашего клиент-серверного приложения. При этом, если смотреть глобально, то данная статья будет хорошей иллюстрацией использования Docker и его ближайшей экосистемы.
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Views 69K
Comments 3

Наш опыт знакомства с Docker

Southbridge corporate blog

Вместо предисловия





Сегодня приснился сон, как-будто меня ужали до размера нескольких
килобайт, засунули в какой-то сокет и запустили в контейнере.
Выделили транспорт в оверлейной сети и пустили
тестировать сервисы в других контейнерах…
Пока не сделали docker rm


Не так давно мне посчастливилось стать членом очень крутой команды
Centos-admin.ru, в которой я познакомился с такими же, как я: единомышленниками со страстью к новым технологиям, энтузиастами и просто отличными парнями. И вот, уже на второй рабочий день меня с коллегой посадили работать над одним проектом, в котором требовалось «докерировать всё, что можно докеризировать» и было критически важно обеспечить высокую доступность сервисов.

Скажу сразу, что до этого я был обычным комнатным Linux-админом: мерился аптаймами, апт-гет-инсталлил пакеты, правил конфиги, перезапускал сервисы, тайлил логи. В общем, не имел особо выдающихся практических навыков, совершенно ничего не знал о концепции The Pets vs. Cattle, практически не был знаком с Docker и вообще очень слабо представлял, какие широкие возможности он скрывает. А из инструментов автоматизации использовал лишь ansible для настройки серверов и различные bash-скрипты.

Читать дальше →
Total votes 29: ↑23 and ↓6 +17
Views 45K
Comments 63

NetApp FlexClone: Как технология ускоряющая разработку

Website development *IT systems testing *
Здесь хочу я коротко описать традиционную архитектуру ИТ-инфраструктуры для обеспечения отказоустойчивости БД и схему разработки, использующую эту архитектуру. И более подробно остановиться на том, как можно упростить жизнь тестировщикам и разработчикам при помощи технологии FlexClone, которые используют БД или любой другой большой набор данных необходимый для тестирования и разработки.

Традиционный подход заключается в том, что создаётся кластер БД: основная и запасная. Далее, время от времени эта БД (как правило, на Stand-By стороне) копируется для разработчиков. И чем больше такая БД, тем реже она копируется и удаляется и тем сильнее нагружается СХД от таких операций. С другой стороны, разработчики и тестировщики получают устаревшую БД, она как правило месячной или даже полугодичной давности. Когда же приходит время внедрять отлаженный код в продуктив, оказывается, что БД успела сильно измениться: появились новые дополнительные данные, таблицы, поля и возможно удалены старые. Это приводит к тому что отлаженный код для старой БД не работает на новой, что сильно усложняет разработку, тестирование, внедрение и эксплуатацию нового кода.


Моментально клонировать много-терабайтную БД
Total votes 12: ↑11 and ↓1 +10
Views 4.9K
Comments 5

Микросервисная архитектура, Spring Cloud и Docker

Website development *Programming *Java *Microservices *
Tutorial

Привет, Хабр. В этой статье я кратко расскажу о деталях реализации микросервисной архитектуры с использованием инструментов, которые предоставляет Spring Cloud на примере простого концепт-пруф приложения.



Код доступен для ознакомления на гитхабе. Образы опубликованы на докерхабе, весь зоопарк стартует одной командой.

Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views 227K
Comments 32

Разбираемся в DevOps и Js на примере Dillinger.io

Open source *Node.JS *
Sandbox
Я бэкенд Java-разработчик, и до фронтенда руки доходят очень редко. Это большое упущение. Отсутствие представления о фронтенде не даёт мне увидеть полную картину мира. Я не знаю, на что обращают внимание и как пользуются всеми модными средствами вроде Node.js, Gulp, Webpack, то есть тем, что так пугает бекенд разработчиков своим разнообразием и постоянными переменами.

И первой моей жертвой целью стал Dillinger.io. Это открытый текстовый редактор для Markdown, в нём есть подсветка синтаксиса и экспорт написанного текста в PDF, HTML, Dropbox, Github и Google Drive, также можно добавить собственный способ, к примеру, статический генератор сайтов или Wordpress.

Набор фичей звучит достаточно скромно. Но, чтобы в нём разобраться, мне пришлось потратить пару вечеров и прочитать о целом зоопарке технологий. И у этого проекта есть чему поучиться.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 10K
Comments 5

Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами

PHP *Programming *

А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?


Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


image
Читать дальше →
Total votes 45: ↑34 and ↓11 +23
Views 68K
Comments 80

Управление Docker проектом со множеством git репозиториев

Website development *Programming *

Команда, в которой я работаю, использует микросервисную организацию в проектах.
У каждого микросервиса свой репозиторий. Каждый микросервис это docker контейнер.
Для среды разработки, чтобы запустить все вместе, мы используем docker-compose.


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


Мы столкнулись с двумя проблемами:


  1. При первоначальном разворачивании среды разработки, приходится обьяснять программисту, либо писать скрипт инициализации, который склонирует и создаст необходимую иерархию папок из нескольких репозиториев.
  2. docker-compose не может собрать приложение, а потом упаковать в идижд. он умеет только запускать docker build.

Для решения этих проблем мы сделали управляющий скрипт docker-project, который оказался очень удобным в работе.
Чем мы и хотим поделиться с open-source сообществом.

Далее
Total votes 17: ↑17 and ↓0 +17
Views 23K
Comments 40

Open source инициатива Docker4Drupal.org

Drupal *


Уже можно твердо констатировать, что контейнеры и, в частности docker, стали стандартом де-факто для разработчиков. Можно еще спорить о применимости контейнеров в продакшене, но уже никто не спорит, что для локальной разработкой и dev инстансов Docker незаменим.

Именно поэтому мы решили раз и навсегда решить головную боль для друпал разработчиков начав open source инициативу Docker4Drupal.org. Тем более, что для друпала окружение довольно стандартизованное.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 5.9K
Comments 23

Разрешение имен доменов из контейнеров Docker в сложных случаях

Virtualization *DNS *
Sandbox
В вопросе связанном с DNS попил мне Docker кровушки основательно, ибо столько там разных мест в которых тебе предлагают написать заветные цифры, что прямо-таки глаза разбегаются.

Итак, задача: необходимо поднять окружение разработчика для одновременной работы с несколькими веб-проектами висящими на доменах вида example.app. При этом данные домены должны быть доступны из контейнеров, с хоста, а также, например, из эмулятора Genymotion. Кроме того, из контейнеров должен быть доступен и внешний интернет. Все это усугубляется корпоративным Intranet со своим внутренним DNS сервером.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 25K
Comments 5

Очередная статья про Docker для новичка [nginx + php-fpm + postgresql + mongodb]

Website development *PHP *
Sandbox
image

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

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

Добро пожаловать под кат!
Читать дальше →
Total votes 25: ↑18 and ↓7 +11
Views 62K
Comments 19

Еще один домашний медиасервер на базе Docker

*nix *Data storage *Data storages *
Sandbox
Добрый день Хабр. На написание этой статьи меня сподвигло закрытие довольно известных в UA-IX ресурсов ex.ua и fs.to. Поскольку доблестные правоохранители не озаботились предоставлением какой-либо достойной альтернативы, было принято решение взять процесс в свои руки, к тому же давно хотелось организовать домашнее хранилище/файлопомойку не зависящее от внешних провайдеров. В процессе реализации было перепробовано довольно много разных систем, но в итоге все выстроилось именно так, а не иначе. Мнение субъективное, реализация доступная. Сама статья рассчитана на новичков которым необходимо просто работающее решение, или на тех кто задумался о своем медиасервере, но еще не определился с реализацией.

Итак решение принято, начнем.
Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Views 42K
Comments 20

Особенности разработки Telegram бота с Google API в Docker

JavaScript *Node.JS *Google API *
Коротко о боте: получает список YouTube-каналов пользователя и уведомляет о новых видео с возможностью напомнить о нем позже.

В статье расскажу об особенностях написания этого бота и взаимодействия с Google API. Я люблю краткость, поэтому в статье будет мало «воды».

На какие вопросы ответит статья:

  • Где взять внешний адрес сайта для Webhook
  • Где взять HTTPS-сертификат как его использовать, чтобы Telegram ему доверял
  • Как передавать данные и обрабатывать нажатия на Inline-кнопки
  • Как получить вечный OAuth токен для Google API
  • Как передать данные пользователя через OAuth callback url
  • Как получить бесплатный домен 3 уровня

Стэк:

  1. Back-end: Node.js + Express.js
  2. БД: Mongo.js + mongoose
  3. Пакетный менеджер: Yarn (он действительно быстрый)
  4. Telegram-бот фреймворк: Telegraf
  5. Продакшн: Docker + Docker Compose + Vscale.io
Читать дальше →
Total votes 34: ↑30 and ↓4 +26
Views 23K
Comments 33

Как тестировать контейнеры RoR с GitLab CI в контейнере

IT systems testing *Version control systems *Ruby on Rails *
Чем хорош GitLab, так это тем, что будучи по габаритам слоном в посудной лавке, он умеет аккуратно устанавливаться и почти всегда работает с коробки. Но плохо умеет восстанавливаться и заботиться о себе, когда очень прямые руки вроде моих нарушают привычное ему окружение. Не буду углубляться в то, как мне удавалось убить его до состояния, когда даже удаление и установка с нуля не помогает, но во избежания очередной бесконечной эпопеи с дебагом и переустановкой сервера я вынес все это дело в Docker контейнер. Удобно — на рабочей машине нет миллиона зависимостей, примонтировал директории для репозиториев, логов и базы данных и все работает. Восстановление — пересоздать контейнер и скормить бэкап (кстати, не забудьте проверить свои бэкапы, как говорит опыт GitLab, это не лишнее).

С другой стороны, есть разрабатываемое Rails приложение, которое на реальной машине держит только код; Rails, gems, и все остальное покоится в Docker контейнере. Для своей работы оно использует Redis и Postgres, каждый находится в своем контейнере. Для каждого контейнера примонтирована директория, чтобы важные для приложения данные не оставались внутри.



Задача в том, чтобы Gitlab CI нормально отработал. Вроде все просто, но — он сам находится в контейнере.
И как же нам быть?
Total votes 8: ↑8 and ↓0 +8
Views 4.4K
Comments 2

Полная автоматизация «development» среды с помощью docker-compose

Website development *IT Standards *
Tutorial

В этой статье мы поделимся опытом автоматизации запуска, тестирования и конфигурации больших проектов с использованием docker-compose. Несколько простых изменений могут помочь Вашей команде быть более эффективной и тратить время на важные, а не на рутинные задачи.


Docker в 2017


На конференции Dockercon 2016 CEO компании Docker рассказал, что количество приложений, которые запускаются в Docker выросло на 3100% за последние два года. Боле 460 тысяч приложений по всему миру запускаются в Docker. Это невероятно!


Если вы все еще не используете Docker, я бы посоветовал почитать отличную статью об использовании Docker во всем мире. Docker полностью изменил то, как мы пишем приложения и стал неотъемлемой частью для разработчиков и DevOps команд. В этой статье мы полагаем, что вы уже знакомы с Docker и хотим дать вам еще одну серьезную причину продолжать использовать его.

Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 144K
Comments 53

Визуализация атак на базе ELK (elasticsearch, kibana, logstash)

*nix *Server Administration *
Доброго времени суток. В процессе обслуживания большого количества серверов возникает необходимость централизации управления всем зоопарком машин, а так же централизованный сбор логов и аналитика логов на предмет выявления аномалий, ошибок и общей статистики.

В качестве централизованного сбора логов используется rsyslog, а для структурирования и визуализации elasticsearch + kibana. Все бы ничего, но когда количество подключенных машин разрастается, то данных настолько много, что уходит (уходило) большое количество времени на их обработку и анализ. Наряду с другими интересными штуками всегда хотелось организовать свой центр безопасности. Этакая мультимониторная статистика с картами, графиками и прочим.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views 21K
Comments 6

Запускаем свой блог на Ghost с помощью docker-compose

Hosting Server Administration *DevOps *
Tutorial

Ghost + Docker
Ghost это очень мощная и в то же время лаконичная платформа для блогинга, а docker-compose прекрасный инструмент для установки и конфигурирования программ с помощью одного .yml файла. В этой статьей я хочу коротко рассказать о том как мы быстро настроили блог для нашего проекта с помощью docker-compose.


Начнем!

Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Views 5.6K
Comments 6