Роскомнадзор достучался до Azure

Роскомнадзор обнаружил автоматический пост, где негативно отзывались о мусульманах. И потребовал его удалить, дабы ничего не разжигать. Уведомления были посланы в Azure. Обычно Azure игнорирует такие письма на корявом русско-английском языке. Но в этот раз, когда речь пошла не про хохлов и кацапов, а про мусульман, Микрософт решил разобраться. И провел аудит системы безопасности сервера. Который, надо сказать, является лишь стандартной виртуальной машиной настроенной по умолчанию. И конечно же Микрософт нашел ошибки в дефолтной настройке win server 2012. Об этом направил письмо мне со ссылками на документацию по исправлению обнаруженного. Однако ссылки на документацию, приложенные в письме, за давностью лет уже не открываются. Документация устарела.

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


Метки: , , , ,   


CDN for HTTPS на Azure

В этом году Azure совершил еще один небольшой прорыв, сделав возможность использования CDN для HTTPS соединений. Фактически это позволяет экономить на сертификате SSL, так как сертификаты для CDN генерятся автоматически и без дополнительной платы. Как это работает и какой сертификат будет подставлен, можно видеть на сайтах social.t30p.ru и light.t30p.ru, которые теперь должны быстрее открываться.

 


Метки: , ,   


Насколько инновационен Микрософт

Есть у Microsoft облачный сервис Azure, которым я давно пользуюсь. И последние месяцы наблюдаю, как инновационно и умело разработчики вгоняются назад в прошлое к использованию текстовых файлов в виде хранилищ баз данных. Раньше был SQL и BlobStorage для хранения данных.

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

UPD: Иными словами получается, что плачу 1) за виртуальную машину, 2) за дисковое пространство, которое она занимает 3) за любой исходящий травик 4) и за любую операцию чтения-записи. Чудное разбиение одной услуги на 4 платных позиции.


Метки: , , ,   


Исправление производительности Azure SQL (DTU)

Не прошло и 5 лет, и выяснилось, что Azure SQL оптимизирован для работы только с параметризованными запросами. Так как для всех запросов, приходящих к базе, системой наворачивается сложная аналитика, которая и гробит производительность, если этот запрос каждый раз похож на новый. И чтобы все запросы были для системы анализа на одно лицо необходимо их представлять в параметризованном виде. И оказывается можно просто заставить SQL все запросы принимать в правильном виде простой командой

ALTER DATABASE [dbname] SET PARAMETERIZATION FORCED

Вот такая вот оптимизация на ровном месте. И DTU/CPU сразу меньше есть сгорается в пустую.


Метки: , ,   


Рекомендованные индексы для Azure SQL

Одно из последних изменений в AzureSQL - рекомендованные индексы. Система анализирует запросы, которые выполняет база данных и предлагает индексы для их оптимизации. Как итог, все выглядит следующим образом - Микрософт придумал проблему в виде DTU, которого всегда не хватает и сам же эту проблему решает в автоматическом режиме. Система сама решает свои же проблемы. На скриншоте ниже видно, что автоматически добавленный индекс экономит мне 0,38 DTU пожирая дополнительное место. Но так как места для всех баз выделено под 250Гб, то места не жалко, можно добавлять сколько угодно индексов, если система будет считать, что она работает быстрее.


Метки: , ,   


Разное, проблемное.

Итак значит, обо всем и ни о чем:

  1. Youtube отклонил заявку на монетизацию моего канала "we are unable to accept your application because your channel does not contain sufficient original content." То есть контент на их взгляд не достаточно уникальный.
  2. Apple не дает мне обновлять приложение t30p в AppStore ссылаясь на показ user-generated content, требуя, чтобы был модератор и там прочие требования, которые нужно еще заморочиться выполнить. Тем, кто мне пишет, что перестает работать приложение - простая пере-установка должна помогать.
  3. Microsoft с 20 июля переходит на msvs2015, к ней должны работать ключи полученные через BizSpark, так что проблем не будет.
  4. С сентября Azure закрывает Azure SQL Business, переходят на другую тарифную сетку. Требуется перевести базу данных. Проблема в том, что сколько я не пытался переносить ранее - всегда возникали проблемы с производительностью. Скоро придется перейти в принудительном порядке. 



Метки: , , , ,   


Как запустить Wordpress в Azure

Казалось бы, самый простой сценарий по запуску блога Wordpress в облаке. Однако, даже тут есть подводный камень и ошибка в официальной инструкции, которая опубликована на сайтах Микрософта. В этой инструкции предлагается развернуть отдельно сервак с Apache+Php и отдельно Mysql DB. Проблема последнего в том, что Mysql не является базовой возможностью Azure и оно заводит базу данных предоставленную внешним сервисом с тарификацией по дополнительному тарифу. То есть шанс, что будут списывать бабки с карты втихую.

Правильное решение - это в том же окне поиска обзара диска для разворачивания, найти диск Wordpress от Bitnami. При этом база данных mysql будет поднята на той же машине, что и Apache/PHP. Что дешево (даже бесплатно) и работает без сбоев, вызванных передачей по сети.


Метки: , , ,   


Минусы Windows Azure и проблемы облачных технологий

Уже три года пользуюсь облачными технологиями и пора написать негативный пост. А то получается, как сектами вида МММ - все кто вступают в облачные технологии, то тут же начинают их хвалить, не казаться же дурами. 

  1. Главный минус, вы никуда уже не денетесь от облачных технологий. Виртуализация всюду и у вас нет выбора, рано или поздно придется переезжать в облака. В крайнем случае, это будут приватное облако на базе Windows Server 2012 R2 Datacenter.
     
  2. В России не строятся облачные дата центры международного уровня. Согласно западному империализму мы должны оставаться варварами. Обычно это объясняют малыми масштабами рынка и т.п. В итоге могут возникнуть трудности, если против нас применят санкции или связь с Европой оборвется.
  3. В облаках вы за все платите в полтора или два раза больше. Тем самым обеспечивается высокая доступность. Например вы не можете отказаться от дублирования ваших данных в Blob Storage (Locally
    Redundant).
  4. Вы платите за себя и за того парня. Прирост пользователей в облачные технологии замедлился. Поэтому, чтобы мощности не простаивали, активно продвигаются бесплатные тарифы. Такие как Bizspark, Ultimate MSDN. То есть полно людей, которые бесплатно пользуются тем, за что вы платите.
  5. Любой сбой теперь касается и вас. Несмотря на обещанную надежность, облака регулярно барахлят, как можно видеть в статусах. Примерно раз в месяц что-нить да сбоит. Даже если это линия связи с другим континентом, это тоже может вас затронуть. Отчасти сбои связаны с регулярным введением новых возможностей и удешевлением старых.
  6. За сбой в работе вам не заплатят. Был случай, когда сбой длился часов 6-8. На вопросы в тех.поддержку был получен ответ, что для компенсации вам необходимо предоставить платные результаты мониторинга ваших сервисов одной из глобальных компаний, которые сертифицированы Микрософт.
  7. Скрытые копейки. Чтобы формально быть дешевыми облака часто неявно прячут некоторые расходы. Так например, если запустить Virtual Machine, то также придется платить и за 120Гб логический диск порядка 4р в месяц за Гб. Также цены для физических и юридических лиц могут отличаться.
  8. Индусы. Так как в Индии построен эффективный полу-фашизм, то индусы работают строго по инструкции и отойти от правил для них не возможно в принципе. Поэтому-то они и выбраны в качестве международной технической поддержки для компании Микрософт. Часто переписка с ними ведется несколько месяцев в течении которых вам успеют ответить 3-4 индуса, два из которых успеют сходить в отпуск. Их фишкой является решение не тех вопросов, которых вы от них хотите, а ваших откладывание в долгий ящик.



Метки: , ,   


Отключение логирования в Windows Azure

Есть такая проблема, как слишком много логов. Они по умолчанию включены в Azure и пишутся на диагностический диск. Если у вас роль маленькая, то диск этот размером в 15ГБ (+5ГБ сама система). К слову, есть такая фишка, что если заводить Extra Small Virtual Machine, а не Extra Small Web Role, то можно получить за теже 600 р в месяц диск на 120ГБ. Микрософт такое несоответствие объясняет тем, что на виртуальные машины обычно доставляют большие программы, вот и выделили места как у Small Instance.

Так вот, эти 15ГБ быстро исчерпываются, если у вас много обращений и автоматически не чистятся. Такое приводит к тому, что у роли вызывается процесс Reimage, что дает заметный перебой в работе. Чтобы в автоматическом деплое отключить логирование (конечно же для VM можно соединится по RDP и ручками настроить IIS как надо), достаточно подсоединить к проекту библиотеку Microsoft.Web.Administration, которая находится по пути C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll. А в фенкции старта самой роли прописать следующее:

Copy Source | Copy HTML
  1. var iisManager = new ServerManager();
  2. Configuration config = iisManager.GetApplicationHostConfiguration();
  3. ConfigurationSection httpLoggingSection = config.GetSection("system.webServer/httpLogging");
  4. httpLoggingSection["selectiveLogging"] = @"LogAll";
  5. httpLoggingSection["dontLog"] = true;
  6. iisManager.CommitChanges();

Метки: , , ,   


Windows Azure Storage Certificate Expired - epix fail

Вчера у многих перестали работать BlobStorage, которые открывались по HTTPS. И причиной тому стало истечение сроков валидности серверного сертификата на стороне Azure. Полное обсуждение проблемы на stackoverflow. Но к слову сказать, что отказаться от HTTPS и полностью перейти на HTTP - не лучший вариат, так как если используется локальная отладка с автоматической заменой при публикации на сточку соединения с этим хранилищем, то автоматически будет подставлено соединение в виде HTTPS (опция Update connection string when publishing to Azure). Поэтому наилучшее решение - оставить HTTPS и добавить в Application_Start выполнение команды, отключающей проверку серверного сертификата:
ServicePointManager.ServerCertificateValidationCallback = (s, certificate, chain, sslPolicyErrors) => true;
UPDATE:
Проблема оказалась несколько шире и истечение сертификата привело к нарушениям в работе Azure CDN во всем мире. Это не удивительно, ведь CDN у микрософта построен на репликациях blobstorage.

Ниже пример кода ошибки для поисковиков
System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.ConnectStream.WriteHeaders(Boolean async) --- End of inner exception stack trace --- at System.Net.HttpWebRequest.GetResponse() at System.Data.Services.Client.QueryResult.Execute() at System.Data.Services.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents) at System.Data.Services.Client.DataServiceQuery`1.Execute() at System.Data.Services.Client.DataServiceQuery`1.GetEnumerator() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) at System.Data.Services.Client.DataServiceQueryProvider.ReturnSingleton[TElement](Expression expression) at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)

Метки: , , ,   


  • Новее
  • 1

Кто я?

Программист. Я слежу за блогосферой и знаю, как будет развиваться интернет. Когда у меня есть время я даже прилагаю для этого усилия. Подробнее

Последние комментарии

Не отображать

Topbot at FeedsBurner
 

копирайт

Все мысли, высказанные в блоге, являются моим мнением и за это мнение меня никто не забанит! Кроме того, никто не имеет право копировать материалы блога без использования ctrl+C/V!

© Copyright 2008