Microsoft Azureを使わないべき400の理由とは?驚愕の体験談も紹介
引用元:https://news.ycombinator.com/item?id=43210536
面白い話!数年前Mojangで働いてた時、Microsoftに買収されたからAzureに移行しようとしてたんだ。でも、結局はAWSの高い請求書の方がマシだったし、Azureは使えないって思ってる。
Jetで働いてた時、AWSの代わりにAzure使ったけど、CosmosDBが最悪だった。請求が予測できず、SDKもバグだらけで、遅くなるとWebUIが使えずアプリを落とす羽目に。少し改善したなら、またトライするかも。
Jetと協力していたチームの話、Azureの問題を解決するために顧客に壊してもらうという戦略があった事が興味深かった。
>“壊すことで解決する”というのは理解できない。安定したアーキテクチャを考えるべきだと思う。
数年前に古いCosmos DBを使っていたプロジェクトを見たら、Entity Frameworkの設定が面倒だったが、更新後は単純なCRUD操作に変わった。すごい改善だ。
>それにしても、10msは長い気がする?
>その通りだけど、クラウドでの実装に問題がある場合は仕方ない。CosmosDBはグローバルに分散してるし。
確かに長いが、アメリカ東部1から2は10〜15msくらいだよ。
その通り、ちょっと誇張しちゃったな。ごめん。
謝る必要はないよ。確かにKVルックアップは数マイクロ秒でできるし、HTTPリクエストもローカルならもっと速い。外部サービスで遅くなるのは考えものだね。
誰も頼んでない数字だね(笑)ConcurrentDictionary<K, V>の読み取りレイテンシはキャッシュ内のデータで約7-15nsだし、RAMからだと75nsから150nsかかる。別の実装のNonBlocking.ConcurrentDictionaryは全データがL1キャッシュにあって分岐予測が完璧でも整数ベースのキーで3.5-5nsに達することもあるよ。
>”データベースのリソースを過小供給してたら遅くなって、リソース増やすためのWebインターフェースも遅れるかも!”
なんでこんなことになるんだ?普通は制御プレーンAPIがデータプレーンを再構成するでしょ?!
Microsoftが'90年代にHotmailを買収したときの話を思い出すよ。FreeBSDとSolarisからWindows NT/IISへの移行に何年もかかったけど、あれが成功すれば世界最大のメールサービスがWindowsスタックで動くことになるはずだった。
あ、そのプロジェクトに関わったよ。それがWindowsに良い要件をもたらして、最終的にはWebベースのサービスが整備されたんだ。
マジでWindows 2000は当時最も安定したOSだったよ。98の代わりに2000サーバーをデスクトップOSとして使ってたくらい。95/98/MEのクソみたいな状況とは全然違った。
Windows 2000サーバーはピークのWindowsだった。以降のバージョンは管理が難しくなって、UIがどんどん悪化した。RDPで長時間過ごす人には、Vistaベースのサーバー製品は最悪。Windows 2019は嫌いじゃないけど、Linuxの方が簡単で速くて、2025年にIISやSQL Serverを使う気にはなれない。
Windows XP x64エディションはかなり良かったし、NT4もなかなか。2000は確かに良かったけど、デザインの懐古もあるよね。XPやMeは見た目が可愛らしかったけど、2000は真面目なビジネスOSって感じだった。やっぱり一番好きなのはWin 7 Ultimate、Steve Ballmer Editionだな。
XPへの懐かしさは分かるけど、サーバーOSとしては2000が最も軽量で管理しやすかった。MSがLinuxに負けた理由が本当に気になる。昔は本物の競争だったけど、今は何かを展開するのにWindowsを選ぶのは狂気だね。
Windows Serverにも役割はある。AD DS、ファイルサービス、SQL Serverが主なものだけど、Linuxにはこれらを’より良く’できるアプリはないよ。
MSFTがLinux上にActive Directoryとその周辺サービスを構築してくれればいいのに。Sambaでなんとかなるけど、統合度が劣る。自分の妄想としては、テキストモードで起動するNTの’ディストリビューション’があって、更新されたInterixサブシステムとWin32があれば完璧だと思ってる。
NTがテキストモードで起動しても、今のソフトには役に立たないよね。UIライブラリに依存してるから。CLI専用のNTがあればいいけど、Microsoftはオンプレミスのソフトに興味ないみたい。 >“Windows 2000は昔、一番安定してたOSだった” 特に安定さを比べるのは難しいけど、Win2kでは5〜7年使って全くクラッシュしなかった。Linux使いだからMicrosoftファンではないけど、確かに安定してたよ。 >“Windowsがウェブベースのサービスを支えるための道を開いた” SQL Serverは実際にはSybaseだし、UNIXでも動作可能だった。20年前にLinuxベースの大規模なSybase ASEのアプリに関わってたけど、T-SQLは本当に良かった。 ビジネスは理論的には金儲けだけど、実際にはプライドで動いていることも多いよね。 移行の最大の障害は何だったの?AWSのプロプライエタリな部分かな?何が移行を難しくしたのか、いつも学びたい。 これ数年前の話だから、今は多くの問題が解決してると思うけど、確かにAzureが問題だった。Kubernetesのホスティングソリューションを使おうとしたけど、ポッド間の接続が不安定でスケーリングも不確実だった。 親がAzureをダメだと言ってるけど、実際にはAWSやその使い方が問題かも。本当にAzureからAWSに移行できない場合、どちらを見限ることになるんだろう。 自分の経験ではAWSが安定していて、かつ移行リソースも多かった。Azureへの移行は予期しないバグとの闘いだった。Microsoftが大きな割引を出してきたからAzureに行く理由があったけど、AWSは楽だった。 現在Mojangの社員だけど、数年前に完全にAzureに移行したみたいだ。年々ゲーム向けの技術も進化してるしね。編集:AWSからAzureに移行したよ :) 現在Mojangの社員なんだけど、Mojangアカウントを返してもらえる?強制的にMicrosoftに移行させられて、全然ログインできないんだ。Linuxだからボット扱いされてると思う。返金してもらえる? 子供にMinecraftを買ったけど、Windows 10に設定するのに2時間かかって結局諦めた。古いUbuntuのノートパソコンで遊んでもらってる。 AWSから別のクラウドに移るのは苦労すると思う。GCPに移行中だけど、問題が多すぎる。 この理由で私はプロプライエタリサービスを避けてる。EC2、Postgres、S3使えば、どのクラウドでもあるいはベアメタルでも問題なくやっていけるよ。 確かに高くつく方法だよね!AWSを利用する理由の半分は、そのSaaSサービスを使うことだと思う。顧客が少なくとも基本的なことはやるけど、全体をAWSで組むのは危険だと思う。自分はセルフホスティング派だよ :) Dockerダッシュボード作ってる。 その通り、金がかかるよ!規制の厳しい業界では、監査があるからランダムなVPSプロバイダーを見せるのが難しいかもしれないけど、AWSを全て使うのは危険だと思う。自分はセルフホスティング派だよ! 今まで試したベアメタルのS3実装には満足してない。クライアントライブラリと各実装の互換性にも問題がある。最近の問題でバグ報告しようとしたら、$29とGCSの使用量に3%の手数料がかかるみたいだね。最悪。 その件はバグレポートのためのサポート契約の価格だよ。月$29か月々の請求の3%のどちらか高い方。でも多分、バグ報告してもbotoじゃなくてGoogleのライブラリ使えって言われるだけだと思う。 プロプライエタリサービスのS3なんだけど、最近Amazonが契約内容を勝手に変更して、全てのソフトがそれに対応するのに苦労していたらしいよ。 それはさておき、Microsoftは来週には別の名前に変えて、管理UIとAPIを完全に変更するんだろうな。今度はDynamics CoPilot OneAI 365 for Business OneCloudって呼ぶみたいだし。 でも、一部のURLはまだ”live.com”で、他は”outlook.com”、他は”sharepoint.com”、他は”msbinbows.com”みたいになるんだよな。 今は本当にそれを感じてる。3ヶ月前と全然違うものを手伝ってて、検索結果に表示されるドキュメントとも全く合わないけど、実際に正しいKB記事へのリンクはフォーラムポストで一度だけ言及されてるらしい。少なくともその作業請求はできるけど。 私の経験(オンプレからLinode、AWS、Azureまで色々やってきた)では、マネージドサービスの使用に比例してクラウドインフラに対する不満が増える。仮想マシン(多分マネージドRDBMS付き)に依存するチームからはあまり不満を聞かないよ。スクリプトのメンテはちょっといるけど、それはマネージドサービスの問題と特異性に苦しむよりも小さな不便だし。 今は良くなったと思うけど、2016年にはAzureでVMをプロビジョニングするのに凄く時間がかかって、インスタンスをプロビジョニングするたびにMicrosoftのエンジニアがサーバーを買いに車で行くって冗談言ってたんだ。 自分のスイスの銀行が営業時間外の振込みをサポートしていないことを思い出す。UBSのアプリで”送信”をクリックする時、ハンス・ウエリって名前の guy がテープ印刷物を受け取りに行って、地下で銀のピースを一つの引き出しから別の引き出しに移動させるのを想像しちゃう。 大丈夫。2005年以降にITを更新してないクライアントのせいで、いくつかのクライアントをパイプラインで起動しないといけない。立ち上がりは1分未満で、ゼロからリソースグループを作成し、2つのVMと付随するリソースが揃う。 VMの再起動はボタンを押してから20分もかかるなんて遅すぎだろ。 2016年のAzureのうわさでみんなが文句言ってるなら、このスレのコメントが納得できる。でも、最近はAzureもAWSも一長一短じゃないかな。Azureに対する反発もまだ残ってるみたいだけど、AWSが完璧ってわけじゃないし。 この投稿には混乱してるな。管理されたサービスはVMよりメンテが楽だからお金払ってるんだろ?それを無意味だって言うのは違和感がある。多くの企業がクラウドに移行する主な理由は、この管理サービスだと思うけど。 管理サービスは無意味じゃないよ。時間を節約できるし、転換先も考えると違いに対応するための時間はかかるかも。クラウドに移行する主要な理由は、所有するのではなくエネルギーやハードウェアを借りる柔軟性だよ。 うちは管理サービスを使うけど、既存のソフトウェアの管理版だけ。Managed Postgresは使うけど、AzureやAWSの独自データベースは使わないから、移行が楽になる。 あはは、Azureのバックアップを使って特定のテーブルを元に戻そうとしたら面倒だよ。確かAWSではそれが可能だったはず。Azureでは、データベース全体しか復元できないし、ダウンロードもできないよ。 >ダウンロードはできるよ モード方法と場所を簡単に教えて。Azure SQL Databaseのこの機能を探して大分時間を無駄にしたから、詳細がほしい。 Azure SQL Databaseでは、バックアップを新しいデータベースに復元したり、既存のものをbacpac形式でストレージアカウントにエクスポートできるよ。そのファイルはダウンロード可能。sqlpackage.exeを使えば、ポータルを使わずにローカルでも可能。ただし、アクティブなデータベースに接続する必要があるから、Azureのバックアップをダウンロードしたいなら、まず復元しなきゃ。Azure Postgresqlについては、pg_dumpとpg_restoreが使えると思う。 はい!もっと言うと、スタンダードに従った方が楽になるってこと。VMはcloud-initやイメージフォーマットなど、標準の一部だよ。2025年には、管理されたKubernetesはプロバイダー間で大差ないはずだよ。 もしレンタルマシンだけなら、みんなDigitalOceanやAWSのEC2使ってるだろうね。人はRDSやEKS/GKEを使って、運用のオーバーヘッドを避けてる。問題が出たらAmazonのエンジニアが対処してくれるしね。 管理されたIaaSで時間を節約したことはないな。オペレーション担当を雇わなくて済むと宣伝されてるけど、サプライヤーとの関係を管理する人は絶対に必要だよ。SaaSは全然違うけどね。 VMのプロビジョニングはプロバイダーが維持する方が簡単。顧客にとって管理されたサービスのメンテナンスは楽なはずだけど、これは議論の余地があるね。 クラウドサービスは動いてる時は素晴らしいけど、トラブルが起きたらデバッグする方法がないか、再起動しかできないこともある。AWSの管理されたIPsecソリューションを使ったけど、障害が発生した時の対応がイマイチだった。EC2も変なことがあったな。 もっと理解してもらいたい。ボスは賛成してるけど、完全にはコントロールしていない。ベンダーロックインやOSSとの互換性の欠如が心配。”簡単だから”って言われても、実際どうなるか見ものだね。 Azureの反競争的行動が、AWSの価格引き下げを止めさせた原因でもある。2014年前はAWSは技術コストが下がると価格を定期的に引き下げてたけど、Azureがそれに合わせたからね。これは競争を殺すための策かもしれない。 ”より良い価格を見せてくれれば、それに合わせる”っていうのは新しい戦術じゃないし、クラウドに限ったことでもないよ。 Azureのツールとの統合が素晴らしいから好きになりたかったんだけど、VMの可用性やUXの不具合に苦しんだ。AWSではマシンを得るのが簡単だったのに。Azure Functionsは経験が変で、ログを取得するのもすごく面倒なんだ。 ああ、リソースが必要なリージョンに利用可能なものがないのは最悪。SQLサーバーが立ち上がったって言っても、実際には20分待たされることもあるし、Terraformのtime_sleepはAzureの問題対策だったはず。 Azure App Servicesって、中間的な選択肢だよね。いろいろ機能があって、セキュアなWin Server/IISコンテナだし、自動スケールもできる。価格はVMより高いけど、セキュリティや更新を考えると楽だよ。 App ServicesはLinuxコンテナでも動くけど、Windowsコンテナの方が機能が多い。メンテナンスを考えるとVMよりかなり安く済むよね。 Azureはサービスの抽象化が最悪。30人の小規模な開発チームでAzureの設計がひどくて、業界標準に従って抽象化して別のプロバイダに移行したよ。コストも1/10で、開発体験は最高だね。 AWSとAzure両方使ってるけど、Azureのポータルが好きだね。AWSは難しい環境に入るとストレスが溜まるけど、Azureは必要な機能が直感的に整理されてる。 確かにUIは遅いけど、AWSみたいに多くのサービスを切り替えずに済むから、Azureの方が楽なんだよね。AWSはリソースを探すのが面倒で、常にコンテキストを切り替えないといけないから大変。 AWSのページは別々のチームが作ってるのが見える。結局IAACって言うけど、Azureは全てのリソースを一元的に見やすくできるのは良い点だね。 Terraformのステート使ってルートテーブルのエントリ見てんの? ENIはコンソールのEC2の下にあって、APIやCLIではEC2と一緒に全部あるよ。インスタンスのネットワークタブ開いてそのENI IDクリックすればリソースに飛べるし、サブネットからはルートテーブルも2クリックでいける。リーチビリティアナライザー使えば、ソースとデスティネーションIPやポートのルーティングテーブルやSGルールも確認できる。以前Azureでネットワークエンジニアやってたけど、サポートやドキュメントがひどくて、問題多かった。 >”あなたが真剣だとは信じがたい” OPはAzureのAPIが遅くてひどいのと、UIデザインの違いを言いたいんじゃないかな。APIは最悪だけど、UIデザインは結構いいと思う。 リンクが新しいウィンドウで開けないのがイライラする。右クリックできないし、真ん中クリックも効かない! 神よ、3年もこれについてフィードバック出してるのに、新しいタブで開けないのは本当におかしい。以前はできてたのに、なんでこんなことになったのか疑問。 おそらく有料のトロールだろう。まともなエンジニアがAzureポータルを良いと思うはずがない。UXがひどく、複雑すぎて直感的じゃない。全ての情報が画面に詰め込まれて意味不明。 Azureポータルの大きな痛点は、リソースがいつ作成されたかや誰が作ったかが表示されないこと。これは許せないと思う。 最近は当たり外れがあるけど、確実に改善してはいると思う。共通のエンジニア基準だよね、同意するよ。もっとコメントを表示(1)
本当に?他のWindowsと比べても、OS/400やNetware 3、AIX、Solaris、OS/2 v2には到底及ばなかったよ。
その後、.NETとSQL ServerがLinux用にリリースされ始めたね。もっとコメントを表示(2)
もっとコメントを表示(3)
Azure使った時、ポータルが本当に痛かった。こういう意見と真逆の人いるから、信じられないのも分かるけど。