de:code 2015 day 2 メモと感想

前回 の続きです。

Webオープンソース時代到来 企業アーキテクトは何を考えるべきか

オープンソースがどうこうというか、普通にエンタープライズアーキテクトとしてどうすべきか?という話で、今回のイベントで一番勉強になりました。最新技術ばっか使ってちゃ (企業利用は) ダメ、とか技術 (要素) はいつか必ず終わるからライフサイクル含め技術選択しろ、とか、分かっちゃいるけど他人に言われないと中々意識できないですね。

  • MS のトレンドを分析
  • Web アーキテクチャのトレンド
    • モジュール化や OSS 化が進んでいる
    • クロスプラットフォーム、マルチデバイス
    • 開発運用サイクルは高速化、もうどうしてもアジャイルになっちゃう
    • Microservices
      • 適切なサービス分割が難しい
      • モジュール (サービス) の切り方
        • DB も含めて 1 モジュールとして考える
        • 但し、論理と物理をごっちゃにしないように注意
        • 物理的に切るのは慎重にやる
        • 業務の面から切るべきだが、切り方は何通りもある
    • フロントエンド
      • 覚えるの大杉
      • 全部覚えるんじゃなくて、使うところだけ覚える
  • エンタープライズが抱える問題
    • モノシリック、レガシー、IE、人不足
  • エンタープライズアーキテクトの役割
    • ビジネスにおいて最適な技術選択の戦略を考える
  • 技術選択
    • 将来性、ライフサイクルを考慮する
    • OSS (車輪の再発明しない)
    • 習得レベル、教育レベルを考慮する
    • メンテナンスライフサイクルを考慮する
      • 二年周期くらいでリプレースするかしないか考えられるくらいがいい

クラウド時代のデータアーキテクチャ

データが爆発していくなかでどう活用していくか?こんな時はこんな Azure のサービスをどうぞ、という感じでした。設計の話とかまでいかず、サービス紹介な感じだったので途中退出してしまいましたすいません (/ω\)

Azure を利用した IoT データ分析

マジすげー。
IoT ソリューションとなる Azure サービスを紹介してもらいつつ、実際にアプリ (というかゲーム) を作って参加者全員で体験しました。言ってもそうデータ量は多くないのでその点はあれですが、やはり実際に動くものを見ると違いますね。各種サービスの大まかな特徴がとても良く理解できました。

  • Azure IoT 関連サービス
    • IoT Hub (IoT Suite)、Data Lake が近々出てくる
  • MS が考える IoT ソリューション
    • 全部 Web は大変なので IoT Gateway に集約
    • Event Hub と Stream Analytics でイベント集約、永続化、フィルタ、再送
    • Machine Learning で分析
    • Power BI で GUI
  • Event Hub
    • 送受信サービス
    • HTTP / AMQP
    • 秒間数百万イベント、超低レイテンシ
    • SAS による認証
    • 負荷分散 (パーティショニング)
  • Stream Analytics
  • Power BI
    • リアルタイム集計ダッシュボード
    • グラフ化

新しいクロスプラットフォーム開発 Visual Studio Code

MacLinux で動く高機能エディタで、インテリセンスだったり画面分割やデバッグメソッド検索など便利機能が揃っていますというお話でした。Vim やら Emacs やら Sublime やらでどこまで突き詰められるか知らないのでどっちがいいとは言い難いですが、C# 書くなら普通に使いたいなと思う程度には良さげでした。一方で他のエディタで高度に訓練されている方は無理して移行しなくてもいいな、とも。

Microsoft Azure Service Fabric によるレジリエントなマイクロサービスの構築

Azure Service Fabric って何だろう?という状態だったのですが、高性能なインフラを持ったコンテナ機能付き Web サービス構築基盤、と理解しました。費用面が不透明ですが、運用は相当楽できそうですし、Azure 内部でも使っているということで信頼性もあります。スケーラビリティも考慮した マイクロサービスを複数立てたい場合には是非使ってみたいサービスではないでしょうか。サービスの実装にどこまで制約がかかるのかが懸念と言えば懸念でしょうか。

  • Azure Service Fabric
    • アプリをパッケージング、デプロイ、負荷分散などしてくれる
    • 近い将来 Azure サービスとして提供予定
    • IaaS と PaaS の中間で動く、PasS の実行エンジンと考えるとよい
    • VMVM 拡張機能より自由さはないが、App Service よりは自由、迅速に開発可能
  • クラスタ環境
    • 数千台までスケールし、リージョンを跨ぐことも可能
    • 障害検知と自動リカバリも
  • マイクロサービスと何が違うか
    • 状態を Azure 側が適切に管理
  • 開発言語
    • C# or C++
    • 将来的には Node.js や Java でも出来るようにしたい
  • アプリの種類
    • Service Fabric でのアプリケーションとは、(広義の) コンテナと思えば良い (実装+設定)
    • ステートレスかステートフルか
    • アクターかそうでないか
      • アクターはインスタンスが生成される (よく分からなかった...)
      • 必ずシングルスレッドで動く
    • 4 通りの状態を作れる
  • 開発するには
    • まだ Azure では利用できない
    • SDK があるので、ローカルに環境は作れる
    • GUI 管理ツール => Service Fabric Explorer
  • 信頼性
  • 独自のコレクション
    • Reliable Collection
    • .NET のコレクションを拡張した
    • Concurrent + 分散環境での信頼性確保 (e.g. 分散トランザクション)
  • MS では 5 年前から内部的に使ってる
    • SQL Database, DocumentDB, PowerBI などなど
    • だから、信頼性は高い

Windows 10 for Phone の全て

MADOSMA も出てきて Windows Phone が盛り上がってきましたね!AndroidiOS アプリも動くとあってとうとうブレイクを果たしてくれそうです。

  • 名前
  • Windows 10 Mobile の定義
    • 明確には決まってない
    • 特徴は DirectX 9、パワーボタンとボリュームボタン、7.99 インチまで
  • Continuum
    • (PC ではなく) モニタに繋ぐとデスクトップモードになる
  • 業務用途に耐えうる
    • セキュリティ、デバイスマネジメント、認証 (AD)
    • データプロテクション
    • ポリシー
      • デスクトップ版より細かくポリシーを設定可能
  • フォントの話
    • 中華フォントの話
    • カーネルからマルチバイト文字がアプリに来たとき、アプリ側で言語が判定できない
    • Win10 から環境言語=デフォルトの言語を持てるようになった
    • これでほぼ解決するはず
  • アプリ
    • 今までのアプリはそのまま動く
    • Windows 10 ではあるが、デスクトップ版アプリは動かない
  • 開発の注意点
    • エミュの時は x86、実機の時は ARM で実行しないと動かない
    • マニフェストでの指定により、Mobile でしか動かないアプリも作成可能
    • Android とのブリッジ
      • ツールで簡単に変換できる
        • Google 独自の部分が MS 独自に変わる
        • google map が bing map になったり
      • Astoria Platform で動作
        • カーネルの上にサブシステム構築 (VM ではない)
        • パフォーマンスは Android と比較して落ちる

de:code 2015 の感想

Windows 10 とか Azure とか全然ついていけてなかったので大変勉強になりましたー。とはいえ、どうしようもないことなんでしょうけどここでしか聞けない話やまだどこにも発表されてない話があまりないのは残念ですね。費用も安くはないので悩ましいところ。一方で、チョークトーク (少人数で議論しつつなセッション) みたいな試みはとても面白いですね。

技術的には IoT、(マイクロサービスに備えた) アーキテクチャクロスプラットフォーム、コンテナあたりがこれから益々熱くなっていくキーワードなんでしょう。大抵のセッションで言ってた気がします。Open Web な世界とは微妙ながら距離を置くってのがこれまで私の中の MS 技術者の認識でしたが、今後はそうも言ってられないですね。MS 自身もオープン化アジャイル化を進めてきてて多方面に高速展開していってるのでこういう場で普段追えてない分野の概要を学ぶことが出来るのはありがたいことです。