Задать вопрос
  • Как деплоить небольшие проекты?

    @Stqs
    senior software developer
    вопросы у вас философские, на каждый можно отвести часы обсуждения
    Полноценный CI/CD поднимать не вижу смысла ввиду размеров

    вы ж все равно собираетесь какие-то скрипты мутить и чото выдумывать,
    какая разница это будут крон скрипты на сервере или джоба в дженкинсе? по-скорости написания - одно и тоже будет. так что по-моему размер тут не имеет значение
    единственное что имеет значение - насколько явно у вас описан процесс(алгоритм) билда/разворачивания приложений
    с этой точки зрения мое видение примерно такое:

    1) git не есть инструмент для развертывания по, git лишь для версионирования кода
    и по-идее результатом вашей работы должен быть не код в гитхабе, а какой-то вменяемый артефакт, готовый к деплою (docker-image, pip пакет, npm пакет, deb пакет, jar, war, zip в крайнем случае, и тд и тп). Если производить артефакты то вопрос с тегами отпадет сам собой - у вас будет артефакт какой-то версии и все
    сервер не должен знать ни про какие гиты и ни про какие-то теги в нем
    Здесь я бы рекомендовал паковать все в докер-имеджи хотя бы только потому, что сервер в итоге не будет знать ничего о зависимостях приложения, нужных библиотеках, ниочем вообще, вам нужно установить только докер
    Огромное преимущество использование докера - в Dockerfile вы вынуждены волей/неволей описать точно и явно все шаги требуемые для установки приложения. И что самое замечательное - это все будет храниться в том же репозитории, под контролем гит - шикарно.
    Артефакты желательно хранить в каком-то артефактории,
    но если реально все просто - то можно хранить несколько последних версий прямо на сервере в какой-нибудь папочке

    2) как только вы получили артефакт - его можно деплоить
    неплохо было б знать особенности вашего проекта, но грубо говоря допустим что достаточно его зааплоадить на сервер, положить в нужное место
    опять же с этим дженкинс справится на ура и займет у вас это все дело 10 минут . Если вы опишете логику в Jenkinsfile вы выиграете еще раз потому что процесс развертывания(алгоритм) будет описан опять же ЯВНО. И будет тоже под контролем гита. (Jenkins должен знать только в каком репозитарии и в каком месте ему искать Jenkinsfile)
    Если же вы будете крутить какой-то спрятанный cron скрипт на сервере - о нем никому ничего не будет известно. Поверьте уже через короткое время все это дело начнет усложнятся, что-то забудется, что-то измениться и это все вместе больно ударит вас по яйцам.

    В чем еще преимущество такого подхода: если вам нужно сделать roll-back на предыдущую версию вам не нужно собирать проект заново выкачивая все с гита, ведь у вас есть предыдущие артефакты, ролбек в таком случае вообще не проблема - просто указываем предыдущую версию артефакта и деплоим еще раз и все

    3) Env Variables
    когда приложение стартует - считывает все что ему нужно из переменных окружения
    деплой джоба может каждый раз эти переменные устанавливать перед тем как деплоить - это было бы тоже круто потому что вы сделали бы это знание так же явным

    Итого имеем
    - логика сборки проекта описана в Dockerfile и находится под гитом
    - логика деплоя находится в Jenkinsfile и находится под гитом, и что самое главное является кодом (Jenkinsfile пишем на груви, для простых вещей вам понадобиться 30 минут изучения и все)
    - на сервере мы ничего не устанавливали совершенно кроме самого докера
    - мы храним несколько версий нашего приложения на всякий случай и можем быстро откатиться не прибегая к гиту вообще
    - сервер не знает ничего о гитах
    - на сервере нет НИКАКОЙ дополнительной логики по разворачиванию вашего приложения
    - имея все это очень легко добавлять другие сервера для деплоя - что нам нужно - грубо говоря указать другой айпи и набор env variables к нему ( если они конечно отличаются)
    giphy.gif
    Ответ написан
    5 комментариев
  • Какая хорошая платформа для расширения/допиливания своей CRM системы?

    @Gregpopov Автор вопроса
    Full stack web developer
    Долго думая и пробуя, стало ясно, что напилить работу с лидами, организациями, закинуть телефонию намного удобнее с ноля.
    Ответ написан
    Комментировать
  • На что лучше подцепить html страничку, если это сайт визитка с одним разделом блога?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Для подобных целей народ давно придумал Jekyll - генератор статических сайтов(или ему подобные движки: Hugo и etc). Создаете шаблон для новостей(статей), добавляете массив данных, а движок генерирует папку со статическими html страницами для каждой новости(сортировку по дате или параметру, который вы укажите).

    В итогу мы избавляемся от cms, базы данных и других ненужных тяжелых элементов. Сервер отдает только статические html страницы.
    Ответ написан
    Комментировать
  • Агрегация большого кол-ва записей из БД?

    @asd111
    Берите яндекс clickhouse. Он как раз для отчетов и больших объемов и запросы идут напрямую. С ним можно искать по миллиарду записей за 5-20 секунд(core i5, ssd, 16Gb RAM). Для построения отчетов приемлемое время.
    https://clickhouse.yandex/
    Ответ написан
    Комментировать
  • Выбор cms для заметок сис.админа?

    neuotq
    @neuotq
    Прокрастинация
    Я вам советую завести на git и хостить(можно к примеру gitlab у них есть бесплатные приватные репозитории ), а можно и не хостить. А сами заметки/блог вести в Markdown. Markdown имеет простейший и удобный синтаксис + есть огромное количество бесплатных редакторов.
    Таким образом вы получите портируемую, слабо от чего-либо зависящую систему удобных заметок с историей изменений добавлений.
    Ответ написан
    Комментировать
  • По каким книгам изучать устройство компьютера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Таненбаум - Архитектура компьютера
    Ответ написан
    Комментировать
  • Каков сценарий использования git для одного разработчика?

    Sly_tom_cat
    @Sly_tom_cat
    .
    Для синхронизации между двумя компами использую syncthing.
    git и github (как remote master) используется именно для осмысленных коммитов с законченными доработками.
    Так у меня чистая история коммитов, ни ребейзов ни прочей сомнительной активности для приведения истории в порядок - не нужны.

    Но это не отменяет использования веток. Отдельная фича - отдельная ветка. Почти рабочее - мержу в dev. После тестирования меджу dev в master. В мастер стараюсь напрямую не коммитить, разве что какие-то обновления readme и прочей атрибутики.

    В master лежит код в котором я уверен, что он рабочий ибо мастер иногда качают (проект не требует сборки т.к. на питне и баше и легко ставится из исходников).

    Когда вполне созрела версия - создаю релиз (прямо на github-е) ну попутно лью в PPA на launcpad (это уже собственно к разработке не имеет отношения - это автоматическая доставка обновлений пользователям).
    Ответ написан
    Комментировать
  • Как убрать коммит из пуша?

    lunaticman
    @lunaticman
    Дерзкий айтишник
    Никогда не разрабатывайте в master бранче! Всегда делайте отдельную ветку git checkout -b new_branch_baby

    Чтобы сейчас выйти из этой неловкой ситуации вам нужно:
    - Скопировать все изменения в отдельный бранч ( git checkout -b my_changes )
    - Почистить мастер от своих изменений ( git checkout master ; git rebase -i HEAD~6 )
    - обновить мастер бранч ( git pull origin master )
    - обновить свой бранч (git checkout my_changes ; git rebase master )

    удачи
    Ответ написан
    1 комментарий
  • Можно ли работать программистом, но не оценивать сроки?

    Jump
    @Jump
    Системный администратор со стажем.
    Программировать - можно.
    Работать программистом - нет.
    Ответ написан
    3 комментария
  • Какая CMS по вашему мнению содержит идеальный код?

    @RadmirZ
    Делаем интернет-магазины на движке minicart.su
    Никакая =) Для себя пишите сами =)
    Ответ написан
    Комментировать
  • Какая CMS по вашему мнению содержит идеальный код?

    @Ronii
    Идеальный код тот, который ты написал сам.
    Еще неплох в Yii, но не cms.
    Ответ написан
    Комментировать
  • Как построить график на web-сайте по данным из файла?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    проще всего с помощью технологии www.freelansim.ru

    но вообще это делается парой строчек на РНР + Google Charts
    Ответ написан
    Комментировать
  • DDR3 vs SSD что выбрать?

    @vilgeforce
    Раздолбай и программист
    Вы точно не путаете оперативную память и жесткие диски?
    Ответ написан
    Комментировать
  • Что послушать про программирование?

    kumaxim
    @kumaxim
    Web-программист
    Уйдите чуток от программирования, расширьте свой кругозор. Я когда-то в маршрутках по дороге дом < = > коворкинг слушал:
    1)Самый богатый человек в Вавилоне. Клейтон
    2)Богатый папа, бедный папа. Киосаки
    3)Квадрант денежного потока. Киосаки
    4)Искусство войны. Сунь Цзы

    *Через точку - фамилия автора

    Выше перечисленное - это бизнес-литература, однако мне как вольному копейщику было весьма интересно. В прочем, у каждого из нас свой путь...
    Ответ написан
    2 комментария
  • Как применить значения вывода PHP в CSS стилях?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Не зависимо от фреймворка:
    $mycolor1 = "#fefcea";
    $mycolor2 = "#ffffff";
    echo '<div style="background: linear-gradient(to top, '.$mycolor1.', '.$mycolor2.');">';
    Ответ написан
    Комментировать
  • Как обрезать правильно строку PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Чем лучше?
    Чем быстрее?
    Зачем быстрее?
    Ответ написан
    Комментировать
  • Как правильно хранить ip в бд?

    Melkij
    @Melkij
    PostgreSQL DBA
    2015 год, почему ответы ipv4-only?

    inet_ntop / inet_pton, хранение в binary(16).
    Ответ написан
    Комментировать
  • Где найти единомышленников в OpenSource проект?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Выкладывайте на гитхаб, запостите ссылку, вы в опенсурсе. А там дальше нужно просто пиарить ваш продукт для привлечения внимания общественности.

    Скажем я вот на 90% уверен что даже не смотря на "mongodb" у вас там "еще одна CMS" в которой ничего особо интересного нет. Выложите посмотреть или хотя бы какие-то особенности раскройте. Пока это все так...
    Ответ написан
    4 комментария
  • Какие есть новые парадигмы программирования, я имею ввиду которые появились совсем недавно 5-6 лет назад максимум?

    @mamkaololosha
    jQuery-парадигма - умею делать всё на jQuery
    Framework-парадигма - "зачем мне ваш computer science, когда я беру фреимворк и делаю всё в 10 раз быстрее наготовом"
    "И так прокатит"-парадигма - мощностей современного железа хватает, что бы разработчик подзабыл об оптимизации
    Я ответил именно ваш вопрос касаемо новых парадигм за последние 5-6 лет, серьезно.
    Ответ написан
    2 комментария
  • ЯП для WEB разработки?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    PHP изучал, уже надоел.

    Видимо не изучали, а поверхностно прочитали.
    Судя по вопросу и контексту, вы мало себе представляете чем отличаются те или иные языки программирования, какие представления могут иметь и т.д.
    Почему в списке нет Ruby, JS - это ведь тоже языки программирования для веб-разработки.

    Вы видимо "Дуров", раз написали кучу соц. сетей, банковских CRM, и др. крупной продукции на PHP.
    Иначе я не знаю, как может язык надоесть.
    Ответ написан
    Комментировать