Как стать автором
Обновить
0
Вячеслав @Slvck5477read⁠-⁠only

Backend developer

Отправить сообщение

Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)

Уровень сложностиСложный
Время на прочтение27 мин
Количество просмотров8.5K

Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)


Схема развертывания в Kubernetes


Первая часть шаблона посвящена HTTP серверу.


Вторая часть шаблона посвящена прототипированию REST API.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Четвертая часть будет посвящена развертыванию в Kubernetes с Helm chart и настройке Horizontal Autoscaler.


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Для корректного развертывания в Kubernetes, в шаблон пришлось внести изменения:


  • способа конфигурирования — YAML, ENV, Kustomize
  • подхода к логированию — переход на zap
  • способа развертывания схемы БД — переход на liquibase
  • добавление метрик prometheus

Ссылка на новый репозиторий.


Шаблон goapp в репозитории полностью готов к развертыванию в Docker, Docker Compose, Kubernetes (kustomize), Kubernetes (helm).


Настоящая статья не содержит детального описание используемых технологий


Содержание


  1. Изменение подхода к конфигурированию
  2. Добавление метрик prometheus
  3. Изменение подхода к логированию
  4. Развертывание схемы БД
  5. Сборка Docker image
  6. Сборка Docker-Compose
  7. Схема развертывания в Kubernetes
  8. Подготовка YAML для Kubernetes
  9. Kustomization YAML для Kubernetes
  10. Тестирование Kubernetes с kustomize
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Пишем GPT в 60 строк NumPy (часть 1 из 2)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров71K

В этом посте мы начнём реализацию с нуля GPT всего в 60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Всего голосов 96: ↑94 и ↓2+92
Комментарии33

PostgreSQL: настройка и оптимизация производительности. Часть 2

Время на прочтение12 мин
Количество просмотров6.4K

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Код на репите. Механизмы повторного использования кода: от элитного до простого

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров3.6K

Привет! Меня зовут Грант, я .Net-разработчик. Знаете вы это или нет, но ваш код можно переиспользовать: будь то модуль, компонент или архитектура. Одни разработчики делают это осознанно, другие на уровне рефлексов. Повторное использование хорошего кода экономит время и другие ресурсы, позволяет применять лучшие практики на проектах, чтобы в итоге эффективнее решать бизнес-задачи.

Мне стало интересно разобраться, когда возможен code reuse, какие проблемы стоит предусмотреть, и какие ресурсы заложить при реализации проектов. Для этого я проанализировал более 30 источников, в том числе иностранных, и вспомнил свой личный опыт на проектах. Разберу классификации механизмов повторного использования и расскажу о своей, покажу примеры разных масштабов: от уровня нескольких операторов до уровня архитектуры.

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Как ускорить работу PostgreSQL

Время на прочтение10 мин
Количество просмотров21K

В статье рассказываем, как оптимизировать базу данных PostgreSQL на примере Linux на IBM Z. Опираясь на представленные примеры, вы шаг за шагом узнаете, какие опции и параметры конфигурации улучшат установку PostgreSQL с точки зрения:

Читать далее
Всего голосов 19: ↑18 и ↓1+17
Комментарии9

Распределенный SQL: альтернатива шардированию баз данных

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров14K

Шардирование баз данных – это процесс разделения данных на меньшие части, называемые «шарды». Эта техника обычно используется, когда возникает потребность в масштабировании записей. В течение жизненного цикла успешного приложения способность сервера его базы обрабатывать операции записи рано или поздно достигает своего предела. Деление данных на несколько шардов – с размещением каждого на собственном сервере БД – уменьшает нагрузку на отдельные узлы, по сути, повышая записывающую способность базы данных в целом. Этот процесс и является шардингом.

Распределённый SQL представляет новый способ масштабирования реляционных баз данных с помощью полностью автоматизированной и прозрачной для приложений стратегии, подобной шардингу. Распределённые БД SQL изначально спроектированы под практически линейное масштабирование. В текущей статье вы познакомитесь с основами распределённого SQL и узнаете, как начать работу с этими базами данных.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии21

Концепции Rust, которые неплохо бы знать пораньше

Время на прочтение21 мин
Количество просмотров18K

Весь минувший месяц я глаз не мог оторвать от языка программирования Rust, ведь его конёк – создание современных программ, обеспечивающих безопасную работу с памятью. За прошедшие годы появилось несколько языков, которые позиционировались как «инструмент что надо» для написания надёжного бекенд-софта. Постепенно маятник качнулся от Java/C++ к Go и Rust, выстроенных на многолетних разработках по теории языков программирования. Суть – в создании инструментов, которые были бы эффективны именно в наш век.

Читать далее
Всего голосов 53: ↑44 и ↓9+35
Комментарии13

Какой язык программирования выбрать? Часть 1. Rust

Время на прочтение4 мин
Количество просмотров12K

Какой язык программирования выбрать? Открываем серию статей об этом! Наши разработчики будут рассказывать об особенностях, применении, плюсах и минусах языков, которые используются в «Криптоните». Начинаем с Rust: опытом поделится Андрей Чесноков, ведущий системный программист.

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии41

Простейшая нейросеть: еще раз и подробнее

Время на прочтение10 мин
Количество просмотров53K

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

Читать далее
Всего голосов 97: ↑96 и ↓1+95
Комментарии26

Управление архитектурой как кодом (январские тезисы)

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.8K

В последнее время все больше и больше набирает обороты тема "архитектура как код", имея в виду или управление архитектурой систем с помощью кода, или управление кодом архитектуры системы. Есть уже ряд ПО, в том числе Российского. Но не смотря на многочисленные, я бы даже сказал, баталии с авторами в группах Телеграмм, так и не понял, чего же там код и чего же там управление. Все как-то получается рисование диаграмм, описывая их кодом. Ну возможно - с динамической подгрузкой данных.
Вот и решил попробовать изложить свое понятие, что такое "управление архитектурой как кодом".

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии6

Работа с микросервисами через API-gateway

Время на прочтение18 мин
Количество просмотров22K

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

Читать
Всего голосов 9: ↑2 и ↓7-5
Комментарии22

8 книг по PostgreSQL: от баз данных с «нуля» для самоучек до руководства про БД в облаках

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров49K

В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.

Подготовили подборку полезных книг для тех, кто только начал или собирается работать с PostgreSQL. В нее вошли актуальные руководства на русском и английском языках. Если знаете еще одну-две отличных книги, смело рекомендуйте в комментариях.
Читать дальше →
Всего голосов 66: ↑64 и ↓2+62
Комментарии17

Ах, английский! Бессердечная ты…

Время на прочтение16 мин
Количество просмотров23K

И так, вы поняли, что вам пора изучить английский. Вы идёте на всякие там сайты или качаете себе Дуолингву, но понимаете, что всё бесполезно. В очередной раз вы пялитесь в глаза этому зелёному обдолбаному совёнку, и понимаете что всё бесполезно. A bear всё так же ест этот the cheese, а вы всё так же боитесь запостить комментарий на каком-нибудь форуме, потому что вас засмеют.

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

Разрешите объясниться
Всего голосов 38: ↑33 и ↓5+28
Комментарии83

SQL backend или как помочь BI работать с BigData

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.8K

Привет, Хабр! В этом посте мы поговорим о том, как происходит подключение к внешней СУБД для BI-платформы Visiology, а также разберем ситуации, когда это действительно нужно. Под катом — подробный разбор возможностей SQL backend, которым может воспользоваться сегодня фактически каждый пользователь Visiology. Кроме этого мы остановимся на нюансах подключения различных СУБД, а также обсудим, в каких ситуациях можно “сесть на два стула” и получить как скорость расчетов, так и поддержку бигдаты для очень больших объемов данных.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Шпаргалки для data science (для начинающих)

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров9.3K

Подготовил шпаргалки для людей, использующих в своей работе python, sql, git, pandas numpy.

Читать далее
Всего голосов 27: ↑4 и ↓23-19
Комментарии14

Архитектурные шаблоны взаимодействия с базами данных

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров11K

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

Читать далее
Всего голосов 15: ↑9 и ↓6+3
Комментарии5

Как создать микросервис на Rust при помощи gRPC

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров7.2K
image

Введение


В сегодняшнем туториале по Rust мы откроем для себя мир gRPC. Для этого создадим очень простой микросервис с единственной конечной точкой, который будет отзеркаливать то сообщение, что мы ему пошлем. Чтобы протестировать наш микросервис, мы также напишем простой клиент на Rust.

Перед изучением этого поста также будет полезно посмотреть предыдущие публикации автора по Rust:

https://blog.ediri.io/lets-build-a-cli-in-rust
https://blog.ediri.io/how-to-asyncawait-in-rust-an-introduction
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии18

PostgreSQL: настройка и оптимизация производительности. Часть 1

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров16K

Данная статья посвящена способам повышения производительности PostgreSQL и EDB Postgres Advanced Server (EPAS) с 10 по 13 версии. Мы начнём с аппаратного обеспечения и будем двигаться вверх по стеку, оставив напоследок SQL-запросы. 

Читать далее
Всего голосов 21: ↑20 и ↓1+19
Комментарии5

Аутентификация и авторизация в проекте с микросервисной архитектурой: стратегии, практический пример

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров24K

Привет! На связи Олег Казаков из Spectr.  Мы занимаемся разработкой цифровых сервисов, в том числе высоконагруженных систем с микросервисной архитектурой и большим количеством различных интеграций.

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

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии8

Матч Postgres vs Redis — как выбрать правильный инструмент для разных задач

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.8K
image

PostgreSQL и Redis — распространенные СУБД, которые «обросли» аудиторией. Их популярность варьируется от задачи к задаче, а сами они имеют свои сильные и слабые стороны.

Нашим клиентам бесплатно на тест доступны PostgreSQL и Redis по модели DBaaS, поэтому мы решили подробнее рассмотреть эти инструменты с точки зрения надежности, производительности и простоты настройки, а также обсудить тематические кейсы.

Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Пермь, Пермский край, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Middle
PHP
Laravel
PhpUnit
SQL
Docker
Git
Database
OOP
REST
Golang