Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Грибные блоки - красочная головоломка, в которой вам предстоит передвигать блоки и заполнять ряды, чтобы собирать грибочки в корзину! Попробуйте продержаться как можно дольше!

Грибные блоки

Головоломки, Расслабляющая, Пазлы

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
5
user10437017
4 месяца назад

Почему Docker стал стандартом в IT?⁠⁠

Ещё несколько лет назад развернуть проект на новом сервере было целым квестом: настройка окружения, зависимости, конфликты версий… Сегодня всё это решается одной командой в Docker. Почему контейнеризация стала стандартом и как она изменила IT?

1. "Работает у меня" больше не оправдание

Docker убирает проблему несовместимости окружений. Разработчик может развернуть приложение в контейнере, и оно будет работать одинаково на локальном ПК, тестовом сервере и в проде.
✔ Нет больше "у меня работает, а у тебя — нет".
✔ Конфигурация проекта хранится в Dockerfile, а не в миллионах инструкций.
✔ Запускается одной командой — docker compose up.

2. Изолированность и безопасность

Каждое приложение запускается в своём контейнере. Если что-то пойдёт не так, оно не затронет другие сервисы.
✔ Конфликты зависимостей между проектами больше не проблема.
✔ Можно ограничивать доступ контейнеров к ресурсам.
✔ Легче откатиться, если что-то сломалось.

3. Быстрое развертывание

Раньше новый сервер приходилось настраивать вручную. Сейчас:

  1. Копируешь репозиторий.

  2. Запускаешь docker compose up.

  3. Всё работает — база данных, API, фронтенд, кеширование.

Для DevOps-инженеров это ключевой инструмент автоматизации, который делает деплой в разы быстрее.

4. Оптимизация ресурсов

В отличие от виртуальных машин, Docker использует общую ОС и не создаёт отдельный образ для каждого сервиса.
✔ Легче масштабировать проекты.
✔ Можно запускать больше сервисов на одном сервере.
✔ Быстрее стартует, чем виртуальная машина.

5. Работает везде: от локального ПК до облака

Docker стал стандартом не только в разработке, но и в облачных сервисах. Kubernetes, AWS, Google Cloud, Azure — всё это завязано на контейнеризацию.

Вывод

Docker стал не просто удобным инструментом, а обязательным навыком для разработчиков и DevOps-инженеров. Он решает проблему совместимости, ускоряет развертывание и упрощает поддержку инфраструктуры. Если ты ещё не освоил Docker — самое время начать.

Показать полностью
[моё] Инженер Linux DevOps Докер IT Программирование Текст
8
724
imctobitch
imctobitch
Норм автор
IT-юмор
Серия I'm CTO, bitch
4 месяца назад

Странные вопросы в рабочем чате⁠⁠

Странные вопросы в рабочем чате I`m CTO bitch, Скриншот, IT юмор, DevOps, Пиво, Голубь, Странности, Офисные будни, Чат
Странные вопросы в рабочем чате I`m CTO bitch, Скриншот, IT юмор, DevOps, Пиво, Голубь, Странности, Офисные будни, Чат

🐧 Телеграм-канал

[моё] I`m CTO bitch Скриншот IT юмор DevOps Пиво Голубь Странности Офисные будни Чат
37
12
Вопрос из ленты «Эксперты»
SpaceMax
SpaceMax
5 месяцев назад
Спроси Пикабу

Куда идти работать сисадмину?⁠⁠

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

Если кратко, мне 36 лет, проживаю на территории Новой Москвы, работаю системным администраторов около 5 лет, до этого около 8 лет специалистом тех.поддержки у местного провайдера. По зарплате выходит выше средней по городу, но тут не заслуга особых знаний, как я считаю, исключительно удалось устроиться так из-за ряда обстоятельств и нынешнего руководства "которое не шарит за сисадмина", себя считаю больше эникейщиком с синдромом самозванца.

Постоянно пытаюсь найти вариант самообучения чтобы двигаться дальше в развитии, но в виду того что уже появилась семья, дети, работа 5/2 - времени остаётся очень мало, мотивация постоянно падает из-за "тепличных условий" нынешних, а я боюсь что после 40-45 лет если уволюсь я уже толком никому нахрен не буду нужен, так как особых знаний на данной работе не получаю, а если и что-то узнаю то применить их тупо негде и они выветриваются.

Само системное администрирование не особо радует и откровенно надоело, многие советовали перейти в DevOps, но я мельком изучив профессию осознаю, что хоть зарплаты там большие, но и сфера тяжела и не цепляет чем-то интересным для меня, возможно я не прав и здесь есть люди работающие в DevOps (либо схожей сфере) и смогут объяснить в чём я не прав.

Года 3 назад отчаялся настолько, что пошёл на платные курсы в GeekBrains, которые по итогу закончил, смог поднять немного зарплату себе на нынешней работе благодаря этой "бумажке", но особых знаний не получил, шёл изначально там на VR-разработчика, а по итогу закончил на системного администратора хотя им уже работал, так как курс по VR отменили.

Сейчас ничего лучше не придумал как проходить обучение по официальному курсу от Unity Learn (https://learn.unity.com/pathway/vr-development) и чувствую что мне это интересно, но очень много вопросов а посоветоваться не с кем. Мало вакансий в России, не развита сфера, да и понятно что хочется пойти туда где будет не только интересно, но и не будет сильной просадки по зарплате.

Подскажите, кто связан со сферой разработки VR приложений (в гейминг особо не хочется, интересно работать в сфере VR по обучению, медицине или что-то типа того). Либо кто является разработчиком на C# или отдельно в Unity (или C++ и Unreal Engine, но там значительно сложнее вход) насколько сложно влиться будет в профессию в 36 лет?

Либо вы работали или работаете системным администратором и успешно нашли себя в другой смежной сфере и профессии?

Поделитесь пожалуйста вашим мнением и историей, я отчаялся и совершенно не понимаю куда мне податься, чему обучаться и каким образом это сделать, чтобы не остаться невостребованным с приходом более старшего возраста. Буду очень благодарен всем, спасибо. Извините, что особо кратко не получилось и ещё раз спасибо всем, кто найдёт время мне ответить ну или просто напихать в панамку, как это принято на пикабу :)

Показать полностью
[моё] Вопрос Спроси Пикабу Виртуальная реальность Сисадмин DevOps Дистанционное обучение Текст
16
3
Shawurma
Shawurma
5 месяцев назад
Инкогнито

Ну а вдруг⁠⁠

Источник

Ну а вдруг IT, Юмор, IT юмор, Программирование, Программист, DevOps, Linux
[моё] IT Юмор IT юмор Программирование Программист DevOps Linux
2
rabota.pikabu
rabota.pikabu
7 месяцев назад
Пикабу Работа
Серия Вакансии в IT

Вакансия DevOps Engineer в Спортс’‘, Удаленно⁠⁠

Опыт работы: от 1 до 3 лет

Другие вакансии от Спортс’‘

Ваши задачи:

  • Поддерживать работоспособность проекта: мониторить нагрузки, масштабировать k8s-кластеры, базы данных и другие компоненты инфраструктуры.

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

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

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

Требования:

  • У тебя есть опыт работы с большей частью вышеописанных технологий.

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

  • Ты умеешь настраивать и развивать сложные CI/CD сценарии.

  • Понимаешь как работают принципы IaC и применяешь их в работе.

ОТКЛИКНУТЬСЯ →

Больше вакансий по вашим предпочтениям ищите на сайте Пикабу Работа.

Показать полностью
[моё] Вакансии Свежие вакансии Пикабу Вакансии Работа Карьера Поиск работы Собеседование Профессия Зарплата Сотрудники Регионы Россия Удаленная работа DevOps Программист Текст
1
Derpt
7 месяцев назад
Лига программистов

Расскажите можно ли устроится айтишником в СИБУР после университета?⁠⁠

Интересует мнение тех кто работал в этой компании. Я уже получил высшее образование, сходил на срочку и имею небольшой опыт работы.

Обучают ли они молодых специалистов в сфере IT?

Сибур IT DevOps Программист Текст
11
3
pytker
7 месяцев назад
Лига Devops

Очередной пайплайн сборки для вашего приложения⁠⁠

Статья была написана в январе 2023 и выложена на сайте которого уже нет. Дабы она не канула в лету выкладываю ее здесь.

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

Шаги сборки


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

  • Получение кода;

  • Запуск тестов;

  • Статический анализ кода;

  • Сборка кода;

  • Сборка докер образа:

  • Деплой деплой образа в registry;

  • Деплой приложения на тестовую среду;

  • Запуск интеграционных тестов;

  • Запуск нагрузочного тестирования;

  • Запуск любых дополнительных проверок которые вы посчитаете нужными;

  • Деплой на прод.

Инструменты


Для реализации пайплайна будут использоваться следующие инструменты:

  • Jenkins - для запуска пайплайна;

    • generic webhook trigger plugin

    • pipeline plugin

    • ssh agent plugin

    • sonarqube scanner plugin

  • Harbor - для хранения docker образов;

  • Sonarqube - для статического анализа кода;

  • Github - для хранения исходников.

В статье не описано развертывание jenkins, harbor, SonarQube.

Пайплайн будет написан при помощи jenkins declarative pipeline.

Сборка будет производится на примере node_exporter

Требования к jenkins нодам

На нодах jenkins должны быть установлены:

  • git;

  • docker;

  • java.

Получение кода.

Для доступа к репозиторию нужно сгенерировать ssh ключ:

  • Генерируем ключи;

  • Заходим в Настроить jenkins > Manage credentials;

  • Выбираем где будет хранится токен. У нас только 1 вариант. System > Global credentials (unrestricted)

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
  • Нажимаем Add credentials и выбираем ssh username with ptivate key. Вводим ключ  id и описание. В id лучше вводить что то осмысленное;

  • Добавляем публичный ключ в репозиторий.

На данном этапе получаем исходники из репозитория. Также определяем переменные для дальнейшего использования.

  • sonarProject = код проекта в sonarqube;

  • sonarProjectName = название проекта в sonarqube;

  • gitCommitHash - короткий хэш коммита для использования в качестве версии докер образа;

  • GIT_REPO_BRANCH и GIT_REPO_URL определяются в параметрах запуска.

  • credentialsId: 'jenkins-jenkins' наш ssh ключ созданный выше.

stages {

stage('Get sources') {  //название этапа пайплайна

steps {

cleanWs() // очистка каталога сборки

checkout([$class: 'GitSCM', branches: [[name: params.GIT_REPO_BRANCH]], extensions: [], userRemoteConfigs: [[credentialsId: 'jenkins-jenkins', url: params.GIT_REPO_URL]]])  // клонирование репозитория


script {

// получение информации из git для дальнейшего использования при сборке и в sonarqube

gitRepoPath = params.GIT_REPO_URL.substring(params.GIT_REPO_URL.lastIndexOf(":") + 1)

sonarProject = gitRepoPath.minus(".git").minus("-").minus("_").minus("/")

sonarProjectName = gitRepoPath.minus(".git")

gitCommitHash = sh (script: "git log -n 1 --pretty=format:'%h'", returnStdout: true)

currentBuild.displayName = sonarProjectName + " " + params.GIT_REPO_BRANCH

currentBuild.description = sonarProjectName + " " + params.GIT_REPO_BRANCH + " " + gitCommitHash

}

}

}

Запуск тестов.


На данном этапе запускаются юнит тесты.

  • when  выполнение только при определенном значении переменной которая задается в параметрах запуска;

  • beforeAgent true проверка условия запуска перед загрузкой образа агента;

  • image params.BUILDER_IMAGE - контейнер в котором будут запускатся тесты, задается в параметрах;

  • agent запуск этапа в докер контейнере;

  • args  '-v /home/jenkins/.cache:/home/jenkins/.cache ' монтируется каталог с библиотеками go, для того чтобы не скачивать их при повторном запуске;

  • reuseNode true - запуск на той же ноде, на которой запускались предыдущие шаги.

stage ('Run tests') {

when { 

environment name: 'RUN_TESTS',

value: 'true'

beforeAgent true

}

agent { 

docker {

image params.BUILDER_IMAGE

args  '-v /home/jenkins/.cache:/home/jenkins/.cache '

registryCredentialsId 'docker-registry'

registryUrl "https://harbor.iops-test.com"

reuseNode true

}

}

steps {

sh """

make test

"""

}

}


Тесты на данном этапе запускаются в докер контейнере. Делается это для того чтобы не держать различные инструменты сборки всевозможных версий на одной ноде. В качестве registry используется harbor.


Статический анализ кода.

На данном этапе будет производится статический анализ кода, а также его соответствие параметрам которые мы определим в sonarqube.

После сканирования кода обработка результатов на стороне сервера sonarqube занимает некоторое время. Обработка может длится довольно долго при большом объеме кода. Так же webhook от сервера sonarqube с результатами  может провалится. Поэтому нужно всегда выставить таймаут.

Настройка SonarQube quality gate

  • Заходим в SonarQube;

  • В верхней панели навигации переходим на вкладку quality gate;

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
  • Нажимаем Create;

  • Вводим название нашего qg и нажимаем save;

  • В открывшемся окне нажимаем add condition и вводим интересующие нас критерии. При несоответствии этим критериям qg будет считаться не пройденным и наш пайплайн завершится с ошибкой.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
  • Нажимаем кнопку set as default. Теперь все проекты будут по умолчанию привязаны к этому qg

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

Настройка SonarQube webhook

Для того чтобы jenkins мог получать результаты проверки quality gate нужно настроить webhook.

На стороне jenkins:

  • Добавляем токен в credentials c типом secret text, как это было описано выше. токен вводим произвольный;

  • Заходим в Настроить jenkins > Конфигурация системы;

  • В разделе SonarQube servers наш токен в Webhook Secret;

  • Остальные параметры также должны быть заполнены. Server authentication token - берется из настроек пользователя SonarQube;

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

На стороне SonarQube:

  • Заходим в administration > configurations > webhooks

  • Нажимаем Create;

  • Вводим название, адрес jenkins, токен который мы указывали как Webhook Secret выше. адрес в формате  <jenkins>/sonarqube-webhook/

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

stage ('Run sonar checks') {

when {

environment name: 'SONAR_CHECKS',

value: 'true'

beforeAgent true

}

agent {

docker {

image 'sonarsource/sonar-scanner-cli'

args  '--rm  '

reuseNode true

}

}

steps{

script{

withSonarQubeEnv('sonar-server') {


sh """

curl -u ${SONAR_AUTH_TOKEN}:  ${SONAR_HOST_URL}/api/projects/create -d 'project=${sonarProject}&name=${sonarProjectName}' # Создаем проект, если его еще нет

/opt/sonar-scanner/bin/sonar-scanner \ # запуск сканера

-Dsonar.projectKey=${sonarProject} \

-Dsonar.sources=./

"""

}

timeout(time: 5, unit: 'MINUTES') { // таймаут на ожидание результатов

def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv

if (qg.status != 'OK') { // завершение пайплайна при непрохождении qualitygate

error "Pipeline aborted due to quality gate failure: ${qg.status}"

}

}

}

}

}

Сборка кода.


На данном этапе собираем наше приложение. Здесь все аналогично этапу запуски тестов.


stage ('build service') {

when {

environment name: 'BUILD_SERVICE',

value: 'true'

beforeAgent true

}

agent {

docker {

image params.BUILDER_IMAGE

args  '-v /home/jenkins/.cache:/home/jenkins/.cache '

registryCredentialsId 'docker-registry'

registryUrl "https://harbor.iops-test.com"

reuseNode true

}

}

steps {

sh """

make build

"""

}

}

Сборка докер образа.

Это последний этап сборки docker образа и его деплоя в harbor.

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

stage ('build docker image') {

when {

environment name: 'BUILD_IMAGE',

value: 'true'

beforeAgent true

}

steps {

script {

docker.withRegistry('https://harbor.iops-test.com/', 'docker-registry') {

sh """#!/bin/bash

docker build -t harbor.iops-test.com/internal/sgapp:${gitCommitHash} .

docker push harbor.iops-test.com/internal/sgapp:${gitCommitHash}

docker rmi harbor.iops-test.com/internal/sgapp:${gitCommitHash}

"""

}

} 

}

}

Как результат мы имеем собранный образ в нашем registry. Там же его можно проверить на уязвимости.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

Для примера взят другой образ.

Создание пайплайна

  • Создаем item c типом pipeline.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
  • добавляем наш jenkinsfile c пайплайном который лежит в git.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

сохраняем.

Запуск пайплайна


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

При втором запуске появляются параметры выполнения. Заполняем их.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост
Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

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


слева на экране мы видимо историю сборок.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

щелкнув по значку SonarQube  перейдем в проект  и увидим результаты проверки.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

Но все таки давайте проверим что наш пайплайн работает полностью. Для этого напишем простое приложение и попробуем его собрать. Так же, вероятно вам не захочется каждый раз запускать руками сборку. Добавим автосборку по пушу. Для этого будем использовать generic webhook plugin.

Для создания вебхука который будет запускать наш пайплайн зайдем в настройки репозитория с нашим приложением - https://github.com/kilin-s/sgapp/.

  • Заходим в настройки settings > webhook > add webhook;

  • Добавляем ссылку на jenkins в формате <jenkins>/generic-webhook-trigger/invoke?token=abc123

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

Кроме доступа к jenkins По токену будет определятся пайплайн для запуска.

В нашем пайплайне добавляем следующие строки

triggers {

GenericTrigger(

genericVariables: [

[key: 'GIT_REPO_URL', value: '$.repository.ssh_url'],

[key: 'GIT_REPO_BRANCH', value: '$.ref']

],

causeString: 'Triggered on $ref',

tokenCredentialId: 'go-build-common-hook',

printContributedVariables: true,

printPostContent: false,

silentResponse: false,

shouldNotFlattern: false

)

}

  • tokenCredentialId - токен используемый дя запуска, берется из credentials;

  • genericVariables - запись значений полей из json запроса в параметры запуска.

Для того чтобы webhook начал работать пайплайн нужно запустить еще раз.

Сделаем еще 1 коммит в наш репозиторий для проверки запуска и сборки.

Очередной пайплайн сборки для вашего приложения Гайд, Технологии, DevOps, Jenkins, Github, IT, Длиннопост

Пайплайн завершился успешно.

Заключение.

Данный пайплайн можно использовать как отправную точку для построения своего ci.

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

ссылки:

sonarqube jenkins extension

репозиторий собираемого приложения

репозиторий с пайплайном

jenkins pipeline syntax

node exporter

harbor

Показать полностью 18
[моё] Гайд Технологии DevOps Jenkins Github IT Длиннопост
11
2
Аноним
Аноним
8 месяцев назад

На словах-то⁠⁠

На словах сеньор толстой а на деле джун простой!

[моё] IT IT юмор Программист Странный юмор DevOps Разработчики Админ QA Текст
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии