Wildfly on Azure WebApps(Windows)

Wildfly をWebApps(Windows)に乗せてみた

他にも行っている方がいるのですが、うまいこといかなくて、成功している方などの情報から構築成功したので、書いておきます。

環境

  • WebApps for Windows
    • Java バージョン:8
    • Javaマイナーバージョン:新しい順
    • Java webコンテナ:新しい順 Tomcat 9.0

手順

・Kudo画面を開く
・\site\wwwroot\へ移動する
・CMDから以下のコマンドを実行する

・「Web.config」を追加し、下記の内容とします。
・やっていることとしては、「PORT」の指定、タイムアウトを伸ばして動作安定までのラグを確保、「HOME」の指定となります。

・アクセス直後は、起動にはかなり時間がかかりますので、必要であれば、WebAppsを上位契約とし、常時接続をONにしてください。

これでなにすんの?

・AAD認証などAzureサービスでのPaaS、SaaSをいろいろ組み合わせやすくなる
・サービス展開がやりやすくなる
・オンプレに乗っているJavaAPIサービスをAzureのPaaS化すればUWPからいじりやすいよな(ぉぃ
ええ、色々よこしまな思惑やら仕事がらみもあったわけですが、ネタ的にはこんな感じですかね

ASP.Net Core 2.1.1 明示的バージョン指定

しばやんさんが書いた「ASP.NET Core 2.1 の暗黙的なバージョンには注意」で、んじゃちと回避策を試そうとやってみました

結果としては、確かに明示的にバージョン指定すればおとなしくなるなですねw

標準

明示的2.1.0

明示的2.1.1

というわけで、今後はKudoでAzure上のバージョン確認しつつ、ここがVisualStudioの更新で治るかを期待でしょうか。
まあ、その前にVS2017で.NetCore2.1標準で選択肢に出てこないんですけどね、、、
※.NetCore2.1SDKをインストールしていれば出ます

de:code 2018 所感

de:code 2018

5/22、23に行われた de:code 2018 へ参加してきました。

今回「Microsoft MVP パーソナルスポンサー」としてサンプルコードを提供いたしました。
なので、ページに写真乗ってたりしますw

しかも、キーノートのスポンサー紹介のところにも出ることになるとは(;’∀’)

さて、提供路行ったサンプルコードは「UWPからAzureサービス利用 ~今更ながらのUWPアプリ構築からのネタアプリ」にありますので、ご参照ください。

・キーノート

発表者が最後平野社長登場まで、すべて女性という、Woman in Technologyをキーノートから進めていました。

・各セッション

知りたい技術のセッションはできるだけ回ったんですが、やはりいろいろ時間が被って、泣く泣く選択していく状態でした。
混雑具合とか考えると開催を3日間にして、同時間セッション数を減らして、部屋の広さを確保できないかなと思いつつ、色々難しいだろうなと、、、

よかったこと

今仕事でやっている部分でどうしてももやもやしていたところを解消できて、次にどうやって行くかを考えるきっかけになったのは、de:code来ないとわからん部分だったなと

残念だったこと

澤さんのセッションどうやっても聞けないスケジュールで、泣く泣く諦めました orz

・全体

Build、de:code通して、大幅な新規技術がというよりは、PreviewがGAになったり、サービスブラッシュアップ、採用事例をどんどん出せる状況
今はCloudであることが普通であって、オンプレはオンプレで後方にいるのはしょうがないが、フロントや各サービスをクラウドへの移行が進んでいるなと思いつつも、日本のITはもっと切実にクラウドや古いオンプレをどうするのかをもっと考えていかないといけないなと思いました。

・今後

今年はGAするサービスも増えるでしょうし、マネージドサービスも増えてくることでしょう。
クラウドとオンプレが並行稼働はしばらく続くでしょうし、全部が全部クラウドというわけにはいかないでしょう。
クラウド、オンプレ全体としてサービス監視や運用をどうするかはまだまだ考えることは多そうです。

Azureにおけるセキュリティを考えてみる2

・Azureにおけるセキュリティを考えてみるのその2です
今回は全体的な環境を考えてみましょう

まあ、よくある販売購買やってる会社的な感じかな?

AzureやMSのクラウド製品群に関して言えば、MSのサブスクリプションによるセキュリティが一番大きなくくりとなります。
ポータルや管理画面などでのユーザー制御や、サービス制御がそれにあたります。

つまりここでの管理者アカウントや上位権限ユーザーアカウントの漏洩が最も大きなセキュリティリスクとなります。
これは当然のことだと思うので、管理や引継ぎはしっかり行うべきですね。

On-PremissでのActiveDirectory(以下AD)情報はAzureAD(以下AAD)へAD Connectサービスで同期が可能ですが、クラウドサービスへ軸足を移すのであれば、On-PremissのADをAADを正にするように移行を計画するべきでしょう。

On-Premiss ADはAADのOn-Premissサービス用認証サービスとして、AD FSもそのためのサービスとして運用を切り替えましょう。

D365での認証についてですが、AADでの認証を標準とした構成にしないとAzure連携アプリが非常に作成しにくくなります。
もちろん、証明書認証に関するコードを用意することでAD FSも含んだOn-Premiss側認証を利用できますが、環境によって開発工数変わるんではないでしょうか。

・簡単に言えばどういうこと?
AzureはActive Directory(AAD)で認証、セキュリティが担保されるようになっているので、それをもとに各種機能をAADにアプリケーション登録することでAD認証配下とし、AD認証を必須としてください。

さて、ここのところが普段アプリ系記事しか書いてない私が、こんな記事書いた理由です。
アプリ書いてるとなると、Azure サービスプリンシパルでの認証がよくやることとですが、上記の部分がきちんと立てつけられていないと、そもそもセキュリティを考慮したも何もあったもんではないとうことで、書きました。

今後さらにクラウド上へ自社サービスやシステムの構築ということが行われ、On-Premiss環境との連携はクラウド側が主体となることが多くなっていくことでしょう。

開発者はいろいろなIaaS/PaaS/SaaS/FaaSを駆使しながら開発を行うこととなりますが、セキュリティへの考慮が特に求められることとなっていきます。
Azureでは各種サービスをシークレットキーで基本的に守る形となっていますが、万が一の漏洩に対しては、Azure Key Vaultを使用し、自動でシークレットキーが更新され続ける機能もあります。

シークレットキーの管理に関しては、そもそも内部犯行許さないようにしてれば、Key Vaultまではと思いますが、高セキュリティが求められる場合は仕方がないですね。

また、StorageServiceにもファイヤウォールが登場し、もともと暗号化などはされていましたが、アクセス制御が可能となり、データ保護が一段と進みました。

クラウドサービスでUWPアプリ開発しようぜ!
いや、クラウドサービスそのものの開発もしますがw

Azureにおけるセキュリティを考えてみる

・Azureってなに?
 AzureとはMicrosoftが提供しているCloud Serviceです。
 たとえば、AmazonのAWS、GoogleのCloud PlatformなどもCloud Serviceとなります。

・なんでセキュリティの話?
 経験上、仕事の際などにどれだけセキュリティが高いのかや、どうやってもっとセキュリティを高めればいいのかを、聞かれたり、考えたりということをする機会が増えたので、自分のメモ的に現在(2018/02)時点での考えを取りまとめるためにちょうどいいのでBlogのネタにしました。

 まあ、概要がここに書いてあったりするんですけど。
 Microsoft Azure セキュリティの概要
 https://docs.microsoft.com/ja-jp/azure/security/azure-security-getting-started

 というわけで、この見解は私の個人的な独断と想像、いじれた範囲からの記事であることをご承知下さい。

 この辺に関しては、全体的な構成図と一緒にどこかでMS社に公開してほしいような気がするんですが、、、

・Cloudとは言っても物理的なサーバは存在しているはずで、そのセキュリティは?
 Azure本体(データセンター)のセキュリティといった部分ですね。
 現在世界各国で42 リージョンが存在しているそうですが、当然そこのセキュリティは強固です。
 クラウドのサービス拠点として、日本は東日本、西日本と書かれますが、どこに置かれているかの正確な場所は非公表ですし、MSの中の方々でも知っている方はほとんどいないのではないかと思います。

 https://azure.microsoft.com/ja-jp/overview/datacenters/how-to-choose/

 ちなみに、ディスクドライブの廃棄の際は、構内の専用箇所でデータの消去作業後、最低4つに分断、かつ専用コンテナでそれぞれ違う国の処分場へ輸送の上で、最終処分を行うとのことです。

・AzureってMSが監視しているの?
 契約クラウドサービスそのものの完全監視は行っていないようですが、その基盤は当然MSの監視下であり、今までもMS本体へ世界中からアタックを受けながらも、セキュリティを確保している高度なセキュリティレベルをクラウドサービスの基盤部分でも実施しているそうです。

 よく、自前のほうが安全ではないかという方々がおられますが、MSと同等の金額と人員規模、技術力をそろえることが
できているのかご確認ください。
 なお、セキュリティセンターの入り口の写真(ロゴの壁)とか、内部イメージはたまにMSの講演で表示されることがあります。

・インターネットにさらされているんだから全部IP制御させろ
 全部は無理です。
 とはいえ、外部アクセス制御そのものはNSG(ネットワークサービスゲートウェイ)などで行うことができます。
 また、PasS/SaaS/FaaSで作成されるAPIに関しては、各種サービスを組み合わせることで制御可能ですが、そんなにアクセス不能にすると自身で開発したサービスの継続開発や運用に支障をきたします。

・どんな開発の組み合わせがあるの?
 開発でよくあるのは「WebApps(ApiApps)」「LogicApps」「Funcsions」の組み合わせでしょうか。

 「ApiApps」に関しては以前はAppricationGateWay(AppGW)を使用するにはAzure App Service Environment(ASE)を作成し、その中に配置することでIP遮断とGW制御が可能となっていました。

 とはいえ、いまならASEを使用しなくてもAppGWをApiAppsに使用可能なので、NSGによる制御で十分ではないでしょうか?

 ASEのもう一つの利点としては閉塞ネットワーク制御に便利といった部分でしょうか。

 Azure のネットワーク セキュリティの概要
 https://docs.microsoft.com/ja-jp/azure/security/security-network-overview

 「Funcsions」もApiAppsと同じように制限可能です。

 そして自分がかかわった中ではよく議題に上がるのが「LogicApps」に関してです。
 機能としては「Logic Flow」と呼ばれるサービスになるのですが、これは外部に公開することを前提としたサービスのため、IP制御が基本的にはできません。(IPアドレス制限はできる)

 「WebApps(ApiApps)」「LogicApps」「Funcsions」に対してセキュリティ保護をかけるのであれば、API Management Serviceを使用し、Azure Active Directoryと連携した総合API管理を行うのが良いと思っていますが、なかなかそこまでという場合は、そもそも公開しないか、クラウドでやるのか再検討してくださいとしか言えません。

・個人想像での図としてはこんな感じかなと
 その2に続く

Windows 10 Mobile によるリモートワークの可能性

この記事は「Windows 10 Mobile Advent Calendar 2017」に参加しています

さてさて、まずは下準備ということで、AzureでVMを作成しました。

これで、Windows 10 MobileのContinuumからつなごうという趣旨なわけです。

で、有線Continuumでやる予定だったのですが、ちょいとうまくつながらなくなったので、Windows10PCの接続アプリを使用して、Wi-Fiによる無線Continuumで作業しました。

準備ができたらW10M側のContinuumアプリで接続をかけます。

接続すると、普通にContinuumモードになります。

リモートデスクトップアプリに準備済みの接続実行!

証明書忘れてた(;’∀’)

サクッとWindowsが起動します。

というわけでVisualStudio2017搭載VMなので、起動して作成してみましょうかね。
……しまった、英語だったなこれ、まあ、設定で日本語にするなり、そのままでも問題なく使えると思いますが。

あ、OSがWindows10じゃないからUWPアプリ駄目じゃないか。

えーVMでWindows10のVMを選択の上で、VisualStudioをインストールしたほうがリモート開発環境としては良いということでw

リモートワークの可能性ということで、とりあえずW10M上のPowerPointを


有線Continuum&有線LANであれば、十分なVMを用意し、環境を整えればプログラム開発をリモートワークとして、セキュリティを保って行うことも可能ではないかと思います。

また、通常のofficeアプリでの作業はマクロをゴリゴリ使うということでなければ、十分使用可能であり、無線ContinuumまたはUSB-C to HDMI機器でのプレゼンなど業務も行えることでしょう。

これだけのことができる Windows 10 Mobile がという思いはありますね、、、
ただ、Windows 10 On ARMが正式に発表されたこともあるので、ひっくり返す何かが起きればうれしいですね。

Windows Phoneはいいぞーー!

Windows Phone クロージング?

えーTwitterでいきなり飛んできましたが、ジョー・ベルフィオール氏が Windows 10 Mobileというか、Windows Phone 向けの新機能やHWはないとつぶやきました。

https://twitter.com/joebelfiore/status/917071399541391360

修正バッチやセキュリティアップは行われるようですが、残念です、、、

いや、今年に入ってからBuildやdecodeでMSの標語がインテリジェントクラウド、インテリジェントエッジとなり、なぜか機器集合写真にPhoneが見えなかったり、
Phone向けのコマがビジネス向け一コマの時点でそういう雰囲気が醸し出され、Windows 10 Mobileのライフサイクルが2018年になっていたり、
Elite X3の販売、サポート終了が発表されたりと、積み重なったところにこれでした。

アプリがないとか色々発言が出てますが、そもそもスタートが遅れた&Android、iPhoneの更新速度にも追いつかなかったのが大本だと思うんですが、、、
WindowsMobile、WindowsPhone7、8、8.1、Windows 10 Mobileとアプリも開発してきて盛り上げようとは頑張ってはいましたが、本当に無念です

さて、次の買い替え端末は何にしようか、、、

とはいえ、UWP、MR、IoT、クラウドといったUWPにおける開発は今後も盛り上げていきます!

UWPはいいぞ!

Windows 10 Mobileで有線LAN

さて、前回の記事でDeskDocに有線LANポートがあることを書きましたが、その接続状況などを


設定の「ネットワークとワイヤレス」に接続していない場合は存在しない「イーサネット」の項目があります。


タップすると接続先ルータ名、まあこれは出たりでなかったりしそうですが、つないでない場合は未接続と表示されます。


さらにタップで、詳細情報の項目が表示されます。
「プロキシ」設定、IPアドレスなどのプロパティが表示されます。

そして説明のところには認識しているイーサーネット機器名が出ており、

「Realtek USB GbE Family Controller」と蟹さんチップの模様ですね。
もしかしたらこの系統のUSBLANであれば別途認識するかもしれないですが、さすがに無理かな。

で、これで何したかったかというと、コンティニウムしながらのリモートデバッグがしたかったわけですが、
結論から言えば、出来ません、というかサポートいていないという回答を受けました。

無念、、、、

でも、UWPはいいぞ!

de:code 2017 所感

Alex氏をはじめとしたMS本社の皆さん、日本MSの皆さん、スピーカーとして登壇された皆さん、そして、参加者の皆さんお疲れ様でした。

今年はde:codeに久しぶりに参加できた事もあり、わくわくしながら参加できました。

有償イベントという事で、なかなか参加しにくいという方々もいらっしゃるかもしれませんが、これからどういった技術の方向性に向かっていこうとしているのか、普段お話しする機会の少ないMSの方や、他社技術者の皆さんとお会いし、忌憚のない意見交換をすることもできることを考えれば、ぜひ参加してほしいと思います。

全体的に個人的にはもう少し技術よりでもいいかなという気がしましたが、そうなると一コマ当たりの時間が足りないのが余計に気にかかることになるかもしれません。

詰め込みになるのは仕方がないのですが、一コマを70分にして、大幅に混雑が予測されるセッションを2~3部屋つなげた形にし、3日間位に期間を取っていただけると、もう少しセッションの内容の濃さや、受講者の余裕につながるのではないかなと思います。

また、現在の会場ではどうしても導線の問題もあり、もう少し広い会場にできればとも思いますが、東京近郊ではなかなか難しいのかもしれません。

さて、HoloLensをはじめとしたAR/VR/MR技術、IoTを広げるためにCloud、セキュリティ確保、UWPを基本としたAll Windows Device One Core 、マルチデバイス等非常に速い速度で、新しいことがいっぱい出てきますが、基本を押さえて学びを続けて行くしかないなと実感する二日間でした。

そして、自分はUWPアプリでちょっとひねったことを考えていこうと思います。

UWPとWindows 10 Mobileはいいぞ!

de:code 2017 Day2 ちょっと遅くなった報告

・HoloLens – 真のエンジニアが知るべき実装
最初のセッションはHoloLensで
HoloLensのアプリは前日のセッションでもあったのですが9割がUnity製……ですが、DirectXを使用し、HoloLensというテクノロジーを理解というセッション
DirectX – Windows Mixes Reality – UWP を連携して行える
Unityと比べた際の利点は、制御をこちらで行えるので、制御をきちんとすれば、Unityよりも省電力でよい表現が可能とのこと。

・ホログラフィック アプリテンプレート(Holographic DirectX 11 App)
ベースとなるテンプレートはHolographic SDKインストールで使用できる
見ていてDirectX12ではなくDirectX11なので、今後アップデートで変わるのかなと

テンプレートを使用した処理の流れが説明されました。

DirectXでのシェーダーはテンプレートで提供されているものを参考に
・CreateDeviceDependentResource
・GeometryShader.hlsl
・PixelShader.hlsl
・VertexShader.hlsl
・VRRTVertexShader.hlsl

座標の追従、ボイス入力、サウンド(SpatialSound UWPサンプル)

空間マッピングを利用するには、「package.appmanifest」に「spatialPerception」を追記する必要があります。
(HolographicSpatialMapping UWPサンプル)

カメラはMedia Foundationを利用してトラッキングなどを行う
(HolographicFaceTracking UWP サンプル)

入力反応はBluetoothによるイベントハンドラーになります

CPUベンチマークを取るとCore i7 6600Uを1として比較すると、HoloLensは0.15、Lumia830で0.048程のスペックであることを認識しておくべき。

HoloLensアプリを作成する際のパフォーマンスの検討

HoloLensが認識する空間データは穴が開いていたり、幻(存在しない)の面が出たり、偏りが発生する。
また、ほぼ平面なのにメッシュが細かく、パフォーマンスなどに影響が出る

「ポアソンサーフスリコンストラクション」を使用するなど、データを整える必要がある。

HoloLensだけではなく、いくつかのテクノロジーを組み合わせることで、空間と時間を超えることができる!

・IoTのセキュリティアーキテクチャと実装モデル
 2セッション目はIoTに関して
 現在IoTが増えているが、乗っ取り、漏洩、破壊の脅威が増えてきている
 セキュリティを確保するには分断されたセクションで考えるのではなく、全体を通してセキュリティを確保する必要がある。
 どこからどこに引き渡しが存在するのか、その引き渡し元/先は本当に意図した引き渡し先なのか

 今後、AIとセンサーが融合することで、デバイスの相互作用に関するリスクが顕在化するはず、今から包括的にセキュリティを確保しましょう。

・GTC2017直送! NVIDIA GPU技術最前線
 ランチセッションです
 しょっぱなから「謎の企業」ネタで沸いていました。
 また、NVIDIAは全部大文字で読みは「エヌビディア」ですとアピール
 新たなNVIDIAのGPU Volta を搭載したTesla V100やスパコンDGX
 そして、NVIDIAが提供するGPGPUCloudサービスは他のクラウドサービスにも接続可能など、まさにGTC2017直送でした

・知っておくべき UWP アプリ開発の A to Z
 いまUWPといった場合は、Windows10用アプリプラットフォーム
 Desktop、Mobile、Xbox、IoT、IoT headless HoloLensがデバイスファイミリー
 クロスプラットフォームも作る場合はXamarinで
 Win32アプリはDesktop Bridge でUWP化する(Desktop App Converter)
 Windows Template StudioでUWPアプリ開発の効率化
 HockryAppでクラッシュレポートを収取
 UWPはいいぞー(個人の感想です)

・C#の現状と今後を徹底解説!「この素晴らしいC#に祝福を!」
 C#は7.0に到達
 6.0が出るまでに時間がかかり、機能更新も少ないように見える
 Roslyn、オープンソース化、C#による再実装で時間がかかったが、これは次の10年、20年に向け末永く戦える環境のため!
 .NET Frameworkも同じように再実装による停滞期に
 .Net Coreへの移植もあり、C#にも影響が出ている
 今を抜ければ.NETも次の10年、20年を戦える体制に
 IDE(VisualStudio、VisualStudio Code、VisualStudio for Mac)もクロスプラットフォーム化を進めているので、しばらく大変かも
 C#はdata、performanceを強化していくことになる
 今後も楽しみ

ちょっと休憩でEXPO会場に
 
Alex氏のサイン

・Build 2017 Updates ~ Application UI Design
 Build 2017で発表された、今後Application UI Designとして導入されるデザインガイド「Fluent Design」に関して
 今後Windowsはデスクトップだけではなく、マウスやタッチパネルだけではなくなる
 音声入力、ジェスチャー入力など幅が広がる事に対応しよう


これらの新しいデザインは勝手に適用されるという事はない、新しくアプリを作成する際に新しいコントロール、または新しいスタイルを適用しない限りそのまま

このスタイルは「Fall Creators Update SDK」から可能
Fluent Design System
Fluent Designのページ