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

夏のIBM Dojo 3 WebアプリとDB / Docker and Kubernetes

Aya Tokura
August 28, 2019

夏のIBM Dojo 3 WebアプリとDB / Docker and Kubernetes

Aya Tokura

August 28, 2019
Tweet

More Decks by Aya Tokura

Other Decks in Technology

Transcript

  1. 夏のIBM Dojo 2019 No. 開催日 時間 タイトル #1 8月7日(水) 14:00-17:00

    Cloud入門 #2 8月21日(水) 14:00-17:00 Webアプリ+DB on Cloud Foundry #3 8月28日(水) 14:00-17:00 Webアプリ+DB on Docker/Kubernetes #4 9月4日(水) 14:00-17:00 IoT/Node-RED and Mobile #5 9月11日(水) 14:00-17:00 AI (Watson API) #6 9月18日(水) 14:00-17:00 Analytics/機械学習 (Watson Studio) #7 9月25日(水) 14:00-17:00 Blockchain (Hyperledger Fabric/Composer) #8 10月2日(水) 14:00-17:00 Function as a Service (Functions, Knative)
  2. タイムテーブル 14:00-14:05 (5min) オープニング 14:05-15:00 (55min) 夏のIBM Dojo #2 Webアプリ+DB

    on Kubernetes <座学> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 15:00-17:00 (120min) Kubernetesコードチャレンジ <ワークショップ> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 ⻄⼾ 京⼦ 17:00-17:30 (30min) クローズ
  3. ayatokura ƓǷ ȯ (Aya Tokura) IBM Developer Advocate ! ¡Ò˜·¬ŸÏÓ´–•Ò—•Øª©Î¾ØƧßÝċ

    ! ÙÞ½R±ÎÔӕӴ–ĝÝƧßÝċ ! DevRel Meetup in Tokyo¤ÊϹ´–Ţŝ ¬Ê¸RŠ—ÄضǔȱIǭäȑǜIȟȕŬĞ“ąmwI čðé}öP| IBM Cloud ŠWatson}ƔƭȮȶ“å`J
  4. F$07. IBM Cloud #'+*9NURL L   ibm.biz/dojo20190828 ! IBM

    Cloud 5($7 #&%7."AB   5($7    ! IBM Cloud 2$.#&%7.:@ #&%7."AB JQ"U  XÞÙ}bȐ_
  5. ¤Ø´¸ļø}¨ª´Ë œØÃÕ or ¡Ò˜· ”æ HA1 QA-HA1 DEV#1 ”æ HA2

    QA-HA2 DEV#2 Storage Disk Array Tape Library Equipment ¨ª´ËƤėé ªR¾R½—§ čðé ¨ªœÅ ƶƫŀĘ ª£©ÏRÔ ƶƫǾņ ¾²±ǢĘ ġǡêǕĺ ¬ŸÏÓ´– ±ÏR¹Ø¢ ƗȡŐõƉIĒǮƠí ƏƢ •ÃÓL©ÑÂŢĘ ŖȀŢĘ ƏƢ®Á¶}IJú ގi‡ ƶƫģŽê_ Úƴ·ŸÏÌضyȳßû{ǧĄ |Œ¨ª´Ëčð&ŢĘ •ÃÓL©ÑÂŢĘ ¤Ø´¸ļø} NJǿȡƕ}ǂ{ßîŞä ITILžǽ}îǹũ“Şİ
  6. IT}¤Ø´¸‰äıǁƋ“ȥû|őǘ •ÃÓ ¤Ø´¸ V1.2 •ÃÓ ¤Ø´¸ V1.1 ŵƥĔŤ ´ª¶ •ÃÓ

    ¤Ø´¸ V1.3a •ÃÓ ¤Ø´¸ V1.3b µÓ½ÓL¾—ÃÒ—Ø ÞƱ ¦R¿ª čðà čðà •ÃÓ •ÃÓ •ÃÓ •ÃÓ µÄÖ²¾R µÄÖ²¾R ´ª¶šØ©¹• SRE òĊ|ĤǢēkr Ĵě}¤Ø´¸ ƠƝ¨ª´Ë |ƻaiydxe https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A#/media/File:Dol e_container_is_placed_onto_a_truck.jpg
  7. 2. コンテナのテクノロジーとは 1 起動が早い • ホストOSからみると、プロセスが⽴ち上がるだけ • スケールしたときにもすぐにアプリが⽴ち上がる 2 冪等性が保たれる

    • Infrastructure as Code により、環境構築の⼀連の作業をコード化できる • Immutable Infrastructure により、何度実⾏しても同じ環境が再現される 3 ポータビリティー性がある • アプリの実⾏に必要な依存関係をすべてパッケージングできる • Dockerエンジンが動く環境ならどこでも実⾏できることが保証されている べきとうせい
  8. ¤Ø´¸R}ÈR¯¿Ó´– y <082>+ ! ¤Ø´¸R}ÈR¯¿Ó´– -<082>—ÌR© ! •ÃÓ£R¨ÑØȭǒ|ƂĨ{ȉNjÁ”—Ô“ ¾²£R©Ø¢xe !

    œė¦R½R|ǵúk{_ \ óm•RŸ´¡±Î}ƶƫx^ ÈR¯¿Ó´–dNjƄ^ ! <082>+  '+, (" %!  '+, *$)& %!  * #  *  *          Vȩ}ƶƫx~Ğ_rW Ĭłdðñl{_                    Ŏǂ{ÄØ°Rdşƺn ¤Ø´¸R—ÌR© T®ÓÏR¨ÑØU}¯Ö¢  * #  *  *   
  9. コンテナのはじめ⽅ n CNCFの Cloud Native Trail Map を参照 1. コンテナ化

    • ⼀般的には Docker コンテナで実施 • いかなるサイズのアプリケーションも依存性もコンテナ化可能 • 時間が経つにつれ、アプリケーションを分割し マイクロサービス化したくなるだろう 2. CI/CD(継続デリバリの仕組み) • 継続インテグレーション・継続デリバリの仕組みをセットアップ • コード変更が 新しいコンテナ・イメージとして、 ⾃動的にビルドされ、テストされ、デプロイされるように 3. オーケストレーション&アプリ定義 • 互換性試験に合格している Certified Kubernetes 環境を選択 • もっとも複雑なアプリケーションであっても HELMで 定義して、導⼊して更新していくことが可能
  10. ¤Ø´¸“ĝ|~ !<082>è}¦—¶cƎȁ°˜ØÖR·ƍŨ - https://www.docker.com/products/docker-desktop - docker for Mac / docker

    for Windows !<082>|v_wĝ -http://docs.docker.jp/index.html ! Ůǰ|ŒŽ <082>}·ŸÏÌضd ÙÞƩēkw_†n ! †o~ <082>3692 “_fvcũ_w‡†l‹`O
  11. ¤Ø´¸čðƶƫ !¤Ø´¸ē“ůˆŔ| ƂĨ{‰} 1<082> ®Rª¤R·LÕÈ©¶Ó ¿Ô·L´ª¶ëĞē³RÔ ¤Ø´¸RLÕ©ª¶Ó 6@A/ 6@"./ <082>(246?@>E

    čðéƶƫ 46@ 09<;2 46@=A?5 46@0<::6@ ¤Ê²¶“ ¶ÓžR| ëĞđå ¤Ø´¸R }¿Ô· •ÃÓ£R ¨ÑØ} ¿Ô· ¤R·}ģ Ř ´ª¶³R Ô}ëĞđ å <082>3692‰ •ÃÓ£R¨ÑؤR·y óǂ|Ƥė ´ª¶“ąſlrI ÞƱĘÕ©ª¶Ó|ǔ ƿ ĬłdðñlrȪǩ|Á–R·½²¡
  12. ¤Ø´¸ƔƭKǗžē‚} #}ģŽʼn‡ ¡Ò˜·º—´–ÂL•ÃÓ Ǘžē‚ǀljû|ŁĒ <082>!A/2>;2@2?‚} ¤Ê²¶ !A/2>;2@2?ÄRª} ¤Ø´¸ŖȀ®ÓÏR¨ÑØ ÛìK #Š

    <<492{z Ě }ŗäKřĎdIJă ¤Ø´¸Ɣƭ ¤Ø´¸Ƥė IBM Cloud Kubernetes Service (IKS) ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? >.32.? ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï IBM Cloud Private (ICP) ™Þpwab^Sh’uyŸÕ\ñ¼ & <;;20@K-.@?<;<:=.>2<:=9EK *>.;?3<>:.@6<;1B6?<>K#60><096:.@2K %#K)8E16B2K #,<602[email protected] -2/)=52>2K +>/.;<12 2=9<EK&#K/ K #'K K==<;;20@K.@.&<C2>Kq}ǥŎĻ
  13. # +.3$ !A/2>;2@2?)2>B602  !) # +.3$ &>6B.@2  &

    ~‚sei9l ylwşƺk Ž‡{9kxƶƫ ƒŒ`„9wƶƫ| ¤Ø´¸ƶƫ“ƟȆLŢĘn „9l}®Á¶˜™•
  14. .. h’uy×å6÷Ò§US S±YÂV ¡Ò˜·º—´–ÂL•ÃÓ Ǘžē‚ǀljû|ŁĒ <082>!A/2>;2@2?‚} ¤Ê²¶ !A/2>;2@2?ÄRª} ¤Ø´¸ŖȀ®ÓÏR¨ÑØ ÛìK

    #Š <<492{z Ě }ŗäKřĎdIJă ¤Ø´¸Ɣƭ ¤Ø´¸Ƥė /01 !"#$% 234()$(%(5*6()7'8(*9/26: ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? >.32.? ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï /01 !"#$% ;)'7&%(*9/";: ™Þpwab^Sh’uyŸÕ\ñ¼ & <;;20@K-.@?<;<:=.>2<:=9EK *>.;?3<>:.@6<;1B6?<>K#60><096:.@2K %#K)8E16B2K #,<602[email protected] -2/)=52>2K +>/.;<12 2=9<EK&#K/ K #'K K==<;;20@K.@.&<C2>Kq}ǥŎĻ
  15. .< /01 !"#$% 234()$(%(5*6()7'8( !"#$% /01 !"#$% ;)'7&%( !"&'% i9lylw

    şƺk Ž‡{9kxƶƫ ƒŒ`„9wƶƫ| ¤Ø´¸ƶƫ“ƟȆLŢĘn &''„9l}®Á¶˜™• /01 !"#$% /01 !"#$%
  16. .= /01 !"#$% 234()$(%(5*6()7'8( !"#$% /01 !"#$% ;)'7&%( !"&'% i9lylw

    şƺk Ž‡{9kxƶƫ ƒŒ`„9wƶƫ| ¤Ø´¸ƶƫ“ƟȆLŢĘn &''„9l}®Á¶˜™• /01 !"#$% /01 !"#$%
  17. .> IBM Cloud Kubernetes Service (IKS) ÁÔɺR©·{!A/2>;2@2?“jşƺ iesPÈ[Z L°²¨ÏÇR·Ĝƃ LȇĻ}½R©ÑØşƺ

    j’ƒŽR¹Ã L»R·ţĻ LŀĘnÉ¨ØªÅ²¡ LȠƸ¦R½RIÄ•Ì¯Ô ?>><ăö Lk8s}APII³RÔ Lkubectl“ūurȘŞ Ößt9ŽÅV LÖ¢źƁ L͹¯ÓØ¢ ćúRi9l©ò LWatson LIoT LDatabase{z{z WYndŠ^R LȷȏĮ•·½—§R ġǢŪ{IJúyȷȏĮ“Œâ L—ÌR©ǫŕ L đå÷}ķǣ±™²¡
  18. .? ­¿À “·¾•Sv9qn’q9RNi9lÉê ç v9qn’q9 Á¢ ŕ©• ! @A,BC !

    5$,BD ! %#ABC ! E#$,*2#$, ! F#AG# ! 6'$,&H#)( ų•©• ! I(JBD ! 5GKBD ! 5GKB< ! 1(J4#3)$( ! 6GK$(G njơàǙ ! &I5B. ! L)&BC ! I'JBD ! H&)BD ! MI5%()K&I ! N)&$AL3)% ! 1'J&$ ! ;&)'5 LjÜųþ ! J#$BC ! J#$B< ! O#$K#$ ČÜïþ ! I#$BD ! %#)BD ! PK8B> ! PK8B? ! 1#$%)(&J ! F#)#$%# ! Q&5@'$,%#$R*S" ČÜųþ ! K&JDB ! K&JDC ! K&JD. ! @#3BD ! 5&#BD ! S&JJ&5 ! E#35%#$ ! 6&#*;&3J# https://console.bluemix.net/docs/containers/cs_regions.html#regions-and-locations
  19. .T .T ĉċQeŒlq9¹Ã i9}9îÑ ïí ²ªÇÎë :?(#%); ²ªÇÎë :A(#%)* šÏöÐ+

    ȠƸ ¦R½R CS=> ";U <SC<C***V0*WM1 XDCY÷ù XCZ?ĩYì ǏŮȠƸ ¦R½R CS=> ";U <SC<C***V0*WM1 X.=Y÷ù X?ZTĩYì œė ¦R½R <SCT ";U .CS=DC*V0*WM1 XTBRCBBYì XC<ĩYì ïħS" CBDTÛ<ìĴƄ}ƻ ! ×RRL»R·}ȭǒ÷ù|ƉmrǛƴƯæ ! ɪ¯RL»R·~Ưæõƣĭ ! NQŠ6%#)&,(I;#)%&4J(*/;{zƂĨ|ƉmwŴǸƷĿ
  20. .[ .[ „^ˆqŽÜ¸ 234()$(%(5 ɪ¯RL»R· TĪǬƤėU 234()$(%(5 ×RRL»R· 234()$(%(5 ×RRL»R·

    ,-.à« EóíIPR‡lq97|9x\ Éê5 ,-.à«/01(•Rȸ Eóíà« EóíGˆzŠ9FX i9}9\¦Ć5 Eóí/01(•Rȸ 234()$(%(5 ×RRL»R·
  21.   #<>=<>.@6<; Pod !Kubernetes |bhĤĖ}ƤėǦŏ -.$}à|~ ?M¾• } ¤Ø´¸dƾ†

    -&<1Ǧŏxª£RԗØLª£Rԕ˜¶n -&<1jy| &•·Õªd•¦—Øk &<1 & ()*(*+),*-. ()*(*+),*(+/
  22.   #<>=<>.@6<; Deployment !Ĥ‰ãǼû{×R¡ÖR·úƞĎ -&<1 -(2=960.)2@ -9A?@2> &? -$<12&<>@

    -  ;4>2?? &<1 & ()*(*+),*-. ()*(*+),*(() 9A?@2> &      -&0%11  %/+.4,%-2
  23. まとめ 02 01 コンテナとは︖ Dockerとは︖ 03 Kubernetesとは︖ 04 コンテナのはじめ⽅ •

    Linux上の隔離された空間で実⾏されるプロセス • アプリの実⾏に必要な依存関係をすべてパッケージングできる • コンテナーの作成・共有・実⾏をするためのツール • 冪等性やポータビリティー性といったメリットがある • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • まずはアプリをコンテナ(Docker)化してみるところからスタート • Kubernetesは必要な機能だけを絞って動かしてみる
  24. =. /01 !"#$% 234()$(%(5*6()7'8( !"#$% /01 !"#$% ;)'7&%( !"&'% i9lylw

    şƺk Ž‡{9kxƶƫ ƒŒ`„9wƶƫ| ¤Ø´¸ƶƫ“ƟȆLŢĘn &''„9l}®Á¶˜™• /01 !"#$% /01 !"#$%
  25. =< IBM Cloud Private c9ƒ’ue|k9 “ÄRª| ŗäĽh !A/2>;2@2?ŖȀ“ ƒŒ`„9wèâ xđĴ

    [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^Ž†n #9<A1A@<:.@6<;#.;.42> Eóíà«}¨ª´ËŖȀ 2B%=?³RÔ±™RØ #ʷԘ™• %)) ®ÓÏR¨ÑØL¯Ö¢ ¼—ÂÓ²·LÉÔ±¡Ò˜· µÃ֗ëĞēLƤė /01*\ ù˜eŒax ¤Ø´¸ !A/2>;2@2? ]H($Q@' 5A  œRÃØ®R ª L®Á¶˜™ • ŢĘƤė Ưæ #' &><:2@52A? &><1A0@ ;?645@? ¬ŸÏÓ´– ȷȏĮ •·½—§R µ–ª¡ȣǯē ¤ØÃҗ•Ø ªõƉ ÖRÔÄRª •¡¬ª :60><096:.@2 -2/ Ƙê / #
  26. == [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^Ž†n #9<A1A@<:.@6<;#.;.42> Eóíà«}¨ª´ËŖȀ 2B%=?³RÔ±™RØ #ʷԘ™• %)) ®ÓÏR¨ÑØL¯Ö¢ ¼—ÂÓ²·LÉÔ±¡Ò˜· µÃ֗ëĞēLƤė

    /01*\ ù˜eŒax ¤Ø´¸ !A/2>;2@2?  œRÃØ®Rª L®Á¶˜™• ŢĘƤė Ưæ #' &><:2@52A? &><1A0@ ;?645@? ¬ŸÏÓ´– ȷȏĮ •·½—§R µ–ª¡ȣǯē ¤ØÃҗ•ØªõƉ ÖRÔÄRª •¡¬ª :60><096:.@2 -2/ Ƙê / # IBM Cloud Private (ICP)
  27. => IBM Cloud Private [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^Ž†n #9<A1A@<:.@6<;#.;.42> Eóíà«}¨ª´ËŖȀ 2B%=?³RÔ±™RØ #ʷԘ™• %))

    ®ÓÏR¨ÑØL¯Ö¢ ¼—ÂÓ²·LÉÔ±¡Ò˜· µÃ֗ëĞēLƤė /01*\ ù˜eŒax ¤Ø´¸ !A/2>;2@2?  œRÃØ®Rª L®Á¶˜™• ŢĘƤė Ưæ #' &><:2@52A? &><1A0@ ;?645@? ¬ŸÏÓ´– ȷȏĮ •·½—§R µ–ª¡ȣǯē ¤ØÃҗ•ØªõƉ ÖRÔÄRª •¡¬ª :60><096:.@2 -2/ Ƙê / # => IBM Cloud Private [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^Ž†n Eóíà«}¨ª´ËŖȀ /01*\ /01*\ ù˜eŒax Ċð (HWĒīKªŸÔK•ÃÓĞŞ) } `’Œ \ͬ ¤Ø´¸ !A/2>;2@2? ȚǦ| ÜĂ ¤Ø´¸ bǎǂǏĘ} ÃҗÄR¶ Kubernetes 2B%=?³RÔ±™RØ :60><096:.@2 -2/ Ƙê ȚǦ| ¥œ #9<A1A@<:.@6<;#.;.42> ¼—ÂÓ²·LÉÔ±¡Ò˜· µÃ֗ëĞēLƤė ȚǦ| ôä ŢĘƤė Ưæ &><:2@52A? &><1A0@ ;?645@? ¬ŸÏÓ´– ȷȏĮ •·½—§R µ–ª¡ȣǯē ¤ØÃҗ•ØªõƉ ÖRÔÄRª •¡¬ª ȚǦ| ʬ #ʷԘ™• %)) ®ÓÏR¨ÑØL¯Ö¢  œRÃØ®Rª L®Á¶˜™• #' / # ȚǦ| ã— Ö Ø¢K͹¯ÓØ¢KƯæƤė ȷȏĮõƉ •¡¬ªĪǬ ¦R¿ªčðKǻĶû|µÃ֗ ƒĘʷԘ™•KœRÃØ®Rª“¤Ø´¸K8sĞŞ ¡Òª¯RǓƬKÉÔ±¡Ò˜·õƉ IBM Cloud Private T6¾£\‡`ei9lPJN°ËÉê ¤Ø´¸—ÌR©KHelm Chart
  28. .).O®]LHP\32/32JWD8 !21.-¥œžá Ìąƒo’wd‰’…9’ ƇĿlr¬²¨Ñ؊¬Ê¸R“ÄRª|ƔƭÂÖ¢|ũ_rI ĀƼũȖVWatsončðôƪW“Ãխض!! ÕĄÔÆ HȲx‰•¡¬ªƍŨ{¦—¶|Ġčlw_iy H #9<A1}ƔƭŠ¦R¿ª“ŀĘLŚƦlw_iy HƉȔ÷ĵxĞŞƍŨ{¤Ø´Ø³x^iy

    ÕĄ ¤ ļƓśȍlwÌRÔ|wjĕȓfsk_J12BC<>8?7= 6/: 0<: ȌȍŌ+(" śçȫĨ  ũȖƝŷŌȅȄƱǯ ťį Ŝŕ   #9<A1}•˜Ø¶ ǔƿÌRԕ·Õª )A/720@|F-.@?<;ÞȊDŽFyśȍlwfsk_ %!  QQ“ZZlw‡rI%&.@@2>;?ȵȧIYY¶ÒÂÔ¨ÏR´–Ø¢{z}ÂÖ¢ $  ¬²¨ÑØǑlcur{zƀƸ}‡}ÂÖ¢IśçƈȍI†yˆśç}‡}ÂÖ¢