|
|
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevТ.ч. IMHO ошибка timeout имеет право на жизнь, но лучше до нее не доводить.Я отказался от ожидания освобождения ресурсов во втором варианте своего сервлета. Мотивировка очень проста. С тайм-аутом, при нагрузках близких к пиковым, но ещё не предельным, всё больше клиентов будут сначала ждать и только потом получать или ответ или ошибку. Это плохо тем, что для клиентов "система уже зависла", а для нас "пока всё в порядке". Т.к. нехватка клиентского пула протоколировалась предупреждением - админ сразу видел, в чём дело и мог или увеличить размер пула или начать разбираться почему запросы клиентов стали дольше обрабатываться. Есть, конечно, ньюансы, связанные с разными типами клиентов, но в моём случае запросы от клиентов шли весьма часто и при задержках ответов - интерфейс клиента переставал отвечать на действия пользователя. Это, конечно, косяк клиента (толстое приложение), но проще всего было разрулить проблему моментальной выдачей ошибки с сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:28 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЯ не вижу плюсов у микросервисов, но это мои личные тараканы. Если требуется "последний дюйм" без модернизации железа и среды исполнения, то монолит становится вполне реальным вариантом - модульность и компонентность ничуть ни хуже микросервисных. Меняются только стратегии развёртывания и администрирования. Микро сервисы имеют свои плюсы. Любое мало мальски значимое изменение в большом приложении oзначает регрессионное тестирование, путь от DEV до PROD может легко занять полгода. Бывает что в одном приложении в веб контейнере тяжело подружить тяжелые несовместимые версии библиотек. Писать плагины для веб приложения это гемморой (велосипед, хотя можно написать) а упаковывать несколько war в еаr, иметь шаманские пляски с бубном, выясняя какие библиотеки не так грузятся и тд это гемморой. Особенно гемморой когда пишешь продукт под (Боже упаси) 3 - 4 сервера и хотя бы пару версий под каждый. Еще накладываются баги на самом сервере. Собирается большой запутанный комок. Для обычных java приложений сто лет как пишу плагины - сервисы не нужны. Кому нужна кастомизация на проектах у клиентов, подкладывает свой плагин. С микросервисами попроще обновлять и расширять, модильный подход но на уровне приложений а не компоненты в одном пакете. Поставил сервисы, связал их с основным приложением и расширяй меняй отдельные сервисы, меньше времени уходит на согласования и тестирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:32 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
микросервисы вроде не имеют отношения к сабжу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:38 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Petro123uid uniqueСервлеты начали писать намного раньше чем возникли новомодные js фреймворки и асинхронные обработки на клиенте шутка? Я вот не помню когда JS был не асинхронный)) А пример с 2-х минутным запросом обсуждали. Делается Заявка. Ajax появился в 2004, массово пошел примерно в 2007, в IE до IE7 он не использовался (корпоративные клиенты массово сидят на IE). В 2012 еще выкорчевывали IE6 изо всех сил у клиентов. У меня первое приложение с использованием Java на сервере было написано в 2000-м, но тогда он него отмахнулись, сказали на С быстрее, продолжим на нем писать (приложение было на CGI на апаче сервере). Довольно долго писал апплеты на Java и J++ (для винды из за лучшего UI под виндой чем у Sun Java), на js делались совсем не такие приложения как сейчас (и не так легко). Не особо отслеживаю последние веяния от ECMAScript, но как помню js интерпретатор был однопоточным и даже при использовании HTML5 web worker API куча ограничений на доступ к объектам (вроде только с тексом работа, нет?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:48 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Хоть NUMA, хоть не Numa. Проблемы при переключении потоков (и процессов) одни и те же. Предположим, что планировшик тупо выполняет ожидающий поток на случайном процессоре. Если у нас двух-сокетный сервер, что значит миграция с одного процессора на другой? Как минимум, что у нас пропадет вся информация в кэше. А это может быть сотни килобайт или даже мегабайты кода и данных (!). Т.е. затраты времени на "разогрев" кэша представить можно. Если у нас 1 процессорная система, то речь только о L1/L2 кэше ядра/хипертрейдинга, L3 будет общий. Если много сокетный ксеон - то все уже значительно хуже. Если же Numa железка, то еще хуже. Кроме собственно переключения, IMHO есть еще и проблема "объема". Если у нас выполняется 100500 _одинаковых_ и компактных потоков, то как минимум, их код всегда будет в кеше (код у них одинаковый), а как максимум, вполне возможно, что и данные будут переживать переключение Другое дело, если у нас 5000 потоков совершенно __разного__ типа. То при высокой частоте переключения, вероятность, что наши данные выжили в кэше, становится практически нулевая. Поэтому AFAIK планировщики содержат сложные алгоритмы, которые стараются минимизировать и переключение потоков и миграцию. Стараются... но не всегда оптимально и не всегда это им удается. IMHO ну и как любой сложный алгоритм, при определенном паттерне нагрузки, вместо оптимизации можно получить де-оптимизацию. Т.к. создатели шедулера думали, что в 95 % случаев их поведение оптимально, но наш паттерн нагрузки относится как раз к оставшимся 5 %. В общем, на моем компьютере с 4 ядрами - все работало без проблем, а на реальной железке под реальной нагрузкой, возникали непонятные АНОМАЛИИ (глюки). Когда элементарнейший код (весь код потока в 10 строк!), поток просыпался 20 раз в секунду, выполнял обычный цикл по коллекции в 30 элементов, если в этой коллекции были закрытые объекты, вызывал некую функцию - работал на сервера в СОТНИ раз медленнее (замерялось банальным GetNanoTime) В общем IMHO "все счастливые сервера похожи друг на друга, а все высоконагруженные сервера высоконагружены по-своему" ( C ) Л.Н.Толствой Анна Каренина в моей интерпретации ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:50 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueС микросервисами попроще обновлять и расширять, модильный подход но на уровне приложений а не компоненты в одном пакете. Поставил сервисы, связал их с основным приложением и расширяй меняй отдельные сервисы, меньше времени уходит на согласования и тестирование.Мы точно одинаково понимаем микросервисы? Для меня микросервис это нечто, работающее в отдельной JVM и выставляющее наружу какой-нибудь REST или любой другой вариант RPC. Технически я не вижу проблем изолировать отдельное приложение (контекст сервлет-контейнера) в отдельном jar-нике, который разрабатывается, тестируется и развёртывается отдельно от остальных приложений. Остаётся "задружить" плохо совместимые версии сторонних библиотек, но в рамках одного приложения такой проблемы быть не должно (или мы что-то не так делаем), а для разных приложений возможны варианты. Поскольку приложения работают в одной JVM - вместо RPC можно просто вызывать функции одного приложения из другого. Разумеется, возникают ньюансы при работе в кластере, но это вполне решабельно и затрагивает, в основном процесс развёртывания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:54 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueУ меня первое приложение с использованием Java на сервере было написано в 2000-м, но тогда он него отмахнулись, сказали на С быстрее, продолжим на нем писать (приложение было на CGI на апаче сервере). Давайте мериться .... У меня первое было году в 98-99. При этом код на Java был универсальный. Приложение работало как на Апачи, так и просто через Live Connect в браузере ))) доступ к БД через FoxPro ODBC драйвер (+JDBC-ODBC бридж), в общем веб-приложение, без веб сервера. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:55 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВ общем, на моем компьютере с 4 ядрами - все работало без проблем, а на реальной железке под реальной нагрузкой, возникали непонятные АНОМАЛИИ (глюки). Когда элементарнейший код (весь код потока в 10 строк!), поток просыпался 20 раз в секунду, выполнял обычный цикл по коллекции в 30 элементов, если в этой коллекции были закрытые объекты, вызывал некую функцию - работал на сервера в СОТНИ раз медленнее (замерялось банальным GetNanoTime) Не нужно забывать об JNI в недрах джавы (что у вас и что на сервере разный код), плюс иногда дубовые решения под нагрузкой работают лучше = тот же atomic сходит с ума (привет от sun.misc.Unsafe) и работает медленее в сотни раз под большой нагрузкой а synchronized нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 14:56 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovТехнически я не вижу проблем изолировать отдельное приложение (контекст сервлет-контейнера) в отдельном jar-нике, который разрабатывается, тестируется и развёртывается отдельно от остальных приложений. А я вообще не понимаю как. В JVM одна из главных проблем - heap. Его никак в рамках апп-сервера между приложениями не изолировать. Работал с микросервисами, было круто ))). На проде запросто работающие сервисы киляли и деплоили новые версии. Т.к. пофиг. Кильнул сервис, балансир клиентов перебросил на запасной (или через секунду дал ретрай), новая версия подхватилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:00 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueНе нужно забывать об JNI в недрах джавы (что у вас и что на сервере разный код) Там ни JNI, ни Atomic'ов не было. Сами грешили сначало на IOControl.resume, (NIO), потом на Atomic'и и конкарент коллекции. А глюку обнаружили на банальном цикле, по банальному листу, 10-ок строк кода. Никакой логики. Тупо как 3-и копейки. Какие-то малообъяснимые приколы с ОС-шедулером происходили. "Вылечилось" настройкой JVM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:05 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevДавайте мериться .... У меня первое было году в 98-99. При этом код на Java был универсальный. Приложение работало как на Апачи, так и просто через Live Connect в браузере ))) доступ к БД через FoxPro ODBC драйвер (+JDBC-ODBC бридж), в общем веб-приложение, без веб сервера. ))) В 1998м меня java только заинтересовала как потенциально полезная вещь, занимался самообразованием, лепил клиент сервер дома, о production речи не шло. Ее далеко не везде воспринимали всерьез. На Java на полную катушку переключился после 2000го и то периодически пробегали работы на С, С++ (по чуть чуть), была пара жирных проектов на С#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:14 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevА я вообще не понимаю как. В JVM одна из главных проблем - heap. Его никак в рамках апп-сервера между приложениями не изолировать.Куча создаёт проблемы, когда профилирование показывает, что проблемы в куче. В моём частном случае проблемы были в коде. Начиная со статического блока инициализации (да, в сервлете). Потом был корявый пул собственного розлива и заканчивалось всё банальной ленью с одним try-блоком там, где требовалось три. Переделывалось всё очень просто: 0. Выкинуты все "глобальности". Вся настройка задавалась в описателях контекста; 1. Общий service() был разбить на отдельные doGet и doPost. Был добавлен и doHead - "для консистентности"; 2. Реализованы init() и destroy(). После всех переделок из одного jar-файла можно было развернуть несколько контекстов с разными параметрами. Точно также можно было перезагрузить контекст без перезапуска всего контейнера - хоть для смены параметров, хоть для развёртывания новой версии. Я понимаю, что у меня был очень простой случай, но, вроде, можно хотя бы попытаться написать сложное приложение правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:15 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovОстаётся "задружить" плохо совместимые версии сторонних библиотек, но в рамках одного приложения такой проблемы быть не должно (или мы что-то не так делаем), а для разных приложений возможны варианты. С этим бывают нехорошие варианты. Не забывайте о багах на сервере, они тоже возможны. Библиотеки бывают очень тяжелые, загрузка одного приложения может наглухо прибить какое нибудь другое приложение на том же сервере. Или оба приложения требовать взаимоисключающей настройки сервера а нам нужно использовать оба приложения как одно целое монолитное приложение, значит придется разносить. Иногда это одна из причин перехода на микро сервисы. Самое главное - модификация одного сервиса и тестирование не затрагивает другие сервисы, это большая экономия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:22 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovКуча создаёт проблемы, когда профилирование показывает, что проблемы в куче. AFAIK в 90% случаев, куча или не настроена или настроена по принципу "Oracle умный, ему виднее" ( C ) админы базы данных При этом, в 90% процентов случаев, паттерн нагрузки и требования к настройкам кучи у разных кусков кода / приложений - принципиально разный. Для REST web'а обычно - максимум под eden, минимум под old. А для каких ни будь служб хранения данных (типа in memory хранилища), все под old, пофиг на eden ))) Т.ч. в 85 % случаев, проблемы с настройкой JVM - это куча. AFAIK по опыту. Разумеется, если в приложение "вечный цикл" и поэтому все стоит колом, то на настройки и кучи и всего остального - глубоко пофиг ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:24 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevBasil A. SidorovКуча создаёт проблемы, когда профилирование показывает, что проблемы в куче. AFAIK в 90% случаев, куча или не настроена или настроена по принципу "Oracle умный, ему виднее" ( C ) админы базы данных При этом, в 90% процентов случаев, паттерн нагрузки и требования к настройкам кучи у разных кусков кода / приложений - принципиально разный. Для REST web'а обычно - максимум под eden, минимум под old. А для каких ни будь служб хранения данных (типа in memory хранилища), все под old, пофиг на eden ))) Т.ч. в 85 % случаев, проблемы с настройкой JVM - это куча. AFAIK по опыту. Разумеется, если в приложение "вечный цикл" и поэтому все стоит колом, то на настройки и кучи и всего остального - глубоко пофиг ))) EJB еще дарит сюрпризов массу... к примеру когда нужно на одном сервере в одном приложении подружить 2 версии клиенских библиотек с EJB. Бывают сюрпризы. Проще сделать 2 сервиса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:28 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueБиблиотеки бывают очень тяжелые, загрузка одного приложения может наглухо прибить какое нибудь другое приложение на том же сервереВарианты бывают разные. Скажем в нашем случае jar-ники сборки должны были развёртываться в WEB-INF/lib. Чтение документации показало, что это (мягко говоря) не самый лучший вариант. Соответственно, я разбил сборку на то, что могло находиться в ${catalina.base}/lib и то, что должно было находиться в WEB-INF/lib. Почти все сторонние библиотеки попали в первую категорию. Дальше должно быть понятно: 1. Сторонние библиотеки обновляются крайне редко и это уменьшало затраты на разбрасывание нового кода по сайтам; 2. Сторонние библиотеки развёртывались до старта приложений, что минимизировало глюки с ojdbc/log4j и уменьшало время развёртывания собственно приложений; 3. Приложение могло развёртываться без перезапуска контейнера, что ранее было просто невозможно. Этим мы почти не пользовались, но наличие возможности лучше её отсутствия Да, в теории, обо всё этом должен думать разработчик, но на практике сисадмины из программистов - так себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:40 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevДавайте мериться ....Крылья... Ноги... Хвосты... detected !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 15:50 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЧтение документации показало, что это (мягко говоря) не самый лучший вариант. Соответственно, я разбил сборку на то, что могло находиться в ${catalina.base}/lib и то, что должно было находиться в WEB-INF/lib. Подобная папка для библиотек разделенных между всеми приложениями есть на всех серверах с которыми сталкивался. Если конфликтов нет, все хорошо, но выносом библиотек в эту папку можно дров наломать, если выносятся библиотеки кодеков (где доступ к кодеку идет по имени а не по классу из singleton регистра в JDK, получится что мы кодеки обновили для всех приложений включая сервер. Пока ваше приложение одно на сервере, все хорошо, можно сервер подкручивать исключительно под ваши нужды. Иногда проще сделать приложение сервером. Простой http сервер входит в JDK a всякие спринг буты на раз два позволяют сделать embedded tomcat или jetty. Старые кастомные решения (к примеру в Jenkins) позволяли собрать war который либо ставился на сервер как веб приложение либо запускался как standalone приложение с сервером внутри. Нужно только добавить свой загрузчик в jar (как это сделано в спринг бут) или в war (то же самое), как в Jenkins. Другая ситуация когда у клиента жирный сервер, на нем много чего еще есть (и что именно есть, вам не говорится пока жалоб не будет на вас) и вам нужно не только свое запустить но и чужое не поломать (такое же требование к разработчикам других приложений на том же сервере). В этом случае ext/lib трогать не рекомендуется (долгие согласования) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 16:02 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
UsmanКрылья... Ноги... Хвосты... detected !!! +1 вот, заняться нечем как искать где бы применить @async=true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 16:03 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueДругая ситуация когда у клиента жирный сервер, на нем много чего еще есть (и что именно есть, вам не говорится пока жалоб не будет на вас) и вам нужно не только свое запустить но и чужое не поломать (такое же требование к разработчикам других приложений на том же сервере). В этом случае ext/lib трогать не рекомендуется (долгие согласования) Давно уже есть виртуальные сервера. Одно приложение - один сервер. Это не проблема. А сейчас есть модные контейнеры, которые почти как виртуальные сервера, только "легковеснее". Так что взаимодействие м/у приложениями, это сейчас проблема не программистов, а внедренцев и админов. Создали на одном сервере приложений "зоопарк" - сами себе злобные буратины. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 06:58 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulТак что взаимодействие м/у приложениями, это сейчас проблема не программистов, а внедренцев и админов. Создали на одном сервере приложений "зоопарк" - сами себе злобные буратины. :-) Конечно все так но не всегда проекты строятся с нуля и не всегда мир вертится вокруг хотелок разработчика. Представьте себе в качестве клиента крупный банк (крупнее Сбера в несколько раз), или крупную страховую контору, вы для них делаете один из кубиков большого паззла, один или два специализированных сервиса или приложение. Или адаптируете свой продукт. 1. У клиента есть инфраструктура и штат поддержки и список имеющихся версий баз данных, серверов приложений и тд. Если у клиента есть Оракл а у вас по умолчанию MS SQL, скорее всего придется перейти на Оракл (и наоборот). 2. Внесение новых решений и технологий сразу порождает вопрос - кто будет заниматься поддержкой. Особенно если технология open source. Либо придется оказывать поддержку вам либо искать другую контору. 3. Согласование, закупка оборудования и тд может занять пару лет а у вас на проект до его запуска к примеру год. Вы можете работать через компанию прокладку (аггрегатор) потому что вы слишком маленькая компания и у вас недостаточно штата и оборотов для прямой работы с заказчиков (недостаточно покрытия для страхового случая и тд), те вы еще отстегиваете посреднику за прикрытие и доступ к крупному клиенту. В этом случае маневра еще меньше так как прибыльность ниже и работаете на перспективу (иногда в убыток) и будете максимально подстраиваться под заказчика, в этом случае "Сам себе Буратино" отзеркаливается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 09:12 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueКонечно все так но не всегда проекты строятся с нуля и не всегда мир вертится вокруг хотелок разработчика. Представьте себе в качестве клиента крупный банк"Узок их круг, страшно далеки они от народа" - дедушка Ленин о декабристах. Типичная (и массовая) ситуация, когда на одном сервере крутятся несколько потенциально несовместимых web-приложений возникает из-за банальной лени заказчика - он уже всё оплатил и не считает нужным работать со своей инфраструктурой. "Всё на одного" - одна крайность, "всё по контейнерам (микросервисам)" - другая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 09:29 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
uid uniqueКонечно все так но не всегда проекты строятся с нуля и не всегда мир вертится вокруг хотелок разработчика. Представьте себе в качестве клиента крупный банк (крупнее Сбера в несколько раз), или крупную страховую контору, вы для них делаете один из кубиков большого паззла, один или два специализированных сервиса или приложение. Или адаптируете свой продукт. 1. У клиента есть инфраструктура и штат поддержки и список имеющихся версий баз данных, серверов приложений и тд. Если у клиента есть Оракл а у вас по умолчанию MS SQL, скорее всего придется перейти на Оракл (и наоборот). 2. Внесение новых решений и технологий сразу порождает вопрос - кто будет заниматься поддержкой. Особенно если технология open source. Либо придется оказывать поддержку вам либо искать другую контору. 3. Согласование, закупка оборудования и тд может занять пару лет а у вас на проект до его запуска к примеру год. Вы можете работать через компанию прокладку (аггрегатор) потому что вы слишком маленькая компания и у вас недостаточно штата и оборотов для прямой работы с заказчиков (недостаточно покрытия для страхового случая и тд), те вы еще отстегиваете посреднику за прикрытие и доступ к крупному клиенту. В этом случае маневра еще меньше так как прибыльность ниже и работаете на перспективу (иногда в убыток) и будете максимально подстраиваться под заказчика, в этом случае "Сам себе Буратино" отзеркаливается... Ох-ох-ох... Вообще при внедрении или даже развитии какой-то ИС (или приложения) всегда можно пропихнуть аппаратную часть. Как минимум во всех проектах, в которых я участвовал этот пункт как минимум рассматривался. Причем предварительно проводился анализ окружения. Что есть и что надо (аппаратная часть). А дальше уже внедренцы должны были с этим анализом и аргументами обосновать заказчику, что таки оборудование надо докупить. Или как минимум подумать о виртуализации. Как минимум лет 10 назад у нас (в Казахстане) пошел массовый переход на виртуальные сервера. И сейчас это фактически "стандарт". Причем переносили и "унаследованные" приложения. Например мне, когда требовалось развернуть небольшой сервис, для какой-нибудь мелочовки (типа обратиться по распианию к определенным сервисам, забрать информацию и положить ее в БД) было проще договориться с админами заказчика на выделение минимальной виртуалки, чтобы моя мелочевка там крутилась. Причем все естественно оформлялось в виде официальных писем и т.д. РП. Но обычно перед бумажным прикрытием была договоренность с админами заказчика. Если же заказчик беден и/или жаден. То опять же официальное письмо, что работоспособность ИС не гарантирована, т.к. аппаратное обеспечение и окружение не соответствует требованиям. Такие случаи тоже были... Но там если что-то "падало", то виноват был "заказчик", но мы всегда "входили в положение" ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 08:44 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39432947&tid=2123001]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 343ms |

| 0 / 0 |
