Aisamiery

Aisamiery
Рейтинг
319
Регистрация
12.04.2015
webinfo #:
Вообще-то многие плагины создают свои таблицы в базе данных и изменяют записи в существующих таблицах базы данных.

Это делается при активации плагина, вы же можете плагин поставить из архива, залив по фтп и потом в админке нажать что то типа "установить"? Вот так же и с гита оно ставится, файлами прилетает а в админке нажимаем установить и "создаются таблицы и меняются записи"

webinfo #:
Ну то есть всё равно заходим на боевой сервер и творим там всё, что хотим. К чему тогда все эти разговоры про безопасность, якобы. обеспечиваемую гитом?

Я вам указал самый простой кейс использования. Гит можно автоматизировать, следующий шаг по автоматизации когда вам надоест заходить каждый раз на сервер, будут вэбхуки, вы в корень например положите файлик deploy.php который просто будет в корне дергать, типа

<?php
exec("cd /var/www && git pull");

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

webinfo #:
Именно. Иначе получится так, что затрутся изменения, сделанные другими людьми. А не так, как было свысока замечено:

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

webinfo #:
И сайтов на поддержке штук пятьдесят. И у всех разные конфигурации сервера.

Количество штук это к гиту относится? Ну у меня их 59 только в гитлабе и полет нормальный, над всеми 50 сразу же не работаешь

Вы же наверняка на хостингах "чалитесь" с клиентами, конфигурация серверов там +- одинаковая у всех. Если бы у вас проекты были бы уровня badoo я бы понял, но у вас же скорее всего это стандартные популярные CMS которые работают одинаково на всех вменяемых хостингах

Алеандр #:
Так в чем разница этого инструмента от бэкапа в данной задаче? Как она поможет, если ему залили шелл, установили левые ссылки? Ему гит об этом расскажет? Нет. Извините, просто как инструмент "откатить" в данном случае он не решает искомую задачу - ЗАЩИТИТЬСЯ от нежелательного кода, который накодили исполнители. От того, что код будет где-то дополнительно лежать и его можно будет откатить - заказчик вдруг читать и понимать этот код не научится.

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

Алеандр #:
Что значит защитит ядро? Я могу записать код бэка или левую ссылку в любую часть кода php, js и даже в базу, с вызовом нужного куска из базы или даже с удаленного сервера. Вы в жизни не найдете это при помощи гита.

Вы даже не поняли о каком ядре речь =)) я про интерпритатор php говорил и ссылку на внесение в него скидывал где 100500 человек посмотрят код прежде чем его вольют в основную ветку которая потом уедет на сотни тысяч если не миллионы серверов в виде новой версии php

Алеандр #:
Хотя, ладно, это и правда не имеет смысла. Поскольку все точно понимают, что это не решает задачи ТС, гит для других целей и в других объемах, но продолжаете бессмысленный спор. Буду умнее, прекращу спор первым.

Да я тоже не вижу смысла, как может быть гит для других объемов? Для каких? Какими объемами надо мерять не понимаю, в гите есть даже однофайловые программы на десяток строк кода, для каких целей надо использовать гит, расскажите? Вы же не дали внятного ответа для чего тогда гит если не как раз для таких ситуаций, скорее всего потому, что не используете и вам это кажется каким то космолетом

webinfo #:

Ну то есть вы, как и Sly32, предлагаете работать так:
- развернуть на тестировочном сервере копию сайта
- после внесения изменений в эту копию переносить изменения в гит
- после этого через гит переносить изменения на рабочий сайт
- делать дамп базы данных и обновлять БД рабочего сайта.

Верно я понял, или это не так?

Почти.
Вы разворачиваете копию сайта наверняка ведь? Ну где то, неважно где - тестовый сервер или у себя на компе. Далее ваши действия какие? Что то ставите, плагины например, делаете работу, проверяете что все работает и очередной плагин не форматнул вам всю БД, потом после всех тестов как то же переносите? Ставите такие же плагины на прод и изменения в файлах заливаете по фтп, правильно? Или вы делаете бэкап всего сайта, "на живую" правите сайт, пользователи при этом видят какие то синтаксичесике ошибки, после неудачных плагинов вычищаете боевую БД и если все сломалось восстанавливаете с бэкапа? Если последнее то мне вообще грустно за ваших клиентов и да вам гит только усложнит работу и он вам не нужен и будет только мешать корячить клиентские сайты, если первое, то с гитом работается практически так же, просто не надо вспоминать какие файлы правил и  плагины будут именно тех версий что тестировали на тестовом.

Если прям с нуля делаем, то делается так:
1. Заходим на сервер с сайтом
2. Добавляем .gitignore и вписывает туда всякий хлам в исключения, типа архивов, и прочих ненужных для разработки файлов, какие-нибудь папки с загруженными файлами и прочее
3. Далее добавляем файлы к отслеживанию, коммитим всё и заливаем например на гитлаб
4. Выкачиваем дамп базы и из гита выкачиваем файлы (с файлами работать проще и быстрее, то есть слить файлы с гита в десятки а то сотни раз быстрее чем по фтп)
5. Разворачиваем бд из дампа и получаем сайт точь в точь как на проде, при должной сноровке все эти пункты выполняются минут за 10, если окружение тестового сервера уже настроено, например это может быть тот же хостинг папка рядом с тестовым доменом.
6. Делаем нужные изменения в файлах, если ставим плагин, то по сути он так же скачивается же просто (файлами в папку с плагинами), а потом через админку активируется.
7. Тестируете свою работу, по финалу коммитете все изменения и сливаете в гит
8. На боевом сервере сливаете все изменения из гита, заходите в админку, активируете плагины (они файлами с гита уже прилетели), вносите нужные настройки если требуется в админке (на этом шаге у вас изменения все 1 в 1 как на тестовом)

Весь этот флоу у вас и так есть по сути если вы не правите "на живую", по скорости (без гита) быстрее вообще не получается, скорее медленнее, можете забыть какие то изменения и так далее.

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

Алеандр #:
Вы путаете незнание или нежелание с отсутствующей необходимостью.

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

- index.php
- index1.php
- index2.php
- style.css
- style.new.css
- style.old.css

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

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

Алеандр #:
Расскажите, каким образом гит спасет в ситуации ТС, если я, как гипотетический исполнитель, на его сайт вкорячу бэкдор, при том, что это будет зашито внутрь десятка установленных плагинов с десятками тысяч строк кода?

Например сейчас у сайта есть какое то "состояние", оно фиксируется в гите, все следующие изменения с десятками тысяч строк кода бэкдора будут видны в гите и их всегда можно откатить к требуемому состоянию. Тем самым это поможет ТС. Плюс гит это не просто заливка изменений на сервер, у гита, как правило, есть мастер ветка, она развернута на сервере (проде), любые изменения делаются через мерж/пулл реквест в эту ветку, а в этом реквесте видны все изменения которые будут сделаны в этой мастер ветке, например вот какой то пул реквест с утечкой памяти в fpm в ядре php, видно в каком файле какие изменения вносятся и кем. Это же защитит ядро php от того чтобы туда не подложили бэкдор?

Алеандр #:
Ну, или как его спасет гит, когда ему нужно будет на его сервер поставить мне, как его гипотетическому админу сервера - нужные пакеты и расширения для php с рутовыми правами?

При чем тут гит вообще? Тут примерно равноценно как гит поможет при беременности вашей подруги? Это не тот инструмент, чтобы защищать от тупости раздачи рута всем кому не лень.

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

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

С гитом действительно наверное самое рабочее решение, по крайней мере более осязаемое, чем "обращайтесь к нормальным специалистам" =)

А местным противникам гита, могу лайфхак подсказать, гит для вас, по сути, может быть бесплатным, инкрементным бэкапом файлов на удаленном сервере, то есть ставите на крон коммит + пуш хоть каждую минут и у вас всегда будет бэкап актуальных файлов бесплатно и без смс =)))

Стараюсь ставить чтоб был минимум больше самой большой таблицы, идеально если влезет вся БД, ответ про 60% странный, обычно просят 80% =)) но в процентах странно, так как сервер может быть как с 2Гб памяти так и с 256Гб
Shelton724 #:
Только вот все эти расходы снова лягут на плечи остальных

Это и называется ВВП =))

Всего: 4110