情シスは何度でも甦るさ。

OracleDB/Ruby好きの情シス部員がお送りします

iPhoneを企業導入することになってMDMとか運用管理とかやってみた

前提

  • ユーザー企業の情シス
  • 社員、店にiPhoneを配布することになった
    • 社員配布数:100端末以上
    • 店配布数:数百
  • 検証のため、一部先行して導入
  • iPhoneは、キャリアから調達(Docomo
  • キャリアのMDMサービスを使用(あんしんマネージャー)  
     

全社展開に向けて、運用管理を考えなきゃ。

検証当初に困ったこと

  • キャリア提供のMDMは機能不足な気が
    • iOSのユーザーによるアップデートを無効にできない
    • サポートへの問い合わせに時間がかかる。手段がTELしかなくて、ログの文言をいちいち口頭で伝えるのが面倒
    • アプリ配信時にユーザーにApple IDのパスワードを入力させなければならない 
       
       

そもそも、キャリアの提供するMDM機能ってイケてるのか?

色々調べた結果

キャリアの提供するMDMはイケてる

  • あんしんマネージャーはVMWare社のAirWatchという製品を提供
    • この製品によりVMWareは、ガートナーにリーダーと評価されてる
    • Softbankでも提供している模様。auは多分違う
  • そもそもAppleが操作を許可してないことはMDMからも操作できない(iOSのアップデートは無効化できない)
  • サポートは時間がかかるが丁寧で確実ではある
  • アプリインストールの自動化はAppleが提供する企業向けプログラムMDMを組み合わせれば実現可能

f:id:ryoben:20171113115150p:plain:w480
エンタープライズ モビリティ管理のガートナー マジック クアドラント(2017)

Appleが提供する企業向けプログラム

  • Device Enrollment Program(DEP) ※AirWatch対応
    • 端末の初期設定(キッティング)の自動化
    • アプリ配布のサイレント・インストール、 iOSの更新。
  • Volume Purchase Program(VPP) ※AirWatch対応
    • 企業向けAppStore
    • アプリライセンスの一括管理
    • AppleIDをユーザーが意識せずにインストール可能
  • Apple Developer Enterprise Program
    • AppStore(VPP含む)通さずにアプリ配布が可能(自社サーバ経由)
    • 開発ツールの提供やAppleのサポートがある
    • 大企業でAppを内製してる企業向けなので不要
  • AppleCare for Enterprise
    • 企業向け端末保証。キャリアの保証があるので不要

ビジネス - プログラム - Apple(日本)

Device Enrollment Program(DEP)

  • 初期設定の自動化
    • iPhoneを箱から出して、最初にやる設定作業を自動化できる。
      • これがないとUSBでPCにつなげて設定する必要がある
      • Apple Storeやキャリアから購入すると、端末にDEPの設定をした状態で出荷が可能
    • 端末側でのプロファイルの削除の無効化が可能
  • アプリの配布
    • アプリのサイレントインストールが可能になる
    • iOSの更新もできる  
       

Docomoから購入する場合は、ある程度設定済みで納品されるので、効果は薄い(ZEROではない)

参考: mdm-richard.blogspot.jp

Volume Purchase Program(VPP)

  • 企業向けAppStore
    • 組織に対してライセンス数を購入する(有料無料問わず)
    • 購入したライセンスを端末に摘要する
    • 法人のクレジットカードが必要
  • AppleIDをユーザーが意識せずにインストール可能
    • インストール時にAppleIDのパスワードが入力不要 → ITリテラシーが低いとパスワード入力は意外とつまづく
    • なぜか、パスワード2回入力が必要
    • うちの会社では、初めてのアプリ配信では、20%しかアプリのインストールに成功せず
    • プッシュ配信でのインストールだったので、失敗すると再度プッシュしてあげる必要がある(成功するまでプッシュを繰り返す毎日)

まとめ

  • キャリアのMDMだけでも、運用管理は可能
    • ITリテラシーが低い場合は、VPPは有効化した方がよさげ
      • ただ、Apple側への申請が結構大変
        • DUNS番号の登録でかなり時間が取られる。
  • たまにちゃんと動かないこともある
    • プロファイルでアプリ削除を無効にしたはずなのに、削除できちゃった
    • 手動削除したら、アプリをプッシュできなくなっちゃった  
       

iOSも結構な勢いでバージョンアップするので、MDM側もそれに追いつくのが大変。細かい不具合は許容するしかない。
まだ、うちも検証中だけど、スモールスタートして運用手順を確立してから全社に拡大していった方が良い。

なお、BYODで行う場合は、システム部門は下手にデバイス管理すると、結構死ねる気がする。使う側も個人端末に監視エージェントとか入れられるの嫌だろうし。そこは、端末を管理せずに、N/Wとアプリ側でうまいこと制限した方が得策な気が。

iisのアクセスログのtimeって開始時間か終了時間か?

ASP.NET Webforms アプリがあるのだが、このごろピーク時の性能劣化がひどくなってるとのことで、Zabbixでリソース監視したり、アクセスログなんかをBigQueryに突っ込んで原因を探ったりしていたのだが、iisのログのtime って、そもそも開始時間なのか、処理の終了時間なのかが気になった。

iisのログには、time-taken という処理時間(ミリ秒)が出力されるが、timeが、開始時間なのか、終了時間なのかでログの見方は変わってくる。

microsoftのサイトを見ると

要求が発生した時刻です。協定世界時 (UTC) で表示されます。

とあるので、リクエストの開始時刻と思われるが、なんか腑に落ちないのでテストしてみた。

環境

OS:Windows2012R2 サーバ
iisバージョン:8.5
ログ形式 :W3C

テスト方法

1.めっちゃ重いタイムアウトになる処理を投げる

2.アクセスログでどう記録されるか確認する。

今回は、17:10に処理を開始し、17:31にタイムアウトが発生した。

で、結果。

time:17:31

処理が終わった時間やん!

設定でここの挙動変えれるの?

というわけで、ちょっとハマった話。

iPhoneアプリを独学で作るまで(継続中)

会社のシステムでiPhoneアプリを作ることになりそう

うちはしがないアパレル中堅企業なのだが、店頭用のシステムのリプレースにおいて、iPhoneアプリで作ることになりそう。

んでもって、そんなノウハウ無いので、開発会社の言いなりになるのは嫌だし、何より新しい言語勉強したい欲があったので、自分で勉強することにした。

最終目標としてはアプリをリリースするところまで。(アプリの内容は問わない!)

その経緯を現在進行系で書いていく。

2017年8月「絶対に挫折しないiPhoneアプリ開発「超」入門」を読む

https://www.amazon.co.jp/dp/B01MQPA946www.amazon.co.jp

今から勉強するならswiftだし、ということで、swift3に対応してて、人気が高そうな書籍を漁ったところ、この本にした。

8月に入って、仕事が暇になってきたので、仕事から帰って1、2時間で、50ページ程度を進めてめていく。

最初は、Xcodeの使い方がわけわからんかったが、この本が懇切丁寧なのもあって、なんとなーく理解できた。

swiftの言語についても、デリゲートを覗いては、書いて有ることはほぼ理解できた。(初心者向けだから当然か)

ただ、UIKitとかのiOSフレームワーク周りが全くの謎。

こういう画面を作りたい時に、どういうクラスを使うのか、どういう書き方でやるのかが全く謎。

最後のアプリもなんとなく書いて動いたけど、その点が理解できず。。。Visual Studioだと、フォームにコンポーネントをペタペタ貼ってけば、アプリができるが、それと同じように頭の中でイメージ化することができない。

これは、色んなアプリを作ってみて、iOSコンポーネントやそのお作法を学習する必要があるのだろうなー、と思ってみたものの、そういう2冊目に、適した本が見つからない・・・。とりあえず、何か探してみるか。

ただ、アプリ作成→そこで使った言語仕様やXcodeiOSの機能の説明。というサイクルで手を動かしながら学ぶ形式は名前の通り挫折しにくい構成であり、評判どおりかなり良い書籍だと思った。

なお、メリカリで1500円で売れた。

2017年9月「TECHNICAL MASTER はじめてのiOSアプリ開発」を読む

Amazon CAPTCHA

2冊めの本を色々迷った挙句、こちらを購入する。

理由は、1冊目でようわからんと感じたUIKit周りの説明がされていると目次から読み取れたのと、一つのアプリに機能を徐々に追加していくという実用的な流れだったから。

というわけで、本やり終わったらまた追記するぜ