iPhoneを企業導入することになってMDMとか運用管理とかやってみた
前提
- ユーザー企業の情シス
- 社員、店にiPhoneを配布することになった
- 社員配布数:100端末以上
- 店配布数:数百
- 検証のため、一部先行して導入
- iPhoneは、キャリアから調達(Docomo)
- キャリアのMDMサービスを使用(あんしんマネージャー)
全社展開に向けて、運用管理を考えなきゃ。
検証当初に困ったこと
- キャリア提供のMDMは機能不足な気が
そもそも、キャリアの提供するMDM機能ってイケてるのか?
色々調べた結果
キャリアの提供するMDMはイケてる
- あんしんマネージャーはVMWare社のAirWatchという製品を提供
- そもそもAppleが操作を許可してないことはMDMからも操作できない(iOSのアップデートは無効化できない)
- サポートは時間がかかるが丁寧で確実ではある
- アプリインストールの自動化はAppleが提供する企業向けプログラムとMDMを組み合わせれば実現可能
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
- 企業向け端末保証。キャリアの保証があるので不要
Device Enrollment Program(DEP)
- 初期設定の自動化
- iPhoneを箱から出して、最初にやる設定作業を自動化できる。
- これがないとUSBでPCにつなげて設定する必要がある
- Apple Storeやキャリアから購入すると、端末にDEPの設定をした状態で出荷が可能
- 端末側でのプロファイルの削除の無効化が可能
- iPhoneを箱から出して、最初にやる設定作業を自動化できる。
- アプリの配布
- アプリのサイレントインストールが可能になる
- iOSの更新もできる
Docomoから購入する場合は、ある程度設定済みで納品されるので、効果は薄い(ZEROではない)
Volume Purchase Program(VPP)
- 企業向けAppStore
- 組織に対してライセンス数を購入する(有料無料問わず)
- 購入したライセンスを端末に摘要する
- 法人のクレジットカードが必要
- AppleIDをユーザーが意識せずにインストール可能
- インストール時にAppleIDのパスワードが入力不要 → ITリテラシーが低いとパスワード入力は意外とつまづく
- なぜか、パスワード2回入力が必要
- 電波の関係か、ちゃんとパスワード2回入力しても、インストールできないことも
- うちの会社では、初めてのアプリ配信では、20%しかアプリのインストールに成功せず
- プッシュ配信でのインストールだったので、失敗すると再度プッシュしてあげる必要がある(成功するまでプッシュを繰り返す毎日)
まとめ
- キャリアのMDMだけでも、運用管理は可能
- たまにちゃんと動かないこともある
- プロファイルでアプリ削除を無効にしたはずなのに、削除できちゃった
- 手動削除したら、アプリをプッシュできなくなっちゃった
iOSも結構な勢いでバージョンアップするので、MDM側もそれに追いつくのが大変。細かい不具合は許容するしかない。
まだ、うちも検証中だけど、スモールスタートして運用手順を確立してから全社に拡大していった方が良い。
なお、BYODで行う場合は、システム部門は下手にデバイス管理すると、結構死ねる気がする。使う側も個人端末に監視エージェントとか入れられるの嫌だろうし。そこは、端末を管理せずに、N/Wとアプリ側でうまいこと制限した方が得策な気が。
iisのアクセスログのtimeって開始時間か終了時間か?
ASP.NET Webforms アプリがあるのだが、このごろピーク時の性能劣化がひどくなってるとのことで、Zabbixでリソース監視したり、アクセスログなんかをBigQueryに突っ込んで原因を探ったりしていたのだが、iisのログのtime って、そもそも開始時間なのか、処理の終了時間なのかが気になった。
iisのログには、time-taken という処理時間(ミリ秒)が出力されるが、timeが、開始時間なのか、終了時間なのかでログの見方は変わってくる。
microsoftのサイトを見ると
とあるので、リクエストの開始時刻と思われるが、なんか腑に落ちないのでテストしてみた。
環境
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冊目に、適した本が見つからない・・・。とりあえず、何か探してみるか。
ただ、アプリ作成→そこで使った言語仕様やXcode、iOSの機能の説明。というサイクルで手を動かしながら学ぶ形式は名前の通り挫折しにくい構成であり、評判どおりかなり良い書籍だと思った。
なお、メリカリで1500円で売れた。
2017年9月「TECHNICAL MASTER はじめてのiOSアプリ開発」を読む
2冊めの本を色々迷った挙句、こちらを購入する。
理由は、1冊目でようわからんと感じたUIKit周りの説明がされていると目次から読み取れたのと、一つのアプリに機能を徐々に追加していくという実用的な流れだったから。
というわけで、本やり終わったらまた追記するぜ