Натхненний цим питанням , я запитую зворотне: скільки про програмування повинні знати системні адміністратори? Більш конкретно, які інструменти програмування корисні для системи sysadmin?
Натхненний цим питанням , я запитую зворотне: скільки про програмування повинні знати системні адміністратори? Більш конкретно, які інструменти програмування корисні для системи sysadmin?
Відповіді:
Я б почав із:
Адміністрація системи - це просто програмування. Система управління конфігурацією дозволяє бачити всю вашу інфраструктуру як розподілену машину. Як системний адміністратор, ваше завдання - запрограмувати цю машину.
Знайте один текстовий редактор. Зазвичай vi для системних адміністраторів, emacs для програмістів.
Знати, як сценарій. Виберіть мову сценарію. Perl - це багаторічний фаворит, як і комбінація shell / sed / awk. Ruby і Python можуть працювати, але для багатьох речей об'єкти є неправильною парадигмою.
Знати, як написати читану документацію.
Контроль версій. Важливе значення для підтримки файлів конфігурації та аудиторських контурів.
Навчіться мислити в плані програмування. Розуміти процедурні, об'єктно-орієнтовані та функціональні парадигми програмування. Їх ніколи не можна використовувати, але знаючи їх, ви робите нескінченно продуктивнішими.
Навчіться використовувати налагоджувач (або більше) та вести журнал.
Навчіться використовувати RDBMS. Існує велика кількість вимог щодо обробки даних, які можна спростити за допомогою правильного використання RDBMS. Навіть можливість перейти на роль DBA за потребою може творити чудеса.
Тест перед розгортанням. Дивіться філософію розвитку, що керується тестом.
Парне програмування добре. Попросіть когось іншого за плечима вивчити / порадити / виправити.
Навчіться, як мінімум, ознайомлюватися з купою мов. Вивчайте нову мову щороку.
Сценарій є надзвичайно важливим, але я би другий порадою, що знання деяких "справжніх" мов є певним бонусом. Наприклад, ви можете зробити дуже корисні речі з простором імен .NET System.DirectoryServices.
Я програміст і старший адміністратор / інтегратор. Щоб працювати там, де я займаюся, вам потрібно знати наступні речі:
Більшість молодших адміністраторів можуть подивитися на одного з наших програмістів і сказати (з повноваженнями), так, я встановив це правильно, ось де у вас є витік, через що код, який ви щойно натиснув, порушується. Або "Ні, це не наша версія MySQL. Подивіться свій запит тут ..."
Я думаю, що ми дещо різні, коли наймаємо обдарованого адміністратора .. ми наполовину очікуємо, що вони (врешті-решт) знайдуть свій шлях до програмування, навіть якщо це просто хакерське щось, що ми використовуємо для роботи так, як їм це потрібно для роботи. .
Якщо підсумовувати, то, що добре заокруглення ніколи не зашкодить вам.
Багато, багато років тому (насправді Windows NT 3.1) я почав працювати як програміст, який спеціалізується на написанні послуг і навіть випадкових драйверів пристроїв. Це означає, що ви добре знайомите з ядром Windows. З часом я трохи набрид програмуванням і перейшов до управління мережею. Я виявив, що мій досвід програмування був неодмінно цінним знову і знову.
Справа не лише в тому, що писати сценарії VBScript відносно безболісно. Знання того, як працюють кишки Windows, і особливо, як працює IP, дуже допомагає при деталізації незвичайних проблем із сервером та мережею. Також це мислення. Програмісти звикли до контролю над документацією та версіями, і це мене жахає, щоб побачити, скільки адміністраторів Windows просто спробує щось перевірити, чи спрацьовує це, і потурбуватися про те, щоб потім розплутати безлад.
Все дуже добре, але не дуже корисна порада сказати піти та працювати програмістом десять років! Однак я думаю, що це допомогло б більшості системних адміністраторів мати певний досвід програмування на "жорсткій" мові, як C ++ або C #. А якщо у вашій організації є приручені програмісти, пийте з ними!
Джон Ренні
Погані речі трапляються, ваш код буде довше, ніж ви думаєте, що буде. Збій витончено, з корисними повідомленнями про помилки. У вас не вистачить диска, оперативної пам’яті, процесора, часу тощо.
Не будьте настільки оптимістичними, що дивно один раз у мільйонному випуску траплятиметься занадто часто у виробництві.
З усіма описами тут я не збираюся говорити, що я систематик. Але в тому, що я створив і керував паролем windows / linux-сервера, я повинен щось визнати:
в Linux, баш сценарії обов'язково знати - якщо ви знаєте, як інтегрувати його з perl / awk / тощо, це краще. Я виявив, що багатьом завданням стало легше, використовуючи його.
Знання програмувати на C / C ++ дуже допомагає. Іноді доводиться змінювати вихідний код GNU (якщо ви його використовуєте), щоб відповідати вашим потребам, оскільки продукт GNU не гарантує, що ви завжди будете отримувати потрібну вам допомогу вчасно - і багато разів вони написані на C / C ++.
Знання, як прив’язатись до свого LDAP та отримати потрібну інформацію на обраній вами мові сценаріїв, є ключовим для всього, починаючи від усунення несправностей до дійсно посилення різних типів автоматизації (надання облікових записів та ресурсів, більш розумні перевірки облікових записів користувачів або машин).
Це може здатися базовим, але я бачив безліч хлібобулочних магазинів, де люди не думають, що мають потребу в такому управлінні системою. Дуже багато місць витрачають великі $$$ на великі набори адміністративних інструментів, і, наскільки я можу сказати, 95% того, для чого вони використовують інструменти, можна було б зробити за кілька годин сценаріїв, якби хтось знав це чи знав, як це зробити Зроби це.