Я (как следует из этого названия) новичок в этой конфигурации сервера. Недавно меня подтолкнули научиться настраивать среду разработки / производства. Моя история с фактической конфигурацией сервера / сети ограничивается программированием. Я хорошо владею PHP / MySQL / JavaScript.
Я быстро осваиваю вещи, связанные с сервером, и перехожу к некоторым довольно сложным вещам.
Я выполнил свою первую установку LAMP (на Ubuntu) около месяца назад, и у меня ...
Любые другие процессы, связанные с администратором сервера, сейчас ускользают от меня, но они, вероятно, очень незначительны.
Следует упомянуть, что я буду специализироваться на серверах на базе Linux (вероятно, Ubuntu) через Amazon EC2. Это не будет моей карьерой - просто временная утилита. Я лично сосредоточусь на разработке веб-приложений. Я полагаю, я не ошибусь, когда узнаю, как настроить мою среду ... верно?
Я немного обеспокоен тем, что у меня нет «формального» образования по этому предмету (или вообще по любому предмету, связанному с Интернетом). Я в значительной степени полагаюсь на форумы или сайты вопросов и ответов, такие как этот, чтобы обеспечить завершение моего образования.
Большой или маленький. Для меня это не имеет значения. Я так понимаю, что у всех есть это «черт побери, если бы я знал об этом некоторое время назад!» моменты.
Проблема, с которой я столкнулся, - у меня нет базы. Я уверен, что смогу научиться делать большую часть умеренных и некоторых сложных вещей.
Без повторов и погружения в материал. Что я необходимость знать?
Какие концепции мне нужно знать в деталях?
Например: основы безопасности, как настроить достойную систему для безопасного FTP (передача файлов, что угодно), организация файловой системы, какой дистрибутив Linux мне следует использовать.
Спасибо - мы очень ценим любой вклад или указание!
Извините, если это немного общее и расплывчатое.
РЕДАКТИРОВАТЬ: Я сосредоточусь на интернет-приложениях, которые определенно будут использовать какую-то базу данных SQL.
Вы должны знать, как делать резервные копии и, что более важно, проверять, возможно ли восстановление. Так что вы можете вернуть файлы, если случайно удалили некоторые из них.
Когда вы администрируете несколько серверов, обратите внимание на инструменты управления конфигурацией, такие как Кукольный.
Ведите журнал своих изменений и причин, по которым вы их внесли. В ITIL В терминах это делается в cmdb, но вы можете начать с простого текстового файла, вики, ...
Получите решение для мониторинга, например Nagios чтобы вы знали, что делают ваши системы.
Максимально автоматизируйте. вы будете благодарны за каждый сценарий, который у вас есть, когда что-то пойдет не так.
Это еще не все, но я уверен, что вы получите много других хороших ответов.
Edit1: вот несколько блогов, которые могут помочь вам стать отправной точкой:
И некоторые книги:
* Справочник по системному администрированию Linux
* Искусство программирования UNIX
Edit2: вот обзор различных дистрибутивов Linux:
Ваши резервные копии хороши ровно настолько, насколько хороши ваши восстановления.
Я бы сказал, что одно важное руководство, которое вы можете предпринять, - это действительно хорошо изучить все различные формы виртуализации (сервер, рабочий стол, хранилище, сеть и т. Д.), Поскольку это одна из областей, в которой я действительно начал видеть некоторые из «старая гвардия» борется.
Я не говорю о практической стороне вещей, скорее о необходимом разделении функциональности и физического состояния - как только вы это получите, вы увидите выгоду с точки зрения карьеры - я удивлен, сколько людей могут вообще не понимаю или по умолчанию вернусь к старым путям.
Вам также необходимо развить очень `` чистые '', продуктовые / технологически-гностические навыки поиска неисправностей - они будут более ценными в долгосрочной перспективе, чем любые конкретные навыки, которыми вы могли бы обладать прямо сейчас, поскольку комплект и программное обеспечение, которое мы используем, постоянно меняются, но базовые процессы логического мышления редко выполняются.
Удачи.
Не используйте FTP. Используйте SCP (sshd / ssh для передачи файлов).
Ваш вопрос, как вы сказали, расплывчатый. Это затрудняет предоставление каких-либо конкретных деталей. Я имею в виду, каковы ваши конечные цели? Я администратор серверов, но я мало что делаю с нашей системой Cisco CallManager / PBX. Системное администрирование подразделяется на суб-дисциплины, и, несмотря на пересечение, большая часть знаний о системном администрировании происходит от активного удовлетворения потребностей ваших пользователей и бизнеса и возникновения проблем, которые необходимо решить, и чтения книг, журналов, блогов и т. Д.
Вероятно, вам следует знать о резервных копиях. У вас должна быть система, позволяющая при необходимости восстанавливать компьютер с нуля, так сказать. Но это зависит от ваших потребностей. У вас много динамических данных? Вам нужна доступность и доступность в режиме 24/7?
Безопасность зависит от того, как вы работаете и кому разрешаете доступ к серверу. Следите за обновлениями, запрещайте ненужные службы, сканируйте с помощью nmap и инструментов аудита и т. Д., Чтобы оценить это, но также помните о простых вещах, таких как требования к паролю пользователя, доверие, предоставляемое пользователям, а также это зависит от того, на чем вы работаете сервер. Например, SQL может быть последней версией, но если вы не очищаете ввод с веб-сервера, у вас могут быть атаки с использованием инъекций.
Если у вас есть конкретный сценарий использования, другие участники сайта могут предоставить вам дополнительную информацию, относящуюся к вашей ситуации. В противном случае единственное, что я мог бы предложить, - это купить книги по Linux в вашем местном книжном магазине и читать, читать, читать. Читайте блоги по безопасности от таких гуру, как Брюс Шнайер.
Практика системного и сетевого администрирования. Эта книга просто необходима.
Для передачи файлов я бы рекомендовал использовать NULL FTP-сервер вместо WinSCP, который представляет собой приятный и простой для понимания (с точки зрения SSL) сервер FTPS и SFTP. Я бы рекомендовал запустить SFTP-сервер на порту 22. Для FTP-клиента используйте FileZilla.
Чтобы получить опыт работы со средой разработки, получите VisualSVN и клиент Tortoise и поиграйте с ними.
Для экспериментов с операционными системами я бы рекомендовал использовать Sun VirtualBox . Это немного сложно с сетевыми вещами, но вы сможете справиться с этим нормально.