• Sentry или Kibana для централизированного анализа логов?

    Ответа нет, допишу
    sentry годится для анализа стектрейсов и тд
    А кибана для всякой аналитики и поиска по логам, графикам потом, отчетам. Сентри такого не продоставляет
    Ответ написан
    Комментировать
  • Удобный плагин для просмотра таблицы?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    для такой таблицы только горизонтальный скролл - решение. с другими решениями замучаешься. да и не добьешься удобства
    Ответ написан
    Комментировать
  • Где искать агента на upwork?

    opium
    @opium
    Просто люблю качественно работать
    я пытался продавать команды , все команды ужасны
    отклик на запрос может достигать несколько дней, а не пять минут как вроде должно быть
    совершенно команды не работают в любой время суток
    не работают команды по выходным
    команды не могут сделать какую то простую вещь быстро здесь и сейчас или хотя бы сегодня
    команды не могут гарантировать наличие свободных часов.
    Ответ написан
  • Чем принципиально отличается аналитика в Kibana от OLAP кубов?

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

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

    "offer": { // данные из таблицы товаров
      "price": {
        "value": 1500000,
        "currency": "RUB"
      },
      "category": { // данные из таблицы категорий
        "name": "Иномарки",
        "group": { // еще одни данные из таблицы категорий
          "name": "Автомобили"
        }
      },
      "owner": { // данные из таблицы пользователей
        "first_name": "Антон",
        "last_name": "Антонов",
        "locality": { // данные из таблицы городов
          "name": "Москва",
          "country": { // данные из таблицы стран
            "name": "Россия"
          }
        },
        "organization": { // данные из таблицы организаций
          "name": "FreeAuto",
          "phone": "+7111222333"
        }
      }
    }

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

    И это, Kibana - не более, чем красивый интерфейс к результатам аггрегаций, от нее вообще ничего не зависит.
    Ответ написан
    Комментировать
  • Как правильно использовать Docker для веб разработки?

    zvd
    @zvd
    Software developer interesting in DevOps
    Добрый день.
    Все, как вы их назвали, «задачи» должны быть по разным контейнерам.

    1. Что брать за базовый образ?
    Что используете то и берите. Используете в работе Debian? Берите Debian ( https://registry.hub.docker.com/_/debian/ )
    2. Чтобы создать свой базовый образ который будете в дальнейшем использовать для приложения, вот вам пример Dockerfile:
    #
    # MyBaseimage Dockerfile
    #
    
    # Pull base image.
    FROM ubuntu:14.04
    
    MAINTAINER Your Name <your.email@gmail.maybe>
    
    RUN apt-get update
    RUN apt-get upgrade -y
    
    RUN apt-get install -y language-pack-en
    ENV LANGUAGE en_US.UTF-8
    ENV LANG en_US.UTF-8
    ENV LC_ALL en_US.UTF-8
    
    RUN locale-gen en_US.UTF-8
    RUN dpkg-reconfigure locales
    
    RUN echo "Etc/UTC" > /etc/timezone
    RUN dpkg-reconfigure -f noninteractive tzdata
    
    RUN apt-get install -y build-essential
    RUN apt-get install -y python python-dev python-setuptools python-pip python-virtualenv
    RUN apt-get install -y libxml2-dev wget
    RUN apt-get install -y libpcre3
    RUN apt-get install -y libpcre3-dev
    RUN apt-get install -y libssl-dev
    RUN apt-get install -y libncurses5-dev
    RUN apt-get install -y git git-core
    RUN apt-get install -y libpq-dev
    
    # install nginx
    RUN apt-get install -y software-properties-common python-software-properties
    RUN apt-get update

    Собрать image в директории где у вас лежит Dockerfile
    docker build -t your_docker_account/your_baseimage .

    3. Dockerfile для сборки вашего образа уже с приложением
    #
    # MyApp Dockerfile
    #
    
    # Pull base image.
    FROM your_docker_account/your_baseimage
    
    MAINTAINER Your Name <your.email@gmail.maybe>
    
    # Set instructions on build.
    RUN virtualenv /env
    ADD ./ /code
    
    RUN cd /code; /env/bin/python setup.py install
    RUN cp /code/config/config.yml.docker_example /etc/code/config.yml
    
    # Expose ports.
    EXPOSE 8484
    WORKDIR /code
    CMD ["/env/bin/python", "app.py"]

    4. Собрать образ с приложением
    docker build -t your_docker_account/your_app_container .

    5. Запустить контейнер с БД, в качестве примера PostgreSQL
    docker run -p :5432:5432 --name my_postgresdb_container -e POSTGRESQL_DB=mydb_name -e POSTGRESQL_USER=mydb_user -e POSTGRESQL_PASS=super_secret_password -d kamui/postgresql

    для mariadb аналонично, контейнеры ищем здесь: https://registry.hub.docker.com/
    6. Запустить контейнер с вашим приложением, пример:
    docker run -d -p :5000:5000 \
      --name my_app_container \
      --link my_postgresdb_container:postgresdb \
      -e DOCKERDB_ENV_POSTGRESQL_DB=mydb_name \
      -e DOCKERDB_ENV_POSTGRESQL_USER=mydb_user \
      -e DOCKERDB_ENV_POSTGRESQL_PASS=super_secret_password \
      your_docker_account/your_app_container

    7. Подключиться к запущенному контейнеру с приложением
    docker exec -it your_app_container /bin/bash
    8. Читать stdout запущенного приложения в контейнере
    docker logs -f your_app_container

    + Чтобы автоматизировать запуск всех необходимых контейнеров берите Docker Compose ( https://docs.docker.com/compose/ )
    Пример файла конфигурации:
    your_app:
      build: .
      links:
        - postgresdb
      ports:
        - "5000:5000"
      environment:
        DOCKERDB_ENV_POSTGRESQL_DB: mydb_name
        DOCKERDB_ENV_POSTGRESQL_USER: mydb_user
        DOCKERDB_ENV_POSTGRESQL_PASS: super_secret_password
    postgresdb:
      image: kamui/postgresql
      ports:
        - "5432:5432"
      environment:
        POSTGRESQL_DB: mydb_name
        POSTGRESQL_USER: mydb_user
        POSTGRESQL_PASS: super_secret_password

    И теперь вместо пунктов 5 + 6 где мы запускали контейнеры мы можем всё стартануть одной командой
    docker-compose up

    + можно смонтировать код в контейнер и разрабатывать непосредственно в docker'контейнере.
    Надеюсь чем-то вам помог.
    Ответ написан
    3 комментария