Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MDMにおける大量デバイスを対象とした通信を支える技術 / Technology to s...

Avatar for bon bon
July 25, 2019

MDMにおける大量デバイスを対象とした通信を支える技術 / Technology to support communications for many devices in MDM

This slide is from a sponsored session of the Go Conference'19 Summer in Fukuoka

Avatar for bon

bon

July 25, 2019
Tweet

Other Decks in Programming

Transcript

  1. © 2019 i3Systems, Inc. ࣗݾ঺հ !2 Bomura Taisuke ΅͏ΉΒ͍͚ͨ͢ 

    i3 Systems, Inc. ΞΠΩϡʔϒυγεςϜζ  ɹɾαʔόʔαΠυΤϯδχΞ Ruby on Rails  ɹɾࣾ಺CI/CD؀ڥͷߏங ɹɾνʔϜϦʔυɹͳͲ
  2. © 2019 i3Systems, Inc. 2010/11 ๏ਓ޲͚ϞόΠϧσόΠε؅ཧαʔϏεʮCLOMO MDMʯ iOS ൛ఏڙ 2011/05

    ʮCLOMO MDMʯ Android ൛ఏڙ 2011/07 ๏ਓ޲͚ϞόΠϧΞϓϦγϦʔζʮCLOMO SECURED APPsʯ iOS ൛ఏڙ 2013/01 ʮCLOMO SECURED APPsʯ Android ൛ఏڙ 2014/01 ʮCLOMO MDMʯ Windows ൛ఏڙ 2015/06 ๏ਓ޲͚ιʔγϟϧΞϓϦʮCLOMO IDsʯ iOS ൛ఏڙ 2017/05 ʮCLOMO MDMʯʹ৽ػೳʮϫʔΫɾεϚʔτʯΛ౥ࡌ 2019/04 ΦϑΟεҠస ˙ओͳԊֵ ΞΠΩϡʔϒυγεςϜζʹ͍ͭͯ !4
  3. © 2019 i3Systems, Inc. ˙CLOMO MDMͱ͸ CLOMO MDMͱϫʔΫɾεϚʔτʹ͍ͭͯ !7 ͜͜

    ๏๏ਓܖ໿਺2,000ࣾ௒ ๏Ruby on Rails ੡ ๏AzureͰՔಇ
  4. © 2019 i3Systems, Inc. ▪MDM: Mobile Device Management CLOMO MDMͱϫʔΫɾεϚʔτʹ͍ͭͯ

    !8 اۀ΍ैۀһݸਓ͕ॴ༗͍ͯ͠ΔσόΠεΛɺ؅ཧऀ͕Ұݩ؅ཧ͢ΔͨΊͷ࢓૊Έ (ྫ) Install Application ֤OSϕϯμʔͷPushαʔόʔ 2.Pushཁٻ 1.Install App 3.Push௨஌ 4.࣮ߦཁٻ 5.Install App ؅ཧը໘
  5. © 2019 i3Systems, Inc. ▪MDM: Mobile Device Management CLOMO MDMͱϫʔΫɾεϚʔτʹ͍ͭͯ

    !9 اۀ΍ैۀһݸਓ͕ॴ༗͍ͯ͠ΔσόΠεΛɺ؅ཧऀ͕Ұݩ؅ཧ͢ΔͨΊͷ࢓૊Έ (ྫ) Install Application ֤OSϕϯμʔͷPushαʔόʔ 2.Pushཁٻ 1.Install App 3.Push௨஌ 4.࣮ߦཁٻ 5.Install App ؅ཧը໘ Θ͟Θ͟1VTI௨஌ͨ͠ޙɺσόΠεʹ࣮ߦཁٻͤ͞ͳͯ͘΋͍͍ͷͰ͸ʁ
 1VTIϖΠϩʔυͷ#PEZʹύϥϝʔλॻ͖·͘Ε͹͍͍
  6. © 2019 i3Systems, Inc. ▪MDM: Mobile Device Management CLOMO MDMͱϫʔΫɾεϚʔτʹ͍ͭͯ

    !10 اۀ΍ैۀһݸਓ͕ॴ༗͍ͯ͠ΔσόΠεΛɺ؅ཧऀ͕Ұݩ؅ཧ͢ΔͨΊͷ࢓૊Έ (ྫ) Install Application ֤OSϕϯμʔͷPushαʔόʔ 2.Pushཁٻ 1.Install App 3.Push௨஌ 4.࣮ߦཁٻ 5.Install App ؅ཧը໘ Θ͟Θ͟1VTI௨஌ͨ͠ޙɺσόΠεʹ࣮ߦཁٻͤ͞ͳͯ͘΋͍͍ͷͰ͸ʁ
 1VTIϖΠϩʔυͷ#PEZʹύϥϝʔλॻ͖·͘Ε͹͍͍ MDM uses the Apple Push Notification Service (APNS) to deliver a “wake up” message to a managed device. The device then connects to a predetermined web service to retrieve commands and return results. Mobile Device Management Protocol Reference(Apple)
  7. © 2019 i3Systems, Inc. ▪MDM: Mobile Device Management CLOMO MDMͱϫʔΫɾεϚʔτʹ͍ͭͯ

    !11 اۀ΍ैۀһݸਓ͕ॴ༗͍ͯ͠ΔσόΠεΛɺ؅ཧऀ͕Ұݩ؅ཧ͢ΔͨΊͷ࢓૊Έ (ྫ) Install Application ֤OSϕϯμʔͷPushαʔόʔ 2.Pushཁٻ 1.Install App 3.Push௨஌ 4.࣮ߦཁٻ 5.Install App ؅ཧը໘ Θ͟Θ͟1VTI௨஌ͨ͠ޙɺσόΠεʹ࣮ߦཁٻͤ͞ͳͯ͘΋͍͍ͷͰ͸ʁ
 1VTIϖΠϩʔυͷ#PEZʹύϥϝʔλॻ͖·͘Ε͹͍͍ MDM uses the Apple Push Notification Service (APNS) to deliver a “wake up” message to a managed device. The device then connects to a predetermined web service to retrieve commands and return results. Mobile Device Management Protocol Reference(Apple) By Design
  8. © 2019 i3Systems, Inc. ▪MDM: Mobile Device Management CLOMO MDMͱϫʔΫɾεϚʔτʹ͍ͭͯ

    !12 iOS(macOS)ɺAndroidɺWindowsͳͲϕϯμʔʹΑΓ࢓༷͕ҟͳΔͨΊɺ ͦΕͳΓʹ։ൃ͸େม Apple(iOS,macOS) Android Windows
  9. © 2019 i3Systems, Inc. ▪ฐࣾͰͷBoltzEngine؀ڥ !16 CLOMO Boltz Nginx Client

    Boltz Master Boltz Slave APNs ࣗ෼ͨͪͰߏஙͨ͠΋ͷ ຌྫ BoltzEngineຊମ ॲཧͷྲྀΕ Azure VM(Linux) Կ͔༻ʁ Start ฐࣾͷGo΁ͷऔΓ૊Έ
  10. © 2019 i3Systems, Inc. ▪ฐࣾͰͷBoltzEngine؀ڥ !17 CLOMO Boltz Nginx Client

    Boltz Master Boltz Slave APNs ࣗ෼ͨͪͰߏஙͨ͠΋ͷ ຌྫ BoltzEngineຊମ ॲཧͷྲྀΕ Azure VM(Linux) Կ͔༻ʁ Start ๏ Pushূ໌ॻొ࿥ /certificates ๏ PushϦΫΤετ/apns/request(net/rpc ฐࣾͷGo΁ͷऔΓ૊Έ
  11. © 2019 i3Systems, Inc. ▪ࣗࣾίϚϯυ࡞Δʂ !18 $-*Λ࢖ͬͯࣗࣾͷ࡞ۀϓϩηεΛࣗಈԽɾޮ཰Խ͢Δ % as •-•-•

    ͍͋͞ΜίϚϯυ i3 System Automation •-• Version 2019.06.3, Git 01d0ade, Built 2019-06-28T06:51:49Z • Copyright i3 Systems, Inc. All Rights Reserved.
 
 Usage: as <command> [options] Commands: begin Begins development on the specified Jira issue get Display resource information as ίϚϯυͱ໋໊( i3 > aisan > as ) ฐࣾͷGo΁ͷऔΓ૊Έ
  12. © 2019 i3Systems, Inc. ▪ॱௐʹ։ൃɾɾɾͷ͸͕ͣ !21 ฐࣾͷGo΁ͷऔΓ૊Έ ϦϞʔτϒϥϯν͕νΣοΫΞ΢τͰ͖ͳ͍໰୊͕ൃੜ ѹ౗తεΩϧෆ଍ ʢͦͷޙผͷਓ͕IssueΛ্͍͛ͯͨ)

    ΋͏̍ਓ͕ʮClojureͳΒνϣτσΩϧʯͱ͍ͬͨͷͰͦΕͰ࣮૷ ๏ฉ͘͜ͱ͸େࣄ ๏ࣗ෼ͨͪͰղܾͰ͖Δ͜ͱ΋େࣄ ๏݁ہࠓճ͸(Pͩͱ೉͍͠ͱ൑அ
  13. © 2019 i3Systems, Inc. ▪αʔόʔෛՙ໰୊ ࠓޙͷల։ !23 ͜Ε·Ͱ΋ରࡦ͸͍Ζ͍Ζ΍͖͍ͬͯͯΔ ๏ αʔϏε෼ׂ

    ࠓ෩ʹදݱ͢ΔͱϚΠΫϩαʔϏεԽ͠ɺͦΕͧΕ͕ͭͷ7.  ๏ ඇಉظॲཧͷۦ࢖
 3BJMTͷ"DUJWF+PC %FMBZFE+PC Λ࢖ͬͯඇಉظॲཧ ๏ ۪௚ͳϦϑΝΫλϦϯά΍αʔόʔ؂ࢹʹΑΔରԠ
 अѱͳ/ ͷഉআɺ42-Λ௚઀ୟ͘ɺ೔ʑͷαʔϏε؂ࢹͱצͱܦݧʹΑΔਓྗεέʔϧɹͳͲ ؅ཧऀ޲͚αʔϏε .%.ίϚϯυαʔϏε ඇಉظॲཧαʔϏε ূ໌ॻൃߦαʔϏε ͳͲ
  14. © 2019 i3Systems, Inc. ▪ϚΠΫϩαʔϏεʁ ࠓޙͷల։ !24 ؅ཧ޲͚αʔϏεͷྫ ࣌఺ ΫοΫύουࣾ

    ࣌఺ https://speakerdeck.com/hogelog/kutukupatudofalseju-da-rails-apurikesiyonfalsegai-shan?slide=17
  15. © 2019 i3Systems, Inc. ▪DEV؀ڥΛKubernetesʹ͠·ͨ͠ ࠓޙͷల։ !27 ࣾ಺-"/ 7.؀ڥ /BNFTQBDF#SBODI/BNF

    /BNFTQBDF#SBODI/BNF -PDBM3FHJTUSZ /BNFTQBDFFMBTUJDTFBSDI /BNFTQBDF#SBODI/BNF ؅ཧऀ޲͚αʔϏε ʜFUD .%.ίϚϯυαʔϏε /BNFTQBDFJOHSFTTOHJOY 5FBN$JUZ $*$%
  16. © 2019 i3Systems, Inc. ▪౔୆͸Ͱ͖ͨͷͰ࣍ͦ͜ϚΠΫϩαʔϏεԽΛਪਐʂ ࠓޙͷల։ !29 ϚΠΫϩαʔϏεԽʹ޲͚֤ͯαʔϏεͷૄ݁߹ԽΛ0ϕʔεͰਪਐ ※ΠϝʔδͰ͢ ؅ཧऀ޲͚αʔϏε

    $36% %# ݱߦγεςϜ Ұ෦੾Γग़͠ σόΠε؅ཧAPI ؅ཧϩά 4ZOD 3 $36% σόΠε%# ؅ཧ༻%# ৽γεςϜ H31$͸(PͰ࣮૷༧ఆ ๏(P଎͍
 ΤΫεϙʔτॲཧ3VCZͱൺֱͯ͠΋ഒ͘Β͍଎͔ͬͨ ๏(P࣮૷ͷߋ৽Λ৴པ
 3VCZ࣮૷͕(P࣮૷͔Βஔ͍͚ͯ΅Γʹ͞ΕΔՄೳੑΛආ͚͍ͨ
 ྫ͑͹"[VSFͷҰ෦ͷ(FN͸طʹ$ͷͦΕ͔Βஔ͍͚ͯ΅Γ
  17. © 2019 i3Systems, Inc. ▪Ұॹʹ࣍ͷεςʔδ΁௅ઓ͍͚ͯͨͩ͠ΔΤϯδχΞΛืू͍ͯ͠·͢ ࠓޙͷల։ !30 ๏Android/iOS/Xamarin ͰΞϓϦ։ൃ͍ͨ͠ํ ๏Ruby

    on RailsͰαʔόʔαΠυ։ൃ͍ͨ͠ํ ๏৽͍͠ΞʔΩςΫνϟ΍Ϟμϯ։ൃ΍Γ͍ͨํ ๏ϑϩϯτΤϯυͷ։ൃ؀ڥΛ0͔Βߏங͍ͨ͠ํɹͳͲ ෭ۀOKʂ ϦϞʔτϫʔΫOKʂ ࣾ಺ʹ14ɺ/JOUFOEP4XJUDI׬උʂ