Вопрос: Что разработчик должен знать о Windows Server?


Я сертифицированный .NET Developer, и я много работаю над разработкой Sharepoint. Добавление / редактирование / удаление пользователей требует использования AD, и, конечно же, все, что связано с структурой сайта в Sharepoint, связано с IIS.

Как разработчик, что мне нужно знать о IIS / AD и Windows Server в целом? Одна из вещей, которую мне интересно, - как я могу включить пользователя в несколько групп?

благодаря


7
2017-07-21 14:35


Источник


Просто хотел уточнить, я думаю, вопрос велик - можете ли вы поговорить с программистами здесь? :) - Я просто хотел убедиться, что вы знали о ТАК. - Kara Marfia
Каждый разработчик Windows должен понимать Active Directory. - surfasb


Ответы:


Общие сведения о Active Directory: Любой пользователь может быть во многих группах в AD, проблема в том, как их получить. Выполнение его программно возможно и достаточно просто, но вопрос в том, позволяет ли ваша политика безопасности такого рода вещи? Кто управляет AD, где вы находитесь, должно быть развернуто и насколько плотно больше связано с такими вещами, чем фактические технические детали добавления людей в группы. Это большие вопросы, которые нужно задать, прежде чем вы перейдете на фазу развертывания.

То же самое происходит для ИИС. Вопросы политики почти всегда превышают технические. Спросить, что вы можете и чего не можете сделать, не поднимая суеты, - отличное начало. Использование виртуальных каталогов и виртуальных сайтов - еще одна хорошая вещь, чтобы окунуться в вашу голову.

И пока вы спрашиваете, вот еще несколько вещей, которые я желаю, чтобы больше разработчиков заинтересовались пониманием.

Сервер не является постоянным неизменным объектом, аппаратное обеспечение заменяется, меняются интернет-провайдеры, диски заполняются. Не делайте жесткие коды, например, абсолютные пути к файлам, IP-адреса и имена серверов.

Другой большой знать, что на самом деле нужно выполнить ваше приложение, На сервере никто действительно не хочет устанавливать все звонки и свистки, потому что разработчик не может сказать вам, что они звонят. Одно приложение, которое живет в памяти для меня, - это тот, где мне пришлось установить MSSQL Server 2005 на веб-сервере только потому, что код не будет работать без него. В конечном счете (месяцы и часы работы позже) мы выяснили, что происходит и как этого избежать. Если бы это было не так важно для приложения с таким влиянием, я бы отбросил его обратно и сказал «абсолютно нет, потому что это ОГРОМНЫЙ риск для безопасности»,

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


6
2017-07-21 15:57





По моему опыту, это те области, которые я бы хотел, чтобы разработчики стали больше о:

IIS. Особенно важно для приложений ASP.Net. Несколько ключевых областей для изучения:

  1. IP-привязка и заголовки хостов. Когда вы создаете новый сайт IIS, убедитесь, что знаете, как правильно настроить заголовки IP и хоста.

  2. Настройки пула приложений. Здесь есть несколько настроек, которые влияют на ваше приложение, включая значения тайм-аута и переработку. Не забудьте понять, как это может повлиять на ваши сеансы.

  3. Включение методов. Если вы выполняете REST API, знаете, как включить дополнительные методы, такие как PUT.

  4. SSL-сертификаты. Поймите, как установить сертификат SSL и как работает процесс получения сертификата.

  5. Тренировки производительности. Убедитесь, что вы знаете, как включить GZIP, отключить электронные теги, настроить срок действия контента и установить заголовки кеша. Используйте Fiddler, чтобы узнать, как IIS отвечает на запросы. Вы можете значительно улучшить производительность своего приложения с помощью нескольких простых изменений.

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

Права доступа. Поймите, какие разрешения должны быть в каких папках в вашем приложении. Например, если ваше приложение записывает в папку, вам нужно предоставить NETWORK_SERVICE доступ к этой папке?

Брандмауэр Windows. Кажется основным, но особенно для Windows Server 2008, понять, как добавить запись в брандмауэр, установить порт, установить область и т. Д.

SMTP-сервер. Понимать, как настроить, настроить и устранить проблемы с SMTP-сервером Windows. Вы также можете посмотреть на HMailServer в качестве альтернативы для использования с вашими приложениями. Кроме того, читайте о фильтрации СПАМ и о том, как правильно создавать электронные письма (собственно, от, до, многостраничные сообщения и т. Д.).

SQL Server IP и привязка портов. Не имеет прямого отношения к Windows Server, но очень много. Поймите, как настроить SQL Server для привязки к определенному IP и порту. Знайте разницу между динамическими и статическими портами, как настраивать и подключаться к нестандартным портам, как строить строки соединений с использованием имен экземпляров и настраиваемых портов.

Многие из перечисленных выше элементов находятся в домене Администраторы сервера, но вы можете сделать себя намного более ценным, если вы можете понять и устранить эти области.


5
2017-07-21 16:41





Хм, на самом деле это может быть вопрос stackoverflow.com (чтобы получить ответы от других программистов). Если вам интересно, что администратор может запросить программистов, я бы сказал:

  • Мониторинг производительности - чем проще ваш код на аппаратном обеспечении, тем лучше

  • Понимать (и документировать), как ваш код взаимодействует с различными версиями IIS и Sharepoint

Что касается вопроса о членстве в группе, я бы использовал GUI или DSADD, но вы, вероятно, ищете там код? Мы можем получить этот вопрос, перенесенный на сайт-сестра, если вы действительно ищете вход кодера.


1
2017-07-21 15:12



Ищете процесс в Windows, а не код. :) Для кода я бы определенно поставил на SO. - dotnetdev


Я бы рекомендовал знать 32-битную и 64-битную информацию о том, сколько памяти могут использовать ваши приложения (сеть через IIS или winforms). Я также рассматриваю IIS7 специально для всех интерфейсов, событий и общего доступа к конвейеру обработки, который может воспользоваться услугами Windows.

Общие знания Active Directory (AD) полезны, если ваше приложение требует его аутентификации. Имейте в виду учетные записи и разрешения, так как веб-приложения и winforms или общие приложения должны запускаться под активной учетной записью каталога. Процессы IIS все работают под IUSR_MACHINENAME и файловые ресурсы также связаны правами безопасности. Это может показаться несущественным во время разработки, поскольку никто не может подумать об этой проблеме, но домены Windows тесно связаны AD, а их разрешения / ACL влияют на все внутри домена. Просто что-то, чтобы сделать заметку. Примечание. Политики AD также могут влиять на приложения.

Я также рекомендовал бы работать с EventLogging (для сообщений об ошибках и приложениях) на платформе .NET, поскольку некоторые из приложений, над которыми я работал, мы должны были создать собственную систему регистрации ошибок (ошибок), пока у нас был Windows EventLog доступный нам. Было не сложно создать систему регистрации, но почему больше работы, когда EventLog уже доступен?

Также с точки зрения приложения я бы посмотрел Microsoft Message Queuing (MSMQ). Если ваше приложение / сайт содержит множество данных, которые перетасовываются через базу данных и веб-серверы или нужно отправлять данные в другие системы / приложения, то очередность является полезной техникой, и MSMQ бесплатный и встроенный в Windows Server. MSMQ - это система обмена сообщениями на основе транзакций и может быть очень полезна для приложений с динамическими данными. Извините, что расплывчато, но зайти в MSMQ потребует много усилий и может быть слишком много. Я бы рекомендовал прочитать о MSMQ и общую концепцию MSDN или Википедия для начинающих.

Надеюсь это поможет!

Редактировать: Я задал конкретный вопрос о добавлении пользователя (предположим через .NET) к различным группам в Stackoverflow, но я думал, что общий вопрос о AD и Windows подходит для Serverfault.


1
2017-07-21 16:09



Я определенно согласен, что это отличное место, чтобы спросить, просто хотел удостовериться, что это был форум, на котором был предназначен плакат. :) - Kara Marfia
Привет, Проблема с просьбой об этом так (где я регулярно публикую) заключается в том, что этот вопрос может быть опубликован с обеих сторон как о его развитии, но и о системном админе. Я видел, как эти вопросы переместились сюда. Я также не хочу делать что-либо из этого программно (для этого я бы определенно поставил на SO). :) - dotnetdev


Это зависит от вашей роли.

Если у вас есть роль разработчика / ведущего разработчика, вам нужно знать, как система будет работать на производстве.

Если вы делаете какое-либо развертывание, вам также нужно знать о платформах, которые вы собираетесь установить.

Если вы разработчик, который просто получает такие задачи, как «написать функцию, которая делает x», вам не нужно много знать.

Интересно, что рыночная стоимость разработчика, понимающего операционную сторону, намного выше, чем у того, кто просто разработчик.


1
2017-11-21 14:54





Никогда не включайте диспетчер системных ресурсов Windows. Он будет потреблять 9-11% процессора в любое время, потому что никто не знает, что.


0
2017-07-21 15:47