ThoughtWorksが2015年11月のRadarを公開した。これはテクノロジーを4つのエリア、言語とフレームワーク、プラットフォーム、テクニック、ツールに分けたものだ。
今月のThoughtWorks Radarはまず大きなトレンドについて説明している。
- 依存関係を管理したり、クラウドにおける水平スケーラビリティを提供する手段として、デプロイメントにDockerを使う
- マイクロサービスおよび関連ツールの人気が拡大している
- JavaScript関連ツールが落ち着き、混沌とした状況がやわらいでいる
- セキュリティは引き続き、SDLCにおける全員に関して一般的な問題である
Radarがカバーしている4つのエリアから、興味を引いたものをいくつか取り上げる。それぞれおすすめ度合いを示す四象限(Adopt、Trial、Assess、Hold)に分類されている。
Adopt
ThoughtWorksは以下の導入を推奨している。
- ECMAScript 6 – 直ちに使うことを推奨する。たとえすべてのブラウザがすべての機能をサポートしていなくても、Babelのようなトランスパイラを使えば利用できる。
- Swift – 「ツールのサポート、リファクタリング、テスト」に関して一部問題があるものの、ThoughtWorksは社内すべてのApple関連開発にSwiftを使っている。オープンソース化するという発表は、この言語への投資に自信を持たせてくれるものだ。
- 2要素認証 – ログインクレデンシャルを守るために必須である。GoogleやMicrosoftのフリーアプリで生成したタイムベースのワンタイムパスワード(TOTP)を使うのが人気のあるソリューションだ。
- リリースからデプロイメントを分離 – ThoughtWorksはこの2つを区別している。デプロイメントは「アプリケーションコンポーネントやインフラトラクチャに変更をデプロイする行為」であり、リリースは「機能変更がエンドユーザに、ビジネスインパクトを持って、リリースされるときに使われるべき」だ。
Trial
Trialでは以下が興味を引いた。
- SignalR – ThoughtWorksは.NET WebSocketサーバが必要なときに、このフレームワークを使うのをすすめている。WebSocketには、サーバがブラウザにアクションを開始できること、「今日のWWWを支えるリクエスト/レスポンスモデルからの逸脱」、それにまつわるセキュリティリスク、標準がいかなる「cross-origin request policy」も課していないこと、といった不安があるためだ。
- AWS Lambda – 「イベントに対する応答として、または関連するAPI Gatewayからの呼び出し経由で、非常に短寿命のプロセス」を開始できる。つまり長寿命なマシンを気にする必要がないということだ。
- Fastly – TwitterやGitHubが使っているCDN。その「機能セット、スピード、プライスポイント」は「エッジキャッシングソリューションを探している人にとって非常に魅力的な選択肢」だ。
- HTTP Strict Transport Security (HSTS) – アタッカーによるHTTPS接続からHTTP接続へのダウングレードからサイトのユーザを守る。
- ビルドのためのDocker – ビルド時の依存関係を管理し、「ビルドエージェントを汚すことなく、完全に隔離された環境でコンパイル」を実行する。
- フロントエンドのためのバックエンド(BFF: Back-end for Front-end) – フロントエンドクライアントのタイプごとにバックエンドサービスを作る。
- サンドボックスのためのiFrame – 信頼できないJavaScriptをサンドボックス化するためにiFrameを使う(詳しくはAMP HTMLを参照)。
- あらゆるものにNPM – あらゆるJavaScriptツールにNPMを使う。
- Browsersync – 複数に及ぶブラウザやデバイスでのテストに推奨。
- Docker Toolbox – boot2dockerの置き換え
Assess
ThoughtWorksは次のテクノロジーを評価するよう推奨する。
-
Material UI – GoogleのMaterial Designガイドラインを実装したReactコンポーネント
-
React Native – Reactを使ってネイティブアプリを構築するフレームワーク
-
AWS ECS – Amazonのコンテナサービス、「今は全体的に複雑で優れた抽象層が欠けている」が、AWS上でDockerコンテナを動かす必要があるならおすすめだ。
-
Kubernetes – マシンクラスタにおけるコンテナデプロイ
-
Microsoft Nano Server – Windowsサーバを裸にしたバージョン。.NETソリューションにおすすめ。
-
Presto – オープンソースの分散SQLクエリエンジン。「超並列処理アーキテクチャ」で、Cassandra、Hive、MySQL、PostgreSQLをサポートする。
-
Bug Bounty – ハッカーに報酬を払ってセキュリティの弱点を見つける。
-
Hosted IDE – セキュリティを理由にコードとビルドツールは組織のクラウドに保存されるが、IDEはVPN経由で開発者のブラウザにロードされる。
-
Espresso – Androidの機能テストツール
-
Gauge - クロスプラットフォームのテスト自動化ツール。ThoughtWorksがオープンソース化。
-
Let’s Encrypt - フリーで証明書を発行する認証機関
-
RAML – APIモデリング言語。Swaggerよりも軽量で、「既存のAPIにドキュメントを追加することから、APIを設計することへとフォーカスを移してくれる」とThoughtWorksは考える。
-
Visual Studio Code – MicrosoftのフリーのクロスプラットフォームIDE
Hold
ThoughtWorksはいくつかのテクノロジーをHoldに置いている。
-
Applicationサーバー – より良いソリューションは組み込みサーバだ。
-
野心的すぎるAPI Gateways – 「API Gatewaysは一般的な関心、例えば認証やレート制限に対処するユーティリティを提供できるが、データ変換やルール処理といったドメインの賢さは、サポートするドメインの近くで仕事をするプロダクトチームがコントロールできるアプリケーションやサービスになくてはならない」とThoughtWorksは考える。
-
SPDY – テクノロジー自体はHTTP/2に取り込まれてきているので、これはHoldだ。
-
Gitflow – ThoughtWorksはこれをHoldに置いた理由をこう説明する。「私たちはGitにある柔軟性を気に入っていますが、まずいエンジニアリングプロセスを促すツールは大嫌いです。非常に短寿命のブランチは傷が浅いのですが、私たちの知るGitflowを使っているチームの多くが、そのブランチヘビーなワークフローを乱用しても構わないと思っています。これは遅いインテグレーションを促します(したがって、真の継続的インテグレーションを妨げます)。」
ThoughtWorks Radarで言及されたすべてのテクノロジーを見るには、レポート(PDF) を読むか、オンラインのThoughtWorks Radarにアクセスすることをおすすめする。