Pull to refresh
3
0
Send message

Запуск werf в GitLab CI/CD без Docker-сервера

Reading time6 min
Views6.6K

В этой статье рассмотрен новый экспериментальный режим работы werf — Open Source-утилиты для сборки приложений и их деплоя в Kubernetes, — в котором не требуется наличие Docker-сервера. Мы покажем, как убедиться, что это режим будет работать на вашей машине, соберем первый образ и научимся использовать Kubernetes executor для автоматизации сборки в GitLab CI/CD.

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments7

Как разработчику применять принципы лидерства Amazon

Reading time9 min
Views13K

Добрый день, меня зовут Павел Поляков, я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в ?? Германии. А еще я автор телеграм канала Хороший разработчик знает, где рассказываю обо всем, что обычно знает хороший разработчик.

Сегодня хочу поговорить о принципах лидерства в Amazon. Это перевод оригинальной статьи.

Amazon является одной из самых больших и дорогих технологических компаний в мире. На Amazon работают десятки тысяч разработчиков. Все они получают хорошую компенсацию от 150.000$ в год и выше. Удивительно, но вся внутренняя политика Amazon основывается всего лишь на 16 принципах. 16 коротких фраз, которые определяют как ведет себя хороший сотрудник в Amazon.

Давайте посмотрим что это за принципы и как они помогают разработчикам в Amazon быть наиболее продуктивными.

Читать далее
Total votes 16: ↑10 and ↓6+7
Comments25

Впечатления о Golang от разработчика на PHP

Reading time4 min
Views23K

Привет! Меня зовут Андрей Литвиненко и я имею почти 15-летний опыт разработки на PHP. Уже около трех месяцев я активно пишу на Go и хочу поделиться наблюдениями, которые отметил для себя. Возможно, этот текст будет полезен тем, кто сейчас знаком с PHP и подумывает познакомиться с Go.

Читать далее
Total votes 38: ↑30 and ↓8+26
Comments94

Толстые проблемы интеграций и их тонкие решения

Reading time4 min
Views2.3K

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

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

Читать далее
Total votes 2: ↑1 and ↓10
Comments4

Как с помощью Terraform создавать различные окружения

Reading time5 min
Views6K

Применяя Terraform, действуйте по принципу “не повторяйся” (DRY) при создании инфраструктуры в различных средах/регионах/облачных провайдерах

Terraform упростил способ организации инфраструктуры в облаке и управления ею в виде кода. Но лучшие практики, такие как разделение инфраструктуры в соответствии с несколькими типами окружения (staging / QA / production. стейджинг / тестирование и обеспечение качества / продакшн), не меняются. Возможно, для потребностей вашего бизнеса, необходимо распространить инфраструктуру на несколько географических областей. Или вы задумываетесь о применении стратегии мультиоблачных вычислений.

Для решения такой ситуации надо суметь прописать несколько различных типов используемого окружения в коде. Задача состоит в том, чтобы максимально факторизировать код в соответствии с принципом DRY (Don't Repeat Yourself. Не повторяйся). Существует множество способов добиться этого с помощью Terraform.

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

Читать далее
Total votes 5: ↑2 and ↓30
Comments1

Меняем стек с PHP на Golang, или Разработка под Kubernetes

Reading time12 min
Views14K

Привет, Хабр!

На связи Паша Емельянов, тимлид в AGIMA. В этой статье расскажу, как на одном из проектов мы переписывали старый функционал, разработанный когда-то на PHP, на Golang, с какими проблемами столкнулись и как их решали. Статья будет интересна и начинающим, и миддлам, а еще системным архитекторам, т. к. здесь затронем как инфраструктурные вопросы, так и вопросы реализации конкретного сервиса под потребности бизнес-заказчика.

Читать далее
Total votes 26: ↑19 and ↓7+12
Comments13

Разработка системы заметок с нуля. Часть 2: REST API для RESTful API Service + JWT + Swagger

Reading time9 min
Views12K

Продолжаем серию материалов про создание системы заметок. В этой части мы спроектируем и разработаем RESTful API Service на Golang cо Swagger и авторизацией. Будет много кода, ещё больше рефакторинга и даже немного интеграционных тестов.

Подробности в видео и текстовой расшифровке под ним.

В первой части мы спроектировали систему и посмотрели, какие сервисы требуются для построения микросервисной архитектуры.

Читать далее
Total votes 5: ↑4 and ↓1+4
Comments4

Разработка системы заметок с нуля. Часть 1: проектирование микросервисной архитектуры

Reading time4 min
Views13K

Данный проект рассматривается как pet-project. Любую критику и советы готов увидеть в комментариях.

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

Репозиторий с исходным кодом: https://github.com/theartofdevel/notes_system

Видео версия: https://www.youtube.com/watch?v=Txi95RQPRP0

Под катом текстовая расшифровка.

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments7

Настройка инструментов стандартной библиотеки Golang для production

Reading time14 min
Views9K

Привет, Хабр, меня зовут Богданов Илья, я работаю ведущим инженером в команде веб-разработки. Сегодня я вам расскажу, как настроить стандартную библиотеку Golang так, чтобы избежать неожиданных ошибок в production.

Моя статья ориентирована в основном на начинающих разработчиков, но ветераны Go тоже, вероятно, смогут узнать что-то новое. Коротко о чем будет статья:

о том, как не ловить ошибки соединения с базой данных на production;
http.Client и что не так с клиентом по умолчанию;
http.Server и его подводные камни;
и, наконец, рассмотрим пару занятных проблем, не связанных напрямую с настройкой стандартной библиотеки.

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments2

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

Reading time7 min
Views6.5K

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


Многие могут предположить, что нюансы необходимо было знать 50 лет назад, а сейчас можно пользоваться готовыми пакетами и функциями и не погружаться в детали. Однако, это далеко не так. Равно как никто не отменял важность понимания представления методов хранения данных в памяти и их обработки в процессоре.


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


Является продолжением серии предыдущих публикаций.

Читать дальше →
Total votes 38: ↑37 and ↓1+50
Comments2

Wireshark для всех. Лайфхаки на каждый день

Reading time7 min
Views102K

Пакет с сертификатами от Хабра

Wireshark — очень известная программа для захвата и анализа сетевого трафика, незаменимый инструмент хакера, сетевого инженера, программиста, специалиста по безопасности. Да вообще любого любознательного человека, который хочет детально изучить трафик со своего или чужого мобильного телефона, фитнес-браслета, телевизора.
Читать дальше →
Total votes 44: ↑42 and ↓2+52
Comments16

Заметки о Unix: одновременное редактирование нескольких файлов в Vim

Reading time4 min
Views7.5K
Недавно мы завершили перевод последней нашей машины на новый клиент для Let’s Encrypt. В ходе работы нужно было поменять пути к выгружаемым TLS-сертификатам во всех конфигурационных файлах, где они использовались. На многих компьютерах был лишь один конфигурационный файл, но на некоторых из наших Apache-серверов пути к TLS-сертификатам имеются во множестве файлов. Поэтому я и заинтересовался вопросом о том, как, пользуясь Vim, одновременно вносить одни и те же изменения в несколько файлов. Оказалось, что Vim поддерживает такую возможность уже очень давно, причём сделать это можно несколькими способами. Некоторые из этих способов основаны на том, что я назвал бы странностью Vim. Кто-то, возможно, назовёт это архитектурной особенностью данного редактора.


Читать дальше →
Total votes 23: ↑22 and ↓1+32
Comments1

Systemd для продолжающих. Part 2 — Триггеры на различные события

Reading time5 min
Views16K

Продолжаем цикл популярного балета, под названием «Systemd для продолжающих». В этой части, являющейся логическим продолжением предыдущей, поговорим о различных триггерах не связанных со временем. Эта часть будет не такой объёмной, но, не менее интересной. Вперёд!

Попробовать стащить сыр!
Total votes 48: ↑48 and ↓0+48
Comments31

Сервер Prometheus и TLS

Reading time5 min
Views12K


Prometheus теперь поддерживает TLS и базовую аутентификацию для HTTP эндпоинтов.


Скрейпинг таргетов через HTTPS вместо HTTP поддерживается уже давно. Метрики можно собирать с поддержкой HTTPS, аутентификации по клиентским сертификатам и базовой аутентификации.


В прошлом году Node Exporter стал первым официальным экспортером, который нативно предоставляет метрики по HTTPS. Все подробности в предыдущем посте. На этой неделе (прим. переводчика: статья вышла 6 января 2021 года) мы встречаем Prometheus 2.24.0. В последнее время Prometheus радует нас крутыми новшествами — это и TLS, и backfilling (обратное заполнение, тоже в версии 2.24) и даже переход на современный пользовательский интерфейс на React.


В этом посте мы расскажем о TLS и базовой аутентификации.

Читать дальше →
Total votes 18: ↑16 and ↓2+19
Comments1

Построение сетевой инфраструктуры на базе Nebula. Часть 1 — задачи и решения

Reading time8 min
Views6.6K


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

Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments1

Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям

Reading time10 min
Views36K

Всем привет! В последнее время я вплотную занимаюсь исследованием возможностей systemd и решил поделиться результатом исследований с сообществом, в виде небольшого (или большого, как пойдёт ;-) цикла статей. Итак первым номером нашей программы будет запуск юнитов по различным событиям происходящим во время работы ОС. В качестве исследовательской платформы будет выступать Manjaro Linux c systemd v247.2. И... да. Некоторые события, вынудили меня написать внеочередную статью, которая «взлетела на вершину хит-парада», а опрос показал, что тема актуальна и вызывает интерес, так что погнали!

Нырнуть в кроличью нору!
Total votes 62: ↑60 and ↓2+68
Comments23

Шпаргалка полезных команд GDB

Reading time3 min
Views46K

Для кого она нужна?


1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments11

Xудшие практики для Ansible. Георгий Шуклин

Reading time20 min
Views22K


Приветствую всех! Меня зовут Георгий. Я работаю в компании servers.com. Я пришел рассказать про Ansible: про хороший Ansible и про плохой Ansible в основном, т. е. про то, как люди могут плохо делать на Ansible.

Total votes 25: ↑22 and ↓3+27
Comments31

Использование journalctl для просмотра и анализа логов: подробный гайд

Reading time6 min
Views175K


Journalctl — отличный инструмент для анализа логов, обычно один из первых с которым знакомятся начинающие администраторы linux систем. Встроенные возможности ротации, богатые возможности фильтрации и возможность просматривать логи всех systemd unit-сервисов одним инструментом очень удобны и заметно облегчают работу системным администраторам.

Эта статья рассматривает основные возможности утилиты journalctl и различные варианты ее применения. С помощью journalctl можно просматривать логи системы, чтобы решить возникшие проблемы на рабочей станции или сервере использующие дистрибутив linux с демоном инициализации systemd, де-факто уже ставшим стандартом в современных Linux-системах, например: RHEL, CentOS, Fedora, Debian и многих других.

Существует мнение, что systemd не так уж и хорош — он нагружает систему и это все еще предмет для споров на сегодняшний день, но нельзя отрицать, что он предоставляет прекрасный набор инструментов для управления системой и поиска проблем. Представьте, что вам приходится иметь дело с проблемным сервером, который даже не загружается — в таком случае можно загрузиться с live-дистрибутива, смонтировать системный раздел и просмотреть логи systemd, чтобы понять, в чем проблема.
Читать дальше →
Total votes 43: ↑41 and ↓2+60
Comments25

Настройка ядра Linux для GlusterFS

Reading time6 min
Views11K
Перевод статьи подготовлен в преддверии старта курса «Administrator Linux. Professional».





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

Такая необходимость возникает редко. На большинстве нагрузок ядро работает очень хорошо. Хотя есть и обратная сторона. Исторически ядро Linux охотно потребляет много памяти, если ему предоставить такую возможность, в том числе и для кэширования в качестве основного способа повышения производительности.
Читать дальше →
Total votes 7: ↑6 and ↓1+8
Comments3
1
23 ...

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity