2012年05月09日
投稿者: phil

時間だけが、真にバーターできる資源です。私たちはドルを賞品やサービスと交換しますが、苦労して得た取引の通貨は各人の時間です。この資源の更新不能な性質のため、予備の時間を、常に一時的な関心があったトピックや、だれもがしゃべり立てるトピックの学習や調査に投入することはたいてい困難です。私は、自分の「時間ができたらやること」リストのいずれかの項目に時間を割り当てる必要があるという口実になる状況に、日常の経験の中で目を光らせようとしています。しばらくの間私のリストにあるのは、Python です。これは、Python のメリットや長所に関する投稿ではなく、それを利用する機会を与えてくれたユース・ケースの検討です。

2012年04月26日
投稿者: tgarrison

最近、私は、ブログのようなフォーマットで、アイテムにサムネールを付けて表示するプロジェクトを立ち上げました。このプロジェクトを最初に開発したとき、ピーク使用時間にサーバーにかかる負荷を減らすためのキャッシング・サポートを追加する目的で、サムネール・ジェネレーターを構築しました。しかし、残念なことに、キャッシング・サポートを追加することを失念してしまい、このサポートなしに製品は稼働を開始しました。

この製品の立ち上げ時、初期のトラフィックは一度に約 110 ユーザーでした。すぐに、サーバーの 5 分間の平均負荷は 1.0 から 50.0 までに増えました。パニックになりましたが、負荷の原因は判明し、サムネール・ジェネレーターに原因があることが分かりました。サムネールを無効にすると、平均負荷はすぐに 1.0 以下に戻りました。これで、サムネール・ジェネレーターに本当に原因があることを即座に確認できました。

この問題の解決方法は、実際にはかなり単純で、ほぼすべてのプログラミング言語に適用できます。ただし、私は PHP で作業していたため、この方法を PHP の例で紹介します。

2012年04月16日
投稿者: klandreth

memcached シリーズのパート I では、ページ全体をキャッシュに入れるための memcached の使用の概念を紹介しました。パート II では、不要なステップを見つけて取り除くことで、アプリケーションの反応性をさらに高めます。memcached へのキャッシングにより、ユーザーがページを表示できるかどうかを判別するために、すべての不要なアプリケーション・ロジックは言うまでもなく、大量のデータベース照会と foreach() ループを既にバイパスしています。匿名のページ要求に対するアプリケーション・スタックをスキップすると、さらに fastcgi のハンドオフ、fastcgi プロセスの fork、アプリケーションのブートストラップ、初期データベース接続 (ブートストラップの一部でない場合) をバイパスすることができます。

2012年03月31日
投稿者: klandreth

おめでとうございます! [優れたソーシャル・メディア・サイト] に Web サイトのフロントページが作成されました。収益の実績でのみ評価されるビジネス・ユーザーは楽しく使用を開始しますが、サーバー管理者は、動的に生成されるコンテンツの量から apache/mod_php スタックに負荷がかかることの影響に備えます。

標準的なトラフィックの量は、サイトに押し寄せる新しい匿名ユーザーの波と比例して、計り知れないように見えます。さらに複雑なことに、サイト更新は瞬時に行われ、ユーザーの遅延時間をほとんど発生させません。

サイトを迅速化する方法は、照会オブジェクトのキャッシング、リモート変数、静的メモリーの使用など、いくつもあります。
これらの方法はすべて完全に有効ですが、いずれも複雑な無効化ロジックが必要になり、通常はアプリケーション・コード・ベースのリファクタリングを行う必要があります。いずれも、現在の状況における時間的制約では許容されません。最も簡単にサイトを迅速化する方法は、表示されたページをキャッシュに入れて、キャッシュ・ページを表示することです。

2012年03月09日
投稿者: phil

ショッピング・カートで CCI を注文する場合、現時点では VLAN を指定できません。VLAN にバインドされたファイアウォールやロード・バランサーなどの場合は例外がありますが、そのような場合の他に、共有 VLAN の方が適している状況が多数あります。幸い、API を使用して注文する場合は、これを実行できます。

SoftLayer_Container_Product_Order_Virtual_Guest の virtualGuests プロパティーを取り込む際、SoftLayer_Virtual_Guest の配列を作成する必要があります。通常は、このプロセス中にホスト名とドメインを指定するだけですみます。ただし、特定の VLAN を考慮して注文する場合は、primaryNetworkComponent->networkVlan->id または primaryBackendNetworkComponent->networkVlan->id を定義することにより、VLAN ID も組み込む必要があります。

2012年02月24日
投稿者: phil

API 用にスクリプトをまとめているときに、プロセスから可能な限り複雑さを取り除きたいと思います。API 呼び出しの失敗の原因となる大量の特異性を取り除いてトラブルシューティングを簡易にしたり、単に、アイデアを考えてから、後でロジックを検討したりすることができると良いと思います。

使用するテクノロジーによる複雑さを取り除くために、それぞれ独自のプロセスが用いられていると思いますが、私の経験では、SLAPI の場合、Bash シェルcurlREST エンドポイントが有用です。このトリオにより、ループの外部で配列を定義するのを忘れないか心配することなく、API を呼び出すことができます。

2011年09月26日
投稿者: phil

cPanel & WHM 11.30 のリリース以降、コントロール・パネルのユーザーは、ネイティブの DNS クラスター管理を SoftLayer と UK2Group が (ブランド VPS.NET で) 提供する DNS サービスに取り込むことができるようになりました。地理的に分散したスケーラブルな DNS アーキテクチャーを使用するメリットは、それらだけに注目した投稿で評価されていますが、私の注意を引きつけたのは、この機能の実装でした。
SLAPI ユーザーに単に DNS 管理権限と関連する SLAPI 鍵を提供することで、cPanel は SoftLayer DNS インフラストラクチャーとの対話をシームレスに統合できます。簡単なセットアップが完了すると、現在 SoftLayer の DNS サーバー上にあるすべてのゾーンを管理できます。

2011年08月31日
投稿者: tgarrison

If your job is anything like mine, there is just never enough time to finish everything. When working on projects, I try to find ways which can speed up my development process. There are many tools and ideas which can help greatly in this area, however, sometimes very small behavioral changes can result in a cumulative win. When working on web-based projects in PHP, I often find that I need to see what’s contained in an array or an object so I can get my code just right.

2011年08月23日
投稿者: ktrachier

Simple Object Access Protocol (SOAP) は、HTTP を介したサーバー間のリモート・プロシージャー・コールを基礎としています。データは XML としてフォーマットされます。つまり、SoftLayer API から、安全で最適なフォーマットのデータが送受信されます。REST API よりもセットアップに時間がかかる可能性がありますが、プログラムでインターフェースを使用するため、スケーラビリティーに優れています。SOAP は、HTTP などの既存のプロトコルを経由でき、オブジェクト指向の構造を使用できる独自の機能を備えているため、SoftLayer API との対話に適した選択肢となります。

この投稿は相当に技術的な詳細を扱うため、すべての読者にとって魅力的な内容であるとは限りません。SOAP API の開発に着手する方法に関心がある場合は、この投稿は、良い出発点になるでしょう。

2011年08月04日
投稿者: clee

お客様企業が海外の顧客と取引している場合、さまざまなタイム・ゾーン間での時間変換を大量に行っていると思われます。一部地域には夏時間調整があるため、時間変換の扱いには注意が必要です。混乱を招くもう 1 つの要因は、PHP のデフォルトのタイム・ゾーンが欠落しているか、認識されていないことです。

PHP では (その他の言語でも)、時間を変換するために基本のタイム・ゾーンが必要です。PHP に対してデフォルトのタイム・ゾーンが構成されていない場合、デフォルトのタイム・ゾーンは推測されます。有効なタイム・ゾーン値が見つかるまで、下記の順序でデフォルトのタイム・ゾーンの検出が試行されます。

Pages