Рубрика «docker» - 10

Учимся разворачивать микросервисы. Часть 1. Spring Boot и Docker - 1

Привет.

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

Изначально я разбил создание проекта на несколько шагов:

  1. Создать два сервиса — 'бекенд' (backend) и 'шлюз' (gateway), упаковать их в docker-образы и настроить их совместную работу

    Ключевые слова: Java 11, Spring Boot, Docker, image optimization

  2. Написать Kubernetes конфигурацию и задеплоить систему в Google Kubernetes Engine

    Ключевые слова: Kubernetes, GKE, resource management, autoscaling, secrets

  3. Настройка Jenkins и пайплайна для автоматической доставки кода в кластер

    Ключевые слова: Jenkins configuration, plugins, separate configs repository

  4. Создание чарта с помощью Helm 3 для разворачивания кластера в одну команду

    Ключевые слова: Helm 3, chart deployment

Каждому шагу я планирую посвятить отдельную статью.

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

Читать полностью »

Пролог

По сети сейчас гуляет видео — как автопилот Теслы видит дорогу.
У меня давно чесались руки транслировать видео, обогащенное детектором, да и в реальном времени.

Видео с облачным детектором объектов на Raspberry Pi - 1

Проблема в том, что транслировать видео я хочу с Raspberry, а производительность нейросетевого детектора на ней оставляет желать лучшего.
Читать полностью »

Салют! В преддверии старта нового набора на курс «DevOps практики и инструменты» подготовили для вас перевод интересного материала.


Эта статья — краткое введение в Loki. Проект Loki поддерживается Grafana и направлен на централизованный сбор логов (с серверов или контейнеров).

Основным источником вдохновения для Loki был Prometheus с идеей применения его подходов к управлению логами:

  • использование меток (labels) для хранения данных
  • потребление малого количества ресурсов

Мы еще вернемся к принципам работы Prometheus и приведем несколько примеров его использования в контексте Kubernetes.

Несколько слов о Prometheus

Чтобы полностью понять, как работает Loki, важно сделать шаг назад и немного вспомнить Prometheus.

Одной из отличительных характеристик Prometheus является извлечение метрик из точек сбора (через экспортеры) и сохранение их в TSDB (Time Series Data Base, база данных временных рядов) с добавлением метаданных в виде меток.Читать полностью »

Каждые несколько лет в индустрии разработки ПО происходит смена парадигмы. Одним из таких явлений можно признать рост интереса к концепции микросервисов. Хотя микросервисы — это технология не самая новая, лишь в последнее время её популярность буквально взлетела до небес.

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

Docker Compose: упрощение работы с использованием Makefile - 1

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

В начале моего изучения Docker и Kubernetes мне нехватало простого и понятного примера, с которым можно было бы «поиграться», изучая особенности этой среды. Этой статьей хотелось бы закрыть этот пробел. Здесь я расскажу об интеграции .NET Core приложения с Telegraf и Grafana, о том, как шлются метрики и как деплоить в Docker и Kubernetes. Примеры в статье расчитаны на тех, кто начинает изучать данную область, но базовыми понятиями желательно обладать, чтобы полностью понять статью. В ней описано, как развернуть контейнер, в котором есть StatsD, InfluxDB и Grafana, а также, как отправлять метрики различных типов из приложения.
Читать полностью »

Alpine собирает Docker билды под Python в 50 раз медленней, а образы в 2 раза тяжелей - 1

Alpine Linux — часто рекомендованный как базовый образ для Docker`а. Вам говорят, что использование Alpine сделает ваши билды меньше, а процесс сборки быстрей.

Но если вы используете Alpine Linux для Python приложений, то он:

  • Делает ваши билды намного медленней
  • Делает ваши образы больше
  • Тратит ваше время
  • И в итоге может стать причиной ошибок в рантайме

Читать полностью »

Docker Tips: Очистите свою машину от хлама - 1

Привет! Представляю вашему вниманию перевод статьи "Docker Tips: Clean Up Your Local Machine" автора Luc Juggery.

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

Читать полностью »

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

Методики уменьшения размеров образов Docker - 1

Автор статьи, перевод которой мы сегодня публикуем, хочет разобрать основные факторы, влияющие на размеры контейнеров Docker. Он, кроме того, собирается поделиться рекомендациями по уменьшению размеров контейнеров.
Читать полностью »

image

В этой статье я хотел бы рассказать о своем хобби-проекте поиска и классификации объявлений о сдаче квартир из социальной сети ВКонтакте и опыте его переезда на k8s.

Читать полностью »

Всем привет! В преддверии старта курсов «Framework Laravel» и «Backend-разработчик на PHP», продолжаем делиться интересным материалом по теме. Поехали.


За последние несколько лет популярность Laravel резко возросла. Сообщество Laravel даже придерживается мнения, что Laravel сделал процесс работы на PHP приятнее, по сравнению с той болью, которая была раньше. В Laravel 6 есть несколько новых интересных функций. Получение супер-масштабируемого рабочего URL-адреса для вашего приложения занимает часы, если не дни. А создание чего-то вроде Kubernetes – это тяжелейшая задача. Именно в таких случаях Google Cloud Run выступает в лучшем свете, ведь с его помощью вы можете получить рабочий HTTPs URL-адрес для любого из ваших контейнерных приложений в считанные минуты.

Google Cloud Run является бессерверным и полностью управляется Google. Вы получаете супер-масштабирование, посекундную оплату, HTTPs URL и собственный маппинг домена.

Если вы хотите запустить stateless контейнеры, Cloud run – самый простой способ это сделать. В этой статья я подробно расскажу, как заставить ваше приложение Laravel 6 работать на Google cloud run с Continous Integration (CI).Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js