Agile Cat — in the cloud

Enterprise Mobile App の調査:情シスのキャパに対して、モバイル開発は5倍のスピードで突っ走る!

Posted in DevOps, Enterprise Social, Mobile, On Monday by agilecat.cloud on August 10, 2015
Enterprise Mobile App Development: Growing 5x Faster Than IT Can Respond
By Dick Weisinger – August 6th, 2015
http://formtek.com/blog/enterprise-mobile-app-development-growing-5x-faster-than-it-can-respond/
_ formtek
Demand for enterprise mobile applications is expected to grow five times faster than the ability of IT organizations to respond between now and the end of 2017, according to Gartner.  The growth is being fueled by the rapid increase in number of mobile phone devices which is expected to reach 2.1 billion units by 2019.
 
エンタープライズ・モバイル・アプリに関する需要だが、これから 2017年末までの間において、IT 組織の許容力と比べて、5倍というスピードで成長していくと、Gartner は予測している。この成長は、2019年まで 21億台に達すると予想される、モバイル・フォンの急激な増加により加速していく。
 
Dali_5Today employees typically use three different devices on a daily basis, but trends like Internet of Things (IoT) and wearable devices are expected to increase the number of devices used daily to five or six devices.
 
今日において、一般的な企業などに属する従業員たちは、日常的に 3種類のデバイスを使用している。しかし、IoT および Wearable デバイスといったトレンドにより、前述のデバイス数は5種類〜6種類ほどに増加すると予想される。
 
Adrian Leow, principal research analyst at Gartner, said that “organisations increasingly find it difficult to be proactive against competitive pressures, which is resulting in their mobile apps becoming tactical, rather than strategic.  We’re seeing demand for mobile apps outstrip available development capacity, making quick creation of apps even more challenging. Mobile strategists must use tools and techniques that match the increase in mobile app needs within their organizations.”
 
Gartner の Principal Research Analyst である Adrian Leow は、「 競合のプレッシャーに対して、先回りして戦っていくことの困難さに、直面する企業が増加していくだろう。言い換えれば、モバイル・アプリに求めるものが、戦略的というより、戦術的なものになってきているのだ。つまり、モバイル・アプリに対する需要が、調達できる開発能力を上回るという現実に、私たちは直面しているのだ。その結果として、短時間でアプリを開発することが、ますます困難になってきている。モバイル戦略家たちは、組織内で必要とされるモバイル・アプリの増加に適合するように、ツールやテクニックを活用していかなければならない」と述べている
 
In order to be able to keep up with mobile app demand within organizations, Gartner recommends:
 
組織内で増大していくモバイル・アプリの需要に対応していくために、以下の能力を獲得すべきと、Gartner は推奨している:
 
  • Make Application Development a high priority for the business
  • Adopt a bimodal approach
  • Use rapid development app development tools
  • Supplement in-house development skills with outsourcing
 
  • モバイル・アプリ開発の優先順位を、ユーザー企業内で高めていく
  • 多様性のあるアプローチを適用する
  • 迅速なアプリ作成を可能にする、適切な開発ツールを採用する
  • 社内開発のスキルを高めながら、アウトソースも活用する
 
ーーーーー
On Mondayサービス/プロダクトの供給という側から見て、この5年の間に、最も大きく変化してきたのがモバイル開発なら、最も保守的に進んできたのが情シスなのかもしれません。 それぞれの社会における役割が異なるため、このような比較自体に意味はありませんが、モバイルを取り込まざるを得ないという現実が、エンタープライズに対して大きな変化を要求しています。 そうなると、情シスにとっても、モバイル対策が欠かせなくなってきます。 どのようにしたら、両者を隔てる深い溝が埋まるのでしょうか? 考えるべきことが、たくさん有りそうですね。_AC Stamp
ーーーーー
<関連>
IT as a Service の調査:クラウドと情シスの、新しいコンペのスタイルになるのか?
Hardware の調査:IoT によるイノベーションは、新たなハードウェアが具現化していく
Future Growth の調査: 大半の CEO たちが、テクノロジーを最重要視している
IoT の調査: 各種デバイスが生成するデータの、90% 以上が廃棄されているという現実
Data Warehousing の調査: Snowflake が、Azure と AWS にガチンコ勝負を挑む
 
 

Microservices の調査:Amazon.com におけるマイクロサービス・アーキテクチャとは?

Posted in Amazon, DevOps, On Monday by agilecat.cloud on May 11, 2015
Microservices: The Rise of the Minimal Component Architecture
By Dick Weisinger – May 8th, 2015
http://formtek.com/blog/microservices-the-rise-of-the-minimal-component-architecture/
_ formtek
Microservices are lightweight fine-grained services that can be deployed with middleware or brokers.  The idea behind the approach has been around for some time, but a convergence of technologies, like the cloud, containers and REST/JSON services is making the approach more possible to achieve.
 
Microservices とは、ミドルウェアやブローカーを用いてデプロイすることが可能な、軽量で粒度の細かなサービスのことである。このアプローチの背景となる発想は、ときおり目にすることができるが、クラウドおよびコンテナや REST/JSON といった集約型テクノロジー (convergence of technologies) を、より現実的なものにするための方式だと言える。
 
Rather than build monolithic applications using “big balls of mud with tangled spaghetti code“, a microservice architecture builds many small and focused components that can easily communicate with each other.
 
Dali_11つまり、「もつれたスパゲッティ・コードによる大きな固まり」を用いて、モノリシックなアプリケーションを構築するのではなく、コンポーネントにフォーカスした Microservice アーキテクチャにより、小規模なコードを構築することで、簡潔に相互通信させていこうという考え方に基づいている。
 
Owen Garrett, head of product for Nginx, recently described how Amazon is using microservices.  ”When you go to Amazon.com and type in Nike shoe, over 170 individual applications get triggered potentially from that search — everything from pricing to images of the shoes to reviews of the shoes to recommendations of other products you may want to purchase. Each of those were individual services or subfeatures, if you like, of an application or an overarching experience, and all those were connected via HTTP. Each might be built in different languages. Each of those may have different requirements in terms of the data store, in terms of scaling and automation. Those were the attributes that we saw that were the fundamental anatomy of microservices architecture.”
 
最近のことだが、Nginx の Head of Product である Owen Garrett が、Amazon も Microservices を活用していると記している。具体的に言うと、「 Amazon.com で Nike shoe とタイプすると、170 種類以上のアプリケーションが、起こりうる検索のためにトリガーされる。それにより、探しているクツの価格や画像といった情報から、購入する可能性のあるプロダクトに関するレビューやリコメンデーションに至るまでの、あらゆる可能性がカバーされることになる。 つまり、それぞれのトリガーされたコンポーネントは、あなたの好みのものを探すための、アプリケーションもしくは包括的なエクスペリエンスにおける、個々のサービスやサブ機能といったものであり、そのすべてが HTTP を介して接続される。また、それらが、同一の言語で構築されているとは限らない。さらに言えば、データストアの観点や、スケーリングと自動化の観点において、それぞれの要件を有する可能性もある。それらは、私たちが確認できる特性であり、また、Microservices アーキテクチャの基本的な解剖学だ」と述べている。
 
Benefits of the microservices approach include scalability, agility, and greater resilience.  More specifically, microservice benefits include:
 
Microservices アプローチのメリットそしては、スケーラビリティとアジリティに加えて、高度な弾力性が挙げられる。 それらを具体化すると、以下のようになる。
 
  • Individual components have simpler architecture and design
  • Each component can be built using the right tools and language for the task
  • The design promotes loose coupling and easier maintenance
  • Promoted distributed independent parallel product development
  • Works well alongside new technologies, like Docker
 
  • それぞれのコンポーネントは、シンプルなアーキテクチャとデザインを有する。
  • それぞれのコンポーネントは、そのタスクに応じた適切なツールと言語で構築できる。
  • そのデザインにより、疎結合の考え方と、容易なメンテナンスが促進される。
  • さらに言えば、自律分散型の開発が、平行していて進められるようになる。
  • そして、たとえば Docker のような、新たなテクノロジーとの協調が実現される。
 
Eric Knorr, writer at InfoWorld, wrote that “the payoff [of microservices] is manifold: Services can be updated individually, new applications can be built quickly from existing services, and management actually has greater visibility into who is responsible for what.”
 
InfoWorld のライターである Eric Knorr は、「 Microservices から得られるものは多様である。 つまり、それぞれのサービスを個別にアップデートすることが可能であり、また、既存サービスから新しいアプリケーションを迅速に構築することが可能であり、誰が何に対して責任を負うかという意味で、可視性の高い管理が可能になる」と記している
ーーーーー
On Mondayたしかに、Amazon で探しものをしていると、かなり昔の探しものとの関連性や、ちゃんとカテゴライズされた関連性が生きているという感じで、レビューやリコメンデーションが登場してくるので、ちょっと驚くことがありますが、それが Microservices の威力なのでしょう。 もちろん、それは以前から言われてきた考え方であり、理屈の上で優位性が論じられてきたものなのですが、このように説明してもらえると、とても分かり易いですね。_AC Stamp
ーーーーー
<関連>
Cloud Developer の調査: あなたは DevOp 派? Coder 派? それとも RAD 派?

Cloud Developer の調査: あなたは DevOp 派? Coder 派? それとも RAD 派?

Posted in .Selected, DevOps, On Monday by agilecat.cloud on April 27, 2015
Cloud Developer Profiles: Are you a DevOp, Coder, or RAD?
Dick Weisinger – April 22nd, 2015
http://formtek.com/blog/cloud-developer-profiles-are-you-a-devop-coder-or-rad/
_ formtek
So, you’re a developer, but which cloud platform is best for you?
 
たしかに、あなたはデベロッパーだけど、どのクラウド・プラットフォームがベストなのだろうか?
 
Forrester says that depends.  They’ve developed three different developer profiles of different developer types and the types of cloud environments that work best for each type.
 
Forrester の言い方を真似するなら、そこには三種類のデベロッパーがいて、それぞれが異なるプロファイルを有している。つまり、彼らが働きやすい、三種類のクラウド環境が存在することになる。
 
Chagall_1Some developers are heavy into Java, Ruby or C# code, while others might prefer quick-and-dirty scripting.  Some developers love working with lots of configuration, others want point and click environments.  Forrester profiles, based on developer methodologies, recommend cloud platforms based on your development style.  Forrester identified three different developer classifications.
 
一部のデベロッパーたちは、Java/Ruby/C# といったコードに没頭するが、安かろう悪かろうのスクリプトを好む人もいる。 一部のデベロッパーたちは、大量のコンフィグレーションも苦にしないが、お手軽な環境を望む人もいる。 Forrester は、こうしたデベロッパーたちの方法論をベースにして、あなたの開発スタイルに合ったお勧めクラウド・プラットフォームをプロファイル化している。Forrester は、デベロッパーたちを、三種類に区分している。
 
  • Coders don’t want to muck with mucking with infrastructure configurations and would prefer an environment where those details were pre-configured.
  • Corder は、インフラスのコンフィグレーションで手を煩わすのを嫌い、それらの詳細が、プリ・コンフィグレーションされた環境を好むだろう。
  • DevOp pros tend to use the command line heavily, write scripts, and work with server, database, network, and storage configurations.
  • DevOp pros は、コマンド・ラインを駆使してスクリプトを書き、サーバー/データベース/ネットワーク/ストレージをコンフィグレーションしていく傾向がある。
  • RAD developers love point and click and every chance they get to auto-generate some code.  They’re into doing things fast, with an emphasis on not only high velocity and quantity, but also quality.
  • RAD developers は手軽さを好み、あらゆるチャンスを見つけては、コードを自動生成していく。 彼らは、迅速さと量的な観点からだけではなく、品質を維持しながら、素早く開発することに興味を持つ。
 
The Forrester report found that “Public cloud platforms take several forms, including those providing basic infrastructure-as-a-service up through those providing full or partial platform services and tools. Each of these types of platforms is best suited to a distinct type of application development and delivery (AD&D) pro within your ranks… AWS, Microsoft, and Salesforce are each leaders in meeting CIO requirements.  Each of these vendors started its cloud-platform journey in a distinct position serving a specific developer type and has expanded its offerings to provide greater breadth to a wider range of developers and support for a larger catalog of application types. Across all four Forrester Wave comparisons, two vendors stood out as consistent and clear leaders, while another, AWS was a leader across three of the four segments.”
 
こちらの方の Forrester レポートは、「パブリック・クラウド・プラットフォームには、いくつかの形態がある。その中には、全体的あるいは部分的な、プラットフォームのサービスやツールの提供を介して、基本的な IaaS を提供するものも含まれる。それぞれのプラットフォームが、あなたが位置づける AD&D (application development and delivery) に応じて、最適なタイプとなる。そして、こうした要件を満たす CIO にとって、AWS/Microsoft/Salesforce がリーダーとなっている。それらのベンダーは、こうしたデベロッパーのタイプに応じて、それぞれのサービスを提供するというポジションから、クラウド·プラットフォームへと旅立っていった。そして、自身を拡張することで、デベロッパーたちを幅広く支援し、大規模なアプリケーション・タイプをサポートしてきた。この Forrester Wave における 4つの区分で比較すると、2つのベンダーは、一貫性と明確性を備えたリーダーとして際立っていた。その一方で、AWS はというと、4つのセグメントにおける、3つの区分でリーダーとなっていた」と指摘している。
 
Further, the report notes that “the popular wisdom that cloud computing comes in three flavors — Software-as-a-Service (SaaS), IaaS and PaaS — no longer describes reality. We find that vendors are blurring the lines between the three cloud-computing categories.”
 
そして、このレポートは「クラウド・コンピューティングを、3つのフレーバーである IaaS/PaaS/SaaS で分類するという考え方は、もはや、現実味を伴っていない。つまり、この 3つのカテゴリーを区分する境界線を、ベンダーたちが曖昧にしている点に、私たちは気づくべきだと」と述べている。
 
ーーーーー
Forrester WaveOn Monday訳す前は、3つの分類と 4つの分類で混乱してしまい、全体の意味がつかめなかったのですが、4つの分類の方は、この図のことを指しているようです(クリックで拡大)。文中の、2つ目のリンクから無償で DL できるレポートなので、お時間のある方は、ぜひ、ご参照ください。そして、この記事ですが、「デベロッパーのタイプに応じて、クラウドのタイプを再編しても良いだろう」と、Weisinger さんは言いたいのでしょうかね? 関連性を説明しない、まったく異なる 2つの文脈が並んでいると、そうとしか受け取れませんよね :) それぞれのベンダーが、クラウドに取り組み始めた時点と比べて、デベロッパーのタイプも大きく変化しているわけですし、ここらで再編した方が、スッキリするようにも思えます。この世で最も強いのは、プラットフォームでもなく、ベンダーでもなく、エコシステムなのですから ・・・ _AC Stamp
ーーーーー
<関連>
Security の調査:CFO と CIO が協力しなければ、サイバー・アタックを迎撃できない!
 
 

Windows の OSS 化:ChefCon で Mark Russinovich が爆弾発言

Posted in .Chronicle, .Selected, DevOps, Microsoft, Strategy by agilecat.cloud on April 8, 2015
Microsoft mulls an open source Windows
Senior engineer spills the beans at ChefCon.
Russell Brownon – Apr 7, 2015
http://www.itnews.com.au/News/402396,xxxxx.aspx
 
_ it news
 
A senior engineer from Microsoft has hinted that the company could one day open source the entire Windows operating system.
 
Microsoft のシニア・エンジニアが、Windows オペレーティング・システム全体に関するオープンソース化について、いずれは実現するかもしれないと示唆している。
 
Mark Russinovich, a Microsoft technical fellow and senior engineer, dropped the bombshell in front of several hundred people during a panel discussion at the ChefCon DevOps conference in the United States.
 
Microsoft の Technical Fellow and Senior Engineer である Mark Russinovich が、United States で開催された ChefCon DevOps カンファレンスのパネル・ディスカッションで、数百人の聴衆を前にして、この爆弾を落とした。
 
Russinovich told the crowd it was “definitely possible” that Microsoft could, in the future, choose to open up the Windows source code.
 
Microsoft が将来的に、Windows ソースコードのオープン化を選択することは、「可能性として間違いなく有り得る」と、Russinovich は聴衆に語っている。
 
“It’s a new Microsoft,” he said.
 
そして、「それが、新しい Microsoft だ」と、彼は付け加えている。
 
ChefConThe prospect is not as surprising as it might once have been. Last November, the company announced plans to open source the full server-side .NET core stack and bring the open-sourced .NET core to Linux and Mac OS X – with everything happening in plain view on code repository GitHub.
 
こうした見通しは、これまでの経緯をみれば、それほど驚くべきことではない。 昨年の 11月に同社は、サーバー・サイドの .NET Core Stack を完全にオープン・ソース化し、その .NET Core を Linux および Mac OS X 上に提供するという、計画を発表している。さらに言えば、コード・リポジトリである GitHub 上で、すべての計画は進められるようだ。
 
The company now has more than 1000 software repositories on GitHub, but until now Windows, a US$4 billion (A$5.27 billion) a quarter cash cow, has looked untouchable.
 
現時点において同社は、GitHub 上に 1000 以上のソフトウェア・リポジトリを有している。しかし、四半期で US$4 billion ものキャッシュを稼ぎだす Windows は、そうならないだろうと、これまでは推測されてきた。
 
Russinovich asked for a show of hands from the audience on how many attending solely ran Windows. One single hand was raised from a crowd of hundreds.
 
Russinovich は、Windows の利用率を確認するために、聴衆に挙手を求めたが、数百の手が挙がるという結果が示された。
 
Russinovich – Microsoft’s chief technical officer of Azure – said in the company’s cloud computing service, almost 20 percent of virtual machines are Linux already.
 
Microsoft PDC
 
Microsoft Azure の CTO でもある Russinovich は、同社のクラウド・コンピューティング・サービスに関して、ほぼ 20% の仮想マシンが、すでに Linux で動いていると述べている。
 
He acknowledged that in the past it “would have freaked people out to think about Microsoft running Linux in our cloud”.
 
これまでも、「私たちのクラウドで、Microsoft が Linux を走らせることに、とても熱狂する人々がいる」と、彼は認めていた。
 
“Every conversation you can imagine about what should we do with our software — open versus not-open versus services — has happened,” he said. “It’s really a matter of choice. We’re going to continue to innovate and deliver cool stuff in Windows [while] we see customers that are making other choices.”
 
「 みなさんがイメージする、すべてのディスカッションにおいて、Open 対 Not-Open 対 Services という議論が生じている。それは、まさに選択の問題だ。 私たちは、さらにクールな Windows を目指して、イノベーションを継続していくが、他の選択肢を望むカスタマーがいることも知っている」と彼は発言している。
 
While developers were absorbing the news, Microsoft’s founder Bill Gates sent an open letter to the company’s staff as part of its 40th anniversary celebrations urging them to focus not on Microsoft’s legacy, but on its future.
 
このニュースに、デベロッパーたちは夢中になっている。その一方で、Microsoft の Founder である Bill Gates は、40周年の祝辞の一環として、全社員に公開書簡を送っている。そして、その内容はというと、Microsoft の歴史にではなく将来に対して、集中を促すものになっている。
 
Amid the birthday celebrations, the company confirmed the last few hundred of the 18,000 layoffs it began making last year.
 
こうした、お祝いムードの中で、昨年から進められている 18,000人 のレイオフの、最後の数百人が確定するという現実もある。
 
Copyright © iTnews.com.au . All rights reserved.
 
ーーーーー
MS昨年の 11月3日に、「Microsoft の決断:フル .NET サーバー・コア・スタックをオープンソース化する!」という抄訳をポストしていますが、それもオーストラリアの iT News でした。そして、今回の Open Windows というニュースですが、、、Microsoft は Office 365 などにより、本質はサービスに有りという路線へ、すでに転換していると推測できます。 もちろん、手元のデバイスに価値が無いという話ではありませんが、Apple が主張する価値というより、Google の考え方に近いところへと、移行を完了しているように思えます。 それにしても、Mark Russinovich さんは、いつも歯切れがよくて、ナイスですね! これからが、とても楽しみです。 _AC Stamp
ーーーーー
<関連>
Microsoft と IBM が、きわめて広範囲におよぶ、クラウドの提携を発表!

Windows XP のサポートが終わるが、あの緑の草原も、いまはブドウ畑に・・・

Facebook と Open Source:大活躍した 2014年の成果をリストアップ!

Posted in DevOps, Facebook by agilecat.cloud on March 11, 2015
Facebook’s 2014 Open-Source Highlights
David Cohen on December 23, 2014
http://www.adweek.com/socialtimes/2014-open-source-highlights/440228
 
_ Social Times
 
Facebook OSS2014 was a big year for open-sourcing at Facebook, and the social network presented its highlights in that sector for the year in the form of a 12 Days of Open Source blog post by head of open-source projects James Pearce.
 
Facebook のオープン・ソースにとって、2014年は Big Year であった。そして、このソーシャル・ネットワークは、Head of Open-Source Projects である James Pearce のブログ・ポスト 12 Days of Open Source で、この年のハイライトを発表した。
 
Pearce highlighted:
 
  • React won a photo-finish over HHVM to become the first Facebook flagship open-source project to reach 10,000 stars on GitHub, with both achieving the milestone on the same day. Next up on that list, according to Pearce: Pop.
  • React は、大接戦の末 HHVM を上回り、ついに Facebook のフラッグシップ・オープンソース・プロジェクトとなった。どちらも同じ日に、GitHub で 10,000 Star を獲得するという、マイルストーンを達成している。Pearce によると、このリストで次に続くのは Pop となる。
  • Facebook launched 107 new open-source projects in 2014, totaling 65,000 stars on GitHub and more than 6,000 forks.
  • Facebook は、2014年に 107 のオープン・ソース・プロジェクトを新たに立ち上げ、GitHub 上で 65,000 Star を獲得し、6,000 以上のフォークを生み出した。
  • The top five open-source projects in terms of stars on GitHub were: Pop (more than 9,000 in just eight months), Shimmer, immutable-js, AsyncDisplayKit and Flow, with honorable mentions going to osquery, Flux, Tweaks, Bolts, KVOController, WebScaleSQL, Proxygen, Chisel, Jest and fb-flo.
  • それまでの GitHub では、Pop (8ヶ月で 9,000+ Star を取得)、Shimmer、immutable-jsAsyncDisplayKitFlow が、Top-5 を形成していた。そして、osqueryFlux、Tweaks、Bolts、KVOController、WebScaleSQLProxygen、Chisel、Jest、fb-flo などが、あとに続いていた。
  • Pearce called out the following collaborators and users on certain projects: React (Adobe, Khan Academy, Pinterest), Rebound (Flow, Jelly, Tumblr), HHVM (Baidu, Box, Wikipedia) and Presto (Airbnb, Dropbox, Netflix).
  • Pearce が言うには、いくつかのプロジェクトでは、以下のような協力者とユーザーがいる:React (Adobe, Khan Academy, Pinterest)、Rebound (Flow, Jelly, Tumblr)、HHVM (Baidu, Box, Wikipedia)、Presto (Airbnb, Dropbox, Netflix)。
  • More than 1,000 external developers contributed to Facebook’s open-source projects in 2014, with 200 making five or more commits.
  • 2014年の Facebook オープン・ソース・プロジェクトには、1,000人以上の外部デベロッパーがコントリビュートし、200人が 5つ以上をコミットしている。
  • More than 5,500 pull requests were made on the social network’s open-source projects in 2014.
  • このソーシャル・ネットワークのオープン・ソース・プロジェクトでは、2014年に 5,500回以上のプル・リクエストが発行されている。
  • There were more than 28,000 commits on Facebook’s public projects in 2014, and more than 17 percent of those came from external developers, with projects such as PHP SDK and React seeing nearly one-half of their commits come from external contributors.
  • 2014年の Facebook パブリック・プロジェクトには、28,000以上のコミットを受け付けており、そのうちの 17% 以上は、外部デベロッパーからのものであった。PHP SDK と React などのプロジェクトを含めると、約半分のコミットが外部コントリビューターからのものとなる。
  • The top five external contributors in 2014 were: Ben Alpert (399), Tim Siebels (137), Joerg Maier (98), Ankit Gupta (87) and Cheng Lou (81).
  • 2014年における、外部コントリビューターの Top-5 は、Ben Alpert (399)、Tim Siebels (137)、Joerg Maier (98)、Ankit Gupta (87)、Cheng Lou (81) である。
  • The two security-related releases in 2014 were osquery and Conceal.
  • 2014年の、セキュリティに関するリリースは、osquery と Conceal の 2つである。
  • Developers from Facebook spoke at seven Open Source Convention (OSCON) sessions in 2014.
  • 2014年の  Open Source Convention (OSCON) では、Facebook のデベロッパーが、7つのセッションを担当した。
  • The average age of pull requests decreased by three times in 2014.
  • プル・リクエストの平均間隔は、2014年に 1/3 にまで短縮された。
 
ーーーーー
facebookFacebook のオープンソースというと、古いポストになりますが、2010年の「Facebook を 1.8 倍速に、WordPress を 2.7 倍速にする、HipHop とは ?」が強烈な印象として、記憶に残っています。そして、それが、HipHop Virtual Machine(HHVM)として活躍し続けているのを、このポストで知りました。 ほんと、Facebook はオープンソースの宝庫であり、素晴らしい活動を継続していると思います。 ちょうど昨夜から(3/10〜3/11)、Open Compute Project Summit 2015 も開催されています。 今年は、ちょと事情があって参加できませんでしたので(涙)、これから Web で追いかけてみたいと思っています。_AC Stamp
ーーーーー
<関連>
Facebook の 超絶 Web パフォーマンス : その秘密を解析する
Google App Engine が PHP をサポート:75% の Web をカバーしているから
Facebook が発表した Folly は、宝石のような オープンソース C++ ライブラリ
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか
Facebook 第四艦隊 Iowa DC が、ネットワーク・アーキテクチャを刷新して出撃!
 

Facebook アプリ:Push + Delta + Thrift で モバイル帯域を 40% も削減!

Posted in .Selected, DevOps, Facebook, Mobile, Network, Post-PC by Agile Cat on December 11, 2014

Facebook Mobile Drops Pull For Push-based Snapshot + Delta Model
http://wp.me/pwo1E-85F
Monday, October 20, 2014
http://highscalability.com/blog/2014/10/20/facebook-mobile-drops-pull-for-push-based-snapshot-delta-mod.html

We’ve learned mobile is different. In If You’re Programming A Cell Phone Like A Server You’re Doing It Wrong we learned programming for a mobile platform is its own specialty. In How Facebook Makes Mobile Work At Scale For All Phones, On All Screens, On All Networks we learned bandwidth on mobile networks is a precious resource.

私たちは、モバイルが別の世界のものであることを学んできた。If You’re Programming A Cell Phone Like A Server You’re Doing It Wrong では、モバイル・プラットフォームのためのプログラミングが、独特のものであることを知った。そして、How Facebook Makes Mobile Work At Scale For All Phones, On All Screens, On All Networks では、モバイル・ネットワークの帯域幅が、きわめて貴重なリソースであることを学習した。

Given all that, how do you design a protocol to sync state (think messages, comments, etc.) between mobile nodes and the global state holding servers located in a datacenter?

それら、すべてのことを考慮して、ステート(メッセージやコメントなど)をシンクさせるためのプロトコルを、どのようにデザインすべきなのだろうか? ここでは、複数のモバイル・ノードと、データセンターのサーバーに置かれたグローバル・ステートの、同期について考えていく。

Facebook recently wrote about their new solution to this problem in Building Mobile-First Infrastructure for Messenger. They were able to reduce bandwidth usage by 40% and reduced by 20% the terror of hitting send on a phone.

最近のことだが、Facebook の Building Mobile-First Infrastructure for Messenger というポストにおいて、この問題に関する彼らの新しいソリューションが紹介されている。それによると、帯域幅の使用率が 40% まで、そして、スマホでの送受信を阻害する要因が 20% まで、削減できたという。

That’s a big win…that came from a protocol change.

それは、素晴らしい成功体験であり、また、プロトコルの変更にもたらされたものである。

<関連> Facebook が語るモバイル・チューニングの極意

Facebook Messanger went from a traditional notification triggered full state pull:

The original protocol for getting data down to Messenger apps was pull-based. When receiving a message, the app first received a lightweight push notification indicating new data was available. This triggered the app to send the server a complicated HTTPS query and receive a very large JSON response with the updated conversation view.

Messenger がデータをダウンロードする際の、オリジナルのプロトコルは Pull ベースのものであった。 このアプリはメッセージを受信するとき、新しいデータがあることを示す、ライトウェイトなプッシュ通知を最初に受信する。それは、アプリに対するトリガーであり、その結果として、サーバーへ向けて複雑な HTTPS クエリーを送信し、また、アップデートされた会話を取り込んだ、きわめて大規模な JSON レスポンスを受信することになる。

To a more sophisticated push-based snapshot + delta model:

Instead of this model, we decided to move to a push-based snapshot + delta model. In this model, the client retrieves an initial snapshot of their messages (typically the only HTTPS pull ever made) and then subscribes to delta updates, which are immediately pushed to the app through MQTT (a low-power, low-bandwidth protocol) as messages are received. When the client is pushed an update, it simply applies them to its local copy of the snapshot. As a result, without ever making an HTTPS request, the app can quickly display an up-to-date view.

私たちは、前述のモデルに代えて、Push ベースの SnapShot + Delta モデルに移行することを決めた。 この新しいモデルでは、クライアントは自身のメッセージに関する、イニシャルの SnapShot を取得する(一般的には、これまでの HTTPS Pull のみとなる)。 続いて、Delta アップデートが読み込まれるが、それはメッセージを受信した直後に、MQTT(リソースと帯域において負荷の少ないプロトコル)を介してアプリに Push されるものである。また、クライアントからアップデートが Push されるときには、ローカルに保持される SnapShot に、その内容がコピーされる。その結果として、これまでのような HTTPS リクエストを必要とすることなく、アプリはアップデートされたビューを表示できるようになる。

We further optimized this flow by moving away from JSON encoding for the messages and delta updates. JSON is great if you need a flexible, human-readable format for transferring data without a lot of developer overhead. However, JSON is not very efficient on the wire. Compression helps some, but it doesn’t entirely compensate for the inherent inefficiencies of JSON’s wire format. We evaluated several possibilities for replacing JSON and ultimately decided to use Thrift. Switching to Thrift from JSON allowed us to reduce our payload size on the wire by roughly 50%.

さらに、私たちは、メッセージと Delta アップデートから、JSON エンコーディングを切り離すことで、このフローを最適化した。もし、開発者のオーバーヘッドを最低限に抑えたかたちで、ヒューマン・リーダブルで柔軟なデータ転送を実現するなら、JSON は素晴らしいソリューションとなる。しかし、JSON における送受信の形式は、きわめて効率が悪い。 圧縮により、いくつかの問題は解決するが、JSON の固有の非効率性を、完全に補完することは不可能だ。私たちは、JSON を置き換えるための、いくつかの可能性について評価し、最終的には Thrift を使用することにした。JSON から Thrift へ移行することで、転送における実質的なサイズを、およそ 50% に低減できた。

On the server side Facebook also innovated:

Iris is a totally ordered queue of messaging updates (new messages, state change for messages read, etc.) with separate pointers into the queue indicating the last update sent to your Messenger app and the traditional storage tier. When successfully sending a message to disk or to your phone, the corresponding pointer is advanced. When your phone is offline, or there is a disk outage, the pointer stays in place while new messages can still be enqueued and other pointers advanced. As a result, long disk write latencies don’t hinder Messenger’s real-time communication, and we can keep Messenger and the traditional storage tier in sync at independent rates. Effectively, this queue allows a tiered storage model based on recency.

Iris は、メッセージングのアップデート(新しいメッセージやメッセージ・リードによるステートの変化など)で用いる順列キューのことであり、Massenger アプリに送信された最新のアップデートと、伝統的なストレージ階層において、別々のポインタを持つことが可能になっている。ディスクおよびスマホへのメッセージ送信が成功すると、それに対応するポインタが前進する。もし、スマホがオフラインであったり、ディスクに障害が発生した場合には、対象となるポインタを所定の位置に留めながら、新しいメッセージをキューに保持し、他のポインタを前進させることができる。その結果として、ディスクへの書き込みなどの、大きなレイテンシが発生しても、Messenger のリアルタイム通信を妨げることはない。 そして、Messenger のレベルと伝統的なストレージ階層を、それぞれの頻度で同期させることも可能だ。このキューの効率性により、新しい階層型ストレージ·モデルが実現する。

Delta based syncing strategies are very common in Network Management systems where devices keep a north bound management system in sync by sending deltas. The problem with a delta based approach is it’s easy for clients to get out of sync. What if changes happen at a rate faster than than deltas can be moved through the system? Or queues get full? Or the network drops updates? The client will get out of sync and it won’t even know it. Sequence numbers can be used to trigger a full sync pull if there’s an out of sync situation.

Delta ベースの同期ストラテジーは、ネットワーク・マネージメント・システムにおいて、きわめて一般的なものである。 そこでは、デバイスが Delta を送信することで、上位階層のマネージメント・システムとの同期を維持する。 Delta ベースのアプローチにおける問題点は、その同期のメカニズムから、クライアントが容易に逸脱してしまうことである。 何らかの変更が Delta よりも速く、対象となるシステムを介して移動することが、実際に起こり得るだろうか? また、キューが溢れると、どうなるだろうか? さらに言えば、ネットワーク上でアップデートが失われたら、何が起こるだろうか? いずれにせよ、クライアントは同期から逸脱し、起こっていることを知ることもできない。そのような場合には、シーケンス・ナンバーを用いる。 それにより、完全な同期を引き起こし、同期から逸脱している状況を解消できる。

It’s also good to see Facebook got rid of JSON. The amount of energy and bandwidth wasted on moving and parsing fat JSON packets is almost criminal.

Facebook が JSON から離れることは、別の観点でも歓迎すべきことだ。このような巨大なシステムが、重たい JSON パケットを解析して転送するために、膨大なエネルギーと帯域幅を消費することは、きわめて罪作りなことでもあるのだ。

ーーーーー

先日にポストした「Facebook が語るモバイル・チューニングの極意」に続いて、今回も Todd Hoff さんの記事を紹介することができました。途上国におけるモバイル通信の状況を前提とした、ストレスを最小限に抑えた環境を提供したいという、Facebook の一貫したストラテジーが見えてきますね。 ただ、これは、途上国だけの問題ではなく、たとえば日本においても、モバイル・トラフィックの大幅な削減という、大きなメリットをもたらすはずです。 そして、私たちが使用している大半のサービスは、① モバイル・デバイス、② モバイル・インターネット環境、③ バックエンド・テクノロジー、④ データセンター・インフラのバランスの上に成り立っているわけですが、とりわけ途上国においては、① と ② のケアが不可欠なのでしょう。

ーーーーー

<関連>

iOS から Android へ : Facebook は優先順位を切り替えるのか?
Facebook が キャリアの協会に参加 : 狙いは Internet.org だ!
Mark Zuckerberg と Internet.org : コネクティビティが社会経済をバランスさせる
Facebook とモバイルの巨人たちが、Internet.org を立ち上げた!
Facebook に続け : 10億に挑む Android と iOS

Facebook が語るモバイル・チューニングの極意:これで途上国のインターネットも OK!

Posted in .Selected, DevOps, Facebook, Mobile, Network, Post-PC, Strategy by Agile Cat on December 2, 2014

How Facebook Makes Mobile Work at Scale for All Phones, on All Screens, on All Networks
http://wp.me/pwo1E-84k
September 22, 2014 – ImageTodd Hoff
http://highscalability.com/blog/2014/9/22/how-facebook-makes-mobile-work-at-scale-for-all-phones-on-al.html

When you find your mobile application that ran fine in the US is slow in other countries, how do you fix it? That’s a problem Facebook talks about in a couple of enlightening videos from the @scale conference. Since mobile is eating the world, this is the sort of thing you need to consider with your own apps.

アメリカ国内では快適に走るモバイル・アプリが、その他の国では遅くなると分かったとき、どのように修正すればよいのだろう?それは、@scale conference における何本かのビデオで、Facebook が指摘している問題である。そして、この世界をモバイルが呑み込んで以来、あらゆるアプリにおいて考察すべき、ある種の問題でもある。

<関連> Facebook アプリ:Push + Delta + Thrift でモバイル帯域を 40% も削減!

In the US we may complain about our mobile networks, but that’s more #firstworldproblems talk than reality. Mobile networks in other countries can be much slower and cost a lot more. This is the conclusion from Chris Marra, Project Manager at Facebook, in a really interesting talk titled Developing Android Apps for Emerging Market.

アメリカにおいても、私たちはモバイル・ネットワークに文句を言うだろうが、Twitter の #firstworldproblems で語られていることが真実だ。その他の国々におけるモバイル・ネットワークは、はるかに遅いものであり、また、より多くの費用がかかる。以下に示すのは、Developing Android Apps for Emerging Market という興味深いタイトルの講演の中で、Facebook の Project Manager である Chris Marra が結論づけたものである。

Facebook found in the US there’s 70.6% 3G penetration with 280ms average latency. In India there’s 6.9% 3G penetration with 500ms latency. In Brazil there’s 38.6% 3G penetration with more than 850ms average latency.

Facebook が調べた結果によると、アメリカにおける 3G の浸透率は 70.6% であり、レイテンシは 280ms である。それがインドとなると、3G の普及率は 6.9% であり、レイテンシ は 500ms になる。そしてブラジルの場合は、38.6% と 850ms だ。

Chris also talked about Facebook’s comprehensive research on who uses Facebook and what kind of phones they use. In summary they found not everyone is on a fast phone, not everyone has a large screen, and not everyone is on a fast network.

さらに Chris は、Facebook のユーザーである人々および、そこで用いられるスマホに関して、同社が実施している包括的な調査についても話してくれた。要約すると、誰もが高性能のスマホを使い、大きなスクリーンを持ち、高速のネットワークを使用できると思ったら、それは大きな間違いということだ。

It turns out the typical phone used by Facebook users is from circa 2011, dual core, with less than 1GB of RAM. By designing for a high end phone Facebook found all their low end users, which is the typical user, had poor user experiences.

その結果として、Facebook ユーザーが使用する典型的なスマホは、2011年頃のモデルから始まり、Dual-Core の CPIU を搭載し、RAM は 1GB 以下ということが分かってきた。 ハイエンド・スマホに合わせてデザインしてきた Facebook は、ローエンドのデバイスを持つユーザーが大半であり、そのすべてがプアなユーザー・エクスペリエンスを持つことを理解した。

For the slow phone problem Facebook created a separate application that used lighter weight animations and other strategies to work on lower end phones. For the small screen problem Facebook designers made sure applications were functional at different screen sizes.

Facebook は性能の低いスマホのために、軽いアニメーションなどの戦略を適用するために、使別のアプリを作成した。また、同社のデザイナーたちは、小さなスクリーンという問題に対処するために、異なる画面サイズであっても、機能的にアプリが振る舞えるようにしていった。

Facebook has moved to a product organization. A single vertical group is responsible for producing a particular product rather than having, for example, an Android team try to create all Android products. There’s also a horizontally focussed Android team trying to figure out best practices for Android, delving deep into the details of what makes a platform tick.

つまり、Facebook 自身が、プロダクトを構築するための組織に転身しているのだ。例を挙げるなら、すべての Android プロダクツを、そのためのチームが開発するのではなく、特定のプロダクトを構築するために、垂直方向へと問題を掘り下げていくグループに責任が振り分けられている。ただし、プラットフォームに適合するものを詳細まで踏み込み、Android のためにベスト・プラクティスを把握していく、水平方向に焦点を当てた Androidチームも存在する。

Each team is responsible for the end-to-end performance and reliability for their product. There are also core teams looking at and analyzing general performance problems and helping where needed to improve performance.

そして、個々のチームが自身のプロダクトに関して、その性能と信頼性を隅から隅まで担当することになる。さらに、コアとなるチームが、全体的なパフォーマンスの問題を分析し、それを向上させるために必要な支援を行う。

Both core teams and product teams are needed. The core team is really good at instrumentation and identifying problems and working with product teams to fix them. For mobile it’s important that each team owns their full product end-to-end. Owning core engagement metrics, core reliability, and core performance metrics including daily usage, cold start times, and reliability, while also knowing how to fix problems.

コアとプロダクトの、双方のチームが必要とされている。コア・チームは、適切に測定を行い、問題を特定し、それらを修正するために、プロダクト・チームと協調していく。モバイル開発において重要な事は、それぞれのチームが自身のプロダクトについて、隅から隅まで責任を負うことである。また、コアとしての共有メトリクス/信頼性/性能の指標を確立し、そこにアプリを立ち上げたときや、連続して使用したときの、信頼性を加える一方で、問題の解決方式を認識していく。

To solve the slow network problem there’s a whole other talk. This time the talk is given by Andrew Rogers, Engineering Manager at Facebook, and it’s titled Tuning Facebook for Constrained Networks. Andrew talks about three methods to help deal with network problems: Image Download Sizes, Network Quality Detection, Prefetching Content.

低速のネットワークに関連する問題を解決するという、包括的なテーマがある。今回は、Facebook の Engineering Manager である Andrew Rogers の、Tuning Facebook for Constrained Networks というタイトルが付けられたトークを紹介したい。Andrew の話は、ネットワークに関連する問題を解決する、Image Download Sizes/Network Quality Detection/Prefetching Content という、3つの方法論に集約される。

Overall, please note the immense effort that is required to operate at Facebook scale. Not only do you have different phones like Android and iOS, you have different segments within each type of phone you must code and design for. This is crazy hard to do.

総論として、Facebook のスケールで運用するには、膨大な労力が要求される点に注意してくほしい。そこには、Android と iOS といったモバイルの種別だけではなく、それぞれのデバイスごとのセグメントがあり、それに対してコーディングしていく必要があるのだ。それを実践していくことは、まさしくクレイジーである。

Reducing Image Sizes -  WebP saved over 30% JPEG, 80% over PNG

  • Image data dominates the number bytes that are downloaded from Facebook applications. Accounts for 85% of total data download in Facebook for Android and 65% in Messenger.
  • イメージ・データは、Facebook アプリにダウンロードされる、バイトの大半を占める。 Android 用の Facebook においては、全ダウンロード・データの 85% を占め、Messenger では 65% を占めている。
  • Reducing image sizes would reduce the amount of data downloaded and result in quicker downloads, especially on high latency networks (which we learned were typical).
  • イメージ・サイズを削減すれば、ダウンロードされるデータの量が低減され、より迅速なダウンロードが達成されるだろう。それは、高レイテンシのネットワークにおいて、特に有効な手段となる(そこから、私たちは学んだ)。
  • Request an appropriate image size for the viewport
  • 表示環境にあわせた、適切なサイズのイメージを要求する。
  • Resize on the server. Don’t send a large image to the client and then have the client scale the image down to a smaller size. This wastes a lot of bandwidth and takes a lot of time.
  • サーバー上で、イメージのサイズを変更する。クライアントへ向けて大きなイメージを送信し、クライアント側でイメージを小さくするという手法を取ってはならない。 そのような方式だと、大量の帯域幅を無駄にし、長時間を要することになる。
  • Send a thumbnail (for profile pictures) and a small preview image (this is seen in the newsfeed), and then a full image (seen in photo stories) when a user asks to zoom in it. A low-res phone may never need a full image. Most of the time a thumbnail and a small preview is all you need.
  • サムネイル(画像のサムネイル)と、小さなプレビュー・イメージ(例 NewsFeed)を送信し、ユーザーが拡大を要求したときに、フル・イメージを送信する(例 Photo Story)。低解像度のスマホの場合は、フル・イメージが不要かもしれない。また、大半のケースにおいて、サムネイルとプレビューで、すべての要求に応えられる。
  • Significant savings. Scaling a 960 pixel image that is 79KB is size to 240 pixels wide yields a 86% size reduction, to 480 pixels is a 58% size reduction, to 720 pixels is at 23% size reduction.
  • データ転送量を、大幅に削減できる。たとえば、960 pixel スケールのイメージは 79KB であるが、240 pixel なら 86%、480 pixel なら 58%、720 pixel なら 23% の削減が達成される。
  • With screen sizes becoming larger scaling images isn’t as effective as it used to be. Still worth doing, but the payoff isn’t as much.
  • スクリーン・サイズより大きなイメージを、効果的に利用できるケースはほとんど無い。何らかの価値があるかもしれないが、その代償は大きい。
  • Change the image format
  • イメージ・フォーマットの刷新
  • 90% of images sent to Facebook and Messenger for Android use the WebP format.
  • Android 用の Facebook および Messenger では、90% のイメージで WebP フォーマットが用いられている。
  • WebP format released by Google in 2010.
  • WebP フォーマットとは、Google が 2010年にリリースしたものである。
  • WebP saves 7% download size over JPEG for equivalent quality.
  • WebP は、同品質の JPEG に対して、7% のサイズ圧縮を実現にする。
  • WebP saved over 30% download size over JPEG by tuning quality and compression parameters with no noticeable quality differences. A big savings.
  • WebP は、画質チューニングと圧縮パラメータにより、JPEG に対して 30% のデータ削減を可能にするが、視覚的な劣化は生じない。 それにより、ダウンロード・サイズを大幅に削減できる。
  • WebP also supports transparency and animation, which is useful for their Stickers product.
  • さらに WebP は、透過性とアニメーションをサポートするため、Sticker などのプロダクトに適している。
  • WebP saves 80% over PNG.
  • WebP は PNG の 80% に、データ量を低減する。
  • For older versions of Android the images are transported using WebP but transcoded on the client to JPEG for rendering on the device.
  • Android の古いバージョン用のイメージは、WebP を使って転送されるが、レンダリングのためにクライアント上で JPEG に変換される。

Network Quality Detection – Adjust Behavior to Network Quality

  • On the same network technology 2G, 3G, LTE, WiFi, connections speeds in the US were 2-3x faster than in India and Brazil.
  • 2G, 3G, LTE, WiFi といった、それぞれのネットワーク・テクノロジーにおいて、India や Brazil に対して U.S. は、2倍〜3倍の接続速度を有する。
  • LTE is often faster than WiFi, so you can’t just base the connection speed on technology.
  • 大半のケースにおいて、LTE は WiFi より高速であるため、テクノロジーの接続速度を論拠にはできない。
  • Built into the client the ability to:
  • Measure throughput on all large network transfers
  • 以下の機能を、クライアント内に作り込む:
  • 大規模ネットワークを通過する際のスループットを測定する。
  • Facebook servers provide a Round Trip Time (RTT) estimate in the HTTP header in every response
  • Facebook のサーバーは、すべてのレスポンスにおける HTTP ヘッダー内で、Round Trip Time (RTT) 推定値を提供している。
  • The client maintains a moving average of throughput and RTT times to determine network quality.
  • そのため、クライアントは、ネットワーク品質を判断するために、変動するスループットと RTT 時間の、平均値を保持できる。
  • Connections are bucketized into the following groups: Poor is < 150kbps. Moderate is 150-600kbps. Good is 600-2000kbps. Excellent is > 2000kbps.
  • 接続スピードは、以下のグループに分類される:Poor 150kbps 以下:Moderate 150〜600kbps:Good 600〜2000kbps:Excellent 2000kbps 以上。
  • Feature developers can adjust their behavior depending on the connection quality.
  • それらの接続品質に応じて、それぞれの機能の振る舞いを適正化していく。
  • Some possible responses based on quality:
  • その通信品質に基づき、いくつかの対策がある:
  • Increase/decrease compression.
  • Issue more/fewer parallel network requests. Don’t saturate the network.
  • 圧縮比の増減。
  • 並列ネットワーク・リクエストの増減。それにより、ネットワークをサチらせない。
  • Disable/enable auto-play video. Don’t cause more traffic on slow networks.
  • ビデオ自動再生の ON/OFF。 低速ネットワークでは、大量のトラフィックを要求しないようにする。
  • Pre-fetch more content.
  • より多くのコンテントを、プリ・フェッチする。
  • A tool developed at Facebook called Air Traffic Control supports the simulation of different traffic profiles. Each profile can be configured: bandwidth, packet loss, packet loss-correlation, delay, delay correlation, delay jitter. Extremely helpful in finding unexpected behaviour on slow networks.
  • Facebook では、内製のツールである Air Traffic Control により、各種のトラフィック・プロファイルのシミュレーションを行なっている。それそれのプロファイルは、帯域幅/パケット損失/パケット損失相関/遅延/遅延相関/遅延ジッタなどで構成されている。低速のネットワーク上で、予期できない動作などを見つけるのに、きわめて便利である。
  • There are buckets for videos, but not sure what they are.
  • ビデオ・トラフィックに関しては、その内容が不明である。

Prefetching Content

  • Issuing network requests for content ahead of when the content is actually needed on the device.
  • 実際にデバイスでコンテントが必要になる前に、ネットワーク・リクエストを発行する。
  • Prefetching is especially important on networks with high latency. Waiting to issue a download request for an image the user will be looking at a blank screen.
  • プリ・フェッチングは、とりわけ高レイテンシのネットワークで重要となる。イメージをダウンロードするリクエスト発行を待っているのでは、ユーザーにブランクの画面を見せることになる。
  • Issue network requests for feeds early in the app startup process so the data will be present when the feed is displayed to the user.  The download can occur in parallel with other initialization tasks.
  • アプリ起動プロセスで、フィードの先頭へのネットワーク・リクエストが発行されていれば、ユーザーに対して表示するときに、すでにフィードの準備が整うことになる。このダウンロードは、他のイニシャル・タスクと並行して、引き起こすことが可能である。
  • Keep a priority queue of network requests. Don’t block foreground network requests on background network requests or the user won’t see the data they are currently interested in.
  • ネットワーク・リクエストの、プライオリティ・キューを維持する。バックグラウンドのネットワーク・リクエストにより、フォアグラウンドのネットワーク・リクエストをブロックしてはならない。また、ユーザーが興味を持っているデータを、見せないような状況も避けるべきだ。
  • Monitor for overfetching and excess consumption of device resources. Over fetching could fill up the disk or waste a lot of money on the user’s data plan.
  • 過剰なフェッチングとデバイス·リソース消費をモニタリングする。フェッチングが行き過ぎると、全体的なディスク容量が不足し、また、データ・プランによっては、ユーザーのコストを増大させる。

Miscellaneous

  • Client uploading to servers. The idea is to send fewer bytes over the wire from the client to the server, which means resizing images on the client side before they are sent to the server. If an upload fails retry quickly. It’s usually just a problem in the pipe.
  • クライアントからサーバーへのアップロードに関しても、サーバーに送信する前にクライアント側でイメージをリサイズし、データ転送量を低減すべきである。アップロードに失敗した場合は、速やかに再試実行する。 一般的に、この問題はパイプ内のもとと認識すべきだ。
  • There are 20 different APKs (Android application package) for the Facebook app, cut by API level, screen size, and processor architecture.
  • Facebook アプリ用として、20種類の APK(Android Application Package)が存在する。 具体的に言うと、API レベルや、スクリーン・サイズ、プロセッサ・アーキテクチャなどにより分類されている。

Related Articles

Update: Instagram Improved Their App’s Performance. Here’s How.

ーーーーー

この長い記事を訳しながら、似ているなぁと思い始めてきたのが、Google の Street View 撮影部隊の話です。 どちらも、データセンターに積み上げたコンピューティング・パワーや、優秀な頭脳から生み出されるアルゴリズムでは解決の出来ない、労力と根気の世界の話です。 とは言え、このような労働集約型の作業に、膨大なリソースを投じるには、その正当性を裏付けるだけのストラテジーが必要です。 言い換えれば、途上国のマーケットに賭ける、Facebook の強い思いが生み出した唯一無二の方法論が、そこにあるはずなのです。 そして、そのノウハウを、こうして開示してくれる Facebook と、分かり易く整理してくれた Todd Hoff さんに感謝です。すばらしい!

ーーーーー

<関連>

FB+WhatsApp+Instagram のユーザー数は、世界の 1/3 に相当する 22億人だ!
Facebook の Graph API がアップデートされ、AD API も強化されたようだ!
Instagram が史上最大のマイグレ:200億枚のイメージを AWS から FB へ!
Facebook が買収し続けている特許の内容が、とても興味深い
Youtube と Facebook がモバイル・トラフィックの 1/3 を占有している

Mobile App の調査:厄介なエンタープライズを素通りして、コンシューマ市場へと流れるデベロッパーたち

Posted in DevOps, Mobile, On Monday, Post-PC by Agile Cat on December 1, 2014

Enterprise Mobile App Development: Complexity and a Skills Gap are Roadblocking App Development
http://wp.me/pwo1E-844
By Dick Weisinger – Nov 28, 2014
http://formtek.com/blog/enterprise-mobile-app-development-complexity-and-a-skills-gap-are-roadblocking-app-development/

The mobile enterprise business application market is expected to reach $61 billion by 2018, says Strategy Analytics.  In 2013, 900,000 mobile app developers were targeting the enterprise app market, and a survey by  VisionMobile found that only 15 percent of app developers are targeting the enterprise.

Strategy Analytics の予測によると、モバイル・エンタープライズにおけるビジネス・アプリケーションの市場は、2018年までに $61 billion に達するようだ。また、2013年には 90万のモバイル・アプリ開発者が、エンタープライズ・アプリ市場をターゲットにしていたが、VisionMobile の調査によると、アプリ開発者のうちエンタープライズをターゲットにしているのは、全体の僅か 15% に過ぎないことが分かった。

While enterprises are spending increasing amounts of money in developing mobile apps, independent mobile app developers have been shunning those projects, preferring to work instead on consumer apps where they can typically make more money.  Consumers are much more inclined to download apps and to pay for ones they view as useful, although that’s becoming increasingly difficult as Gartner predicts that nearly 95 percent of consumer apps in 2018 will be free to download.

エンタープライズはモバイル・アプリ開発における予算を増額しているのだが、独立系のモバイル・アプリのデベロッパーたちは、それらのプロジェクトを避けて、もっと稼げるコンシューマ・アプリを好んで開発しているのだ。 その一方で、コンシューマ・ユーザーは、まずはアプリをダウンロードし、自身にとって有用と思えるものには、対価を支払うという方向へ傾き始めている。しかし、Gartner が指摘するように、2018年におけるコンシューマ・アプリの 95% 前後は、無料ダウンロードになると予測されるため、その門は次第に狭くなっていく。

Enterprise mobile apps have become a pain point for many businesses.  Paulo Rosado, CEO of OutSystems, said that ”it’s clear that organizations are struggling to deal with a deluge of mobile app requests, with multiple platforms to support, hundreds of change requests and complex back-end integrations.  To make matters worse, as demand for mobile app developers grows, companies will continue to have a challenge hiring developers. Not only will they be increasingly hard to find, they will also be increasingly expensive.”

エンタープライズにおけるモバイル・アプリは、多くの企業にとって、痛みを伴うものになっている。 OutSystems の CEO である Paulo Rosado は、「 明らかなことは、それらの組織が、モバイル・アプリの要求という大洪水に対処するために、とても苦慮していることだ。つまり、マルチ・プラットフォームのサポートや、膨大な変更の要求、そして複雑なバックエンドの統合などが山積みとなっている。最悪のシナリオは、モバイル・アプリ開発者への需要が高まるにつれて、それらの企業が、デベロッパーを雇用しようと動き始めてしまうことだ。そうなると、デベロッパーを探し難くするだけではなく、コストの高騰を引き起こすだろう」と述べている

A survey on mobile app development by OutSystems found that:

OutSystems による、モバイル・アプリ開発者の調査からは、以下のような論点が読み取れる:

  • The average length of time to develop a mobile app is between three and twelve months
  • 63 percent of enterprises have 11 to 25 percent of their mobile app developer positions unfilled
  • モバイル・アプリ開発における平均的な期間は、2ヶ月〜3ヶ月である
  • エンタープライズの 63% が、モバイル・アプリ・デベロッパーの確保において、11%〜25% の不足を訴えている

ーーーーー

11/27 の Statista に、PC Outlooks Remains Grim Despite Tablet Slowdown という記事とチャートが紹介されていました。緩やかに低下していく Laptop/Desktop に対するニーズを、Tablet が補ってきますが、スマホのような爆発力があるかというと、そこまで盛り上がるマーケットではないようです。 そうなると、エンタープライズ・アプリのプラットフォームも、必然的にスマホへと集約されていくのでしょうが、まずは、小さなスクリーンに合わせたアプリの構造、多様化するスクリーン・サイズへの対応(特に Android)、そして、モバイル帯域の有効利用といった、問題を解決しなければなりません。ちょうど、いま、How Facebook Makes Mobile Work at Scale for All Phones, on All Screens, on All Networks と、Facebook Mobile Drops Pull For Push-based Snapshot + Delta Model という記事を訳しているのですが、同じような問題にエンタープライズも取り組まざるを得ないのでしょう。 来年が、Mobile BaaS の年になり、この辺りを吸収し始めてくれると良いですね。

ーーーーー

<関連>

Container の調査:Flocker を Docker 上に積み上げることで、アプリとデータの移動を容易に
CoreOS の調査:足し算から引き算へと、Linux ディストリビューションを再編する
Social の調査:Twitter と MIT の コラボ が、膨大なソーシャル・ストリームを分析していく
Data Center の調査:大変革を促す4つの要因とは? – Gartner
Security の調査: Google と Dropbox が発表した Simply Secure イニシアティブとは?

%d bloggers like this: