Save 37% off PRO during our Black Friday Sale! »

IBMDojo_Kubernetes_20200122

8065fe5a0d33908c6f71c5ae28939dcd?s=47 Aya Tokura
January 22, 2020

 IBMDojo_Kubernetes_20200122

冬のIBM Dojo #2 スケーラブルなWebアプリケーションをKubernetesで構築する
当日のセッション資料
https://ibm-developer.connpass.com/event/159743/

8065fe5a0d33908c6f71c5ae28939dcd?s=128

Aya Tokura

January 22, 2020
Tweet

Transcript

  1. dz}#&?:? ¦ŸR̼Î{052“½ÍŸR¤ËҐ $D25A>5C5BxƉǟm Aya Tokura Developer Advocate Tokyo City Team

  2. IBMInternet 無線LAN アクセス 無線LANのご利⽤およびワークショップの際は Firefoxブラウザをご利⽤ください。 お配りしたユーザ名とパスワードを⼊⼒して 「利⽤条件に同意」いただき、サインオン してください。 ログインページが表⽰されない場合は、 Webブラウザで

    http://www.research.ibm.com サイトにアクセスしてください。 iPhone での表⽰例
  3. 本⽇のタイムテーブル 14:00-14:05 (5min) オープニング 14:05-15:00 (55min) 冬のIBM Dojo #2 スケーラブルなWebアプリケーションを

    Kubernetesで構築する <座学> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 15:00-17:00 (120min) Kubernetesチャレンジ <ワークショップ> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 17:00-17:30 (30min) クロージング
  4. 学習の⽬的とゴール ⽬的 コンテナの概要と利⽤⽅法について理解する ゴール IBM Cloud Kubernetes Serviceを利⽤した Webアプリケーション+DBを構築できる このコースを学ぶ⽅の想定スキル

    IBM Cloud上でコンテナ実⾏環境を初めて利⽤する⽅
  5. ayatokura ŻǑ Ȃ (Aya Tokura) IBM Sr. Developer Advocate ¨Ä³Rˆ•¾Ò±ƶȄJNJÞǨƾJǴǪŘĔþlwJ

    Ąëã}ñQ| IBM Cloud ˆWatson}żƖȁȇß_K
  6. ŰÞVŻǑȂW ¯´›Î̕ªR æǿǹ Software Design ČǤVVisual Studio Code ǯǁìŘW

  7. m.BM=  IBM Cloud "-287 P~URL ({  ibm.biz/dojo20200122 !

    IBM Cloud K3.M -1/M=, hi  ( (K3.M  ! IBM Cloud H.=-1/M=Sg -1/M=, hi  t‡, Š% XØÓ}aǧ^
  8. áóũŲ}iśņ ZÑR¤Ë­½x~Śǚ“›–Ò±ŗďk„mcJŸŞǝ÷xʼnÞk„mK ƼuwJĀú}Śǚ“›–Ò±‚}“­½žÏR²ˆJÑR¤Ë­½űĭ|Šuw ĮďŞàcƧňjŽhy~]Œ„o‘ ibm.biz/IKSdojo ! PayG “›–Ò±ƶƣ ! 9A56?G¼Ì–£•Ò¦±RÎ

    ! IBM Cloud CLI •Ò¦±RÎ ! IBM Cloud Kubernetes Service ʼnģ
  9. 1. [wr]![-1/M=],2I<2* 2. [-1/M=`],2I<2* 3. -1/M=N:.A,u€* X#&<?D4“›–Ò±ƫƽ}śņñā mjLO25G<A Q~+ d}

    ! PayG(c…†)-1/M= ! 4@725A5GM]x-1/M=
  10. 1. aP[IBM Cloud],2I<2 ;<5FDO>,|v 2. ;<5FDO>[I9O7}x] „Q|v+[Clusters],2I<2 3. I9O7NI7=[Clusters] z‚Sg2H7:Z

    [qn],u€* X$D25A>5C5BÌ¦ª}žƪśņñā ! Kubernetes2H7:Sg k‰(x20UWb),}*& LO25G<A ^%*WSg, Š% ! Kubernetes2H7:lp '!qfu€io Q~ƒ)
  11. 2. 2H7:e[CO6 [Web terminal],2I<2* 3. [Install],2I<2.M7=OJ, ˆ^*_Rb T$ [Web terminal]')VsXy

    X$D25A>5C5B 052ªRijÎ}ƃïñā(0A5GM) ! Kubernetes Web:OE?J.M7=OJ k‰(x10UWb) ,}*\Y )% ! Kubernetes2H7:lp '!qfu€io Q~ƒ) 1. I9O7NI7=[Clusters] z‚Sg2H7:Z [qn],u€*
  12. ⽬次 1. コンテナが注⽬されている理由 2. コンテナのテクノロジーとは 3. IBM Cloud Kubernetes Service

    の始め⽅ 4. Kubernetes チャレンジ <ワークショップ>
  13. 1. コンテナが注⽬されている理由 なぜ「今」 コンテナ/Docker/Kubernetesなどの テクノロジーが注⽬されているのか

  14. Ò¯³Ĭó}¤¦¯Å šÒ½Ï or Ì–² ‘â HA1 QA-HA1 DEV#1 ‘â HA2

    QA-HA2 DEV#2 Storage Disk Array Tape Library Equipment ¤¦¯ÅƎĎã ¦R¹R¸•£ Ąëã ¤¦š¿ ƜƕĮď ¦Ÿ¥ÉRÎ ƜƕǗij ¹­¬ǁď ĖǀäƷĪ ¨œÉͯ” ¬ÉR´Òž ſǷĺðųJĉNjƊç Źƌ “½ÍM¥Ë¼Ŏď ŀǙŎď Źƌ©»±}ĥõ ʼnŒh… Ɯƕʌä^ Ôƚ²œÉÆÒ±yȅÙö{džý |Š¤¦¯ÅĄë&Ŏď “½ÍM¥Ë¼Ŏď Ò¯³Ĭó} ƯǘǷŽ}Ʀ{ÙèʼnÞ ITILũǖ}èǓŕʼnģ
  15. IT} Ò¯³‡ÞĤƥŵǸö|Ļƺ “½Í Ò¯³ V1.2 “½Í Ò¯³ V1.1 ŢƏċő ¯¦±

    “½Í Ò¯³ V1.3a “½Í Ò¯³ V1.3b °Í¸ÍM¹•½Ì•Ò ØƘ ¢Rº¦ ĄëÚ ĄëÚ “½Í “½Í “½Í “½Í °¾Ð­¹R °¾Ð­¹R ¯¦±˜Ò¥´“ SRE íĂ|ęǁĊjŽr Ħđ} Ò¯³ ƊƇ¤¦¯Å |Ơ`hycxd 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
  16. どちらを⽬指しますか︖ https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A#/ media/File:Dole_container_is_placed_onto_a_truck.jpg http://military.wikia.com/wiki/Battle_of_Pusan_Perimeter_logistics

  17. ĈĦkr^hy~ƛxk‰_O ¡šR l~7w ŠŠ7lR l~7w ¬ÌÅïR l~7w

  18. 2. コンテナのテクノロジーとは 1 起動が早い • ホストOSからみると、プロセスが⽴ち上がるだけ • スケールしたときにもすぐにアプリが⽴ち上がる 2 冪等性が保たれる

    • Infrastructure as Code により、環境構築の⼀連の作業をコード化できる • Immutable Infrastructure により、何度実⾏しても同じ環境が再現される 3 ポータビリティー性がある • アプリの実⾏に必要な依存関係をすべてパッケージングできる • Dockerエンジンが動く環境ならどこでも実⾏できることが保証されている べきとうせい
  19. "# gtx v}·R²–—“ (,| çƲjŽrŶôʼnģk Ŷôiy|lj{(,ƜƕŊƟ  %)+ˆ/&F1A5{zyîl üå£×á

  20. $% +'!- %9>DG|a^w gtxäà ŊƟm u\dvlop7w } ©»±–—“

  21. &'()*+(,-./(0+(, VǵƞäÒWyV Ò¯³W ÜƩNhttps://docs.docker.com/engine/docker-overview ! "0ϾÎ}ǵƞĊ ! (,›RµÎƳŚ ! ǵƞäÒiy|ȃƲ

    ! (,ϾÎ}ǵƞĊ ! (,›RµÎŧŚkJ½Ð¨¦ykwƅĔ ! ½Ð¨¦žÎR½ĊkwȃƲ
  22. ?3;5A \ Ò¯³ Ò¯³Įďmr†}ƬĶ…ŊƟm½Ì­±»™RÅ ! VĄëãcǮDž|“½ÍŸR¤ËҐĔbmƜƕʼnWhycxd ! Ò¯³}°»’±¦ªÒ«R²  

       •ÆR¥}ʼnģ T“½Í}ĄëU •ÆR¥}ŧŚ Ò¯³R}Ĉß +'!-[èIMgtx7R‰_h_d‹[ߧ
  23. Ò¯³R}ÂRªºÍ¯” y ?3;5A". ! Ò¯³R}ÂRªºÍ¯” 1?3;5A•ÆR¥ ! “½ÍŸR¤ËÒȀƴ|ūĜ{Ǣư»’•Î ¹­ŸR¥Òžxd !

    ĽĎ¢R¸R|ǐõjŽ{^ [ îl“Rœ¯¬È}Ɯƕx]Ž ÂRªºÍ¯”cưŭ] ! ?3;5A".  '+, (" %!  '+, *$)& %!  * #  *  *          VǼ}Ɯƕx~Ĕ^rW Ġİcëìk{^                    ĸƦ{¾Ò«RcŊƟm Ò¯³R•ÆR¥ T©ÍÉR¤ËÒU}›ªÐž  * #  *  *   
  24. Ò¯³RƜƕ|ag¤¦¯ÅĄë !Infrastructure as Code }ǭǜ 1 ƜƕƉǟ}ÝČ}ʼnÞ~ Dockerfile | R²Ċ

  25. ?3;5AŗurĄë}źŽ ?3;5A69<5 ?3;5A •ÆR¥ Ò¯³R Ï¥¦±Í ūĜ{ ĥõŇǤ Ąëã Ò¯³R

    •ÆR¥ʼnģ •ÆR¥} ƶƣ Ąë㠓½ÍĈß “½ÍĄë
  26. コンテナのはじめ⽅ n CNCFの Cloud Native Trail Map を参照 1. コンテナ化

    • ⼀般的には Docker コンテナで実施 • いかなるサイズのアプリケーションも依存性もコンテナ化可能 • 時間が経つにつれ、アプリケーションを分割し マイクロサービス化したくなるだろう 2. CI/CD(継続デリバリの仕組み) • 継続インテグレーション・継続デリバリの仕組みをセットアップ • コード変更が 新しいコンテナ・イメージとして、 ⾃動的にビルドされ、テストされ、デプロイされるように 3. オーケストレーション&アプリ定義 • 互換性試験に合格している Certified Kubernetes 環境を選択 • もっとも複雑なアプリケーションであっても HELMで 定義して、導⼊して更新していくことが可能
  27. Ò¯³ē|~ !?3;5Aâ}¢•±b‹Ÿǚ«–ÒÐR²ŷŔ 1 https://www.docker.com/products/docker-desktop 1 docker for Mac / docker

    for Windows !?3;5A|v^wē 1http://docs.docker.jp/index.html ! Śnj|ŠŒ ?3;5A}²œÉÆÒ±c Ó؃ĊjŽw^„m ! „n~ ?3;5A69<5 ^evbŕ^w…„k‰_P
  28. ĈĦkr^hy~ƛxk‰_O ¡šR l~7w ŠŠ7lR l~7w ¬ÌÅïR l~7w ʨR —«£ ýþP

    lf7‹
  29. 3. IBM Cloud Kubernetes Service}Ŝ†ñ ƼƚƗà(PAYG)„r~¢¼¦Í½¤ËÒ}“›–Ò±

  30. gtx×á5ñÒ£TR R­XÂU Ì–²µ•¯”¼M“½Í ƹũĊ‚ƤƮö|įĉ ?3;5A$D25A>5C5B‚} Ä­± $D25A>5C5B¾R¦} Ò¯³ŀǙ©ÍÉR¤ËÒ  ÕæL#&ˆ

    !??7<5{z Đ }ŁÞLłącĥü Ò¯³żƖ Ò¯³ƎĎ 234 !"#$% 567,-(,),8.9,-:+;,.<259= ¢Rº¦Æ­¤É !A1651B ¢Rº¦Æ­¤É ¢Rº¦Æ­¤É !A1651B ¢Rº¦Æ­¤É ¢Rº¦Æ­¤É !A1651B !A1651B ¢Rº¦Æ­¤É !A1651B ¢Rº¦Æ­¤É ¢Rº¦Æ­¤É ¢Rº¦Æ­¤É ¢Rº¦Æ­¤É 234 !"#$% >-+:*),.<2&>= —Ýnv`a]RgtxœÔ[ìº )#?>>53CL01CB?>?=@1A5?=@<HL -A1>B6?A=1C9?>4E9B?AL&93A?3<9=1C5L (&L,;H49E5L#&/?935!1C5F1HL 052,@85A5L .A21>?45 5@<?HL)&L2L &*L##L@@?>>53CL1C1)?F5ALq}DŽĸī
  31. 234 !"#$% 567,-(,),8.9,-:+;, !"#$% 234 !"#$% >-+:*), !"&'% h7}lykw ŊƟjŽ

    ‹„z7kwƜƕ ‰_‚7vƜƕ| Ò¯³ƜƕƉǟMŎďm &''‚7l}©»±–—“ 234 !"#$% 234 !"#$%
  32. 234 !"#$% 567,-(,),8.9,-:+;, !"#$% 234 !"#$% >-+:*), !"&'% h7}lykw ŊƟjŽ

    ‹„z7kwƜƕ ‰_‚7vƜƕ| Ò¯³ƜƕƉǟMŎďm &''‚7l}©»±–—“ 234 !"#$% 234 !"#$%
  33. IBM Cloud Kubernetes Service (IKS) »ÎõR¥²{$D25A>5C5BiŊƟ hdrOÈZY M«­¤ÉÁR²ĒŬ Mǡī}¸R¥ËÒŊƟ j‹Q·Ã

    M¶R²Őī MĮďmÃ¤Ò¦¿­ Mǵƞ¢R¸RJ¾“ƪΠ=<<:øð Mk8s}APIJ®RÎ MkubectlŗurǬʼn ÖÞs7‹ÆU MОŦŪ MÇ´ªÍҞ úòQh7}l¥í MWatson MIoT MDatabase{z{z VXmc‡]Q MȈǦĢ“²¸•£R ĖǁŖ{ĥõyȈǦĢļÜ M•ÆR¥LJĿ M Ĉßò}Ĩǂ¬—­
  34. ©¿À µ¼’Ru7omo7QMh7}lÉæ ›ã u7omo7 ÁŸ ĩ“¥“ ! ?@0%$ ! 8(0%"

    ! )'@%$ ! A'(0.5'(0 ! B'@C' ! 9+(0*D'-, Š“¥“ ! E,F%" ! 8CG%" ! 8CG%H ! 4,F7'6-(, ! 9CG(,C ƱƋÚƻ ! *E8%I ! J-*%$ ! E+F%" ! D*-%" ! KE8),-G*E ! L-*(@J6-) ! 4+F*( ! >*-+8 ƭÖŠø ! F'(%$ ! F'(%H ! M'(G'( ăÖéø ! E'(%" ! )'-%" ! NG;%O ! NG;%P ! 4'()-,*F ! B'-'()' ! Q*8?+(0)'(R.S& ăÖŠø ! G*F"% ! G*F"$ ! G*F"I ! ?'6%" ! 8*'%" ! S*FF*8 ! A'68)'( ! 9*'.>*6F' https://console.bluemix.net/docs/containers/cs_regions.html#regions-and-locations
  35. ýþPd‰lo7·Ã h7|7êÐ ëé ®¦ÇÍç 8=(#%)9 ®¦ÇÍç 8?(#%)* ˜ÎðÏ+ ǵƞ ¢R¸R

    $STO &>U HS$H$...V3.WK4 X"$Yòô X$ZPĝYæ ƳŚǵƞ ¢R¸R $STO &>U HS$H$...V3.WK4 XITYòô XPZ[ĝYæ ĽĎ ¢R¸R HS$[ &>U I$ST"$.V3.WK4 X[%R$%%Yæ X$HĝYæ éěS& $%"[ÕHæĦŭ}Ơ ! ÑR›RM¶R²}Ȁƴòô|ųlrƼƚƗà ! æªRM¶R²~Ɨàðƍġ ! LQˆ9)'-*0,J>'-)*7F,.2>{zūĜ|ųlwšǒƝĭ
  36. ‚]…o‹Û¶ 567,-(,),8 æªRM¶R² TĞLjƎĎU 567,-(,),8 ÑR›RM¶R² 567,-(,),8 ÑR›RM¶R² ,-.ߧ BîéHOQ„lo76{7w[

    Éæ4 ,-.ߧ/01(’Qȶ Bîéߧ BîéD…y‡7CW h7|7[¢ù4 Bîé/01(’Qȶ 567,-(,),8 ÑR›RM¶R²
  37. 0!-*!/!. 0!-*!/!. ÄFR+'!-äà[ؖߧIMFZY b7flvŒ7jˆ6s7‹

  38. ¦ŸRΓ–± ÂͤR¾R¦x}ŷďĢ ſǷçǞ ÐRΓ­½°R± µ­±ÑRƎĎ ǃħ¦±ÏR¥ƎĎ ). &5=?AHÍ©R¦ƎĎ 0!-*!/!.

  39. Kubernetes}“Rœ¯¬È ĎƞžƆ|{Š_ '?45Û} Ò¯³ƎĎ ʼnģkr Ò¯³R~'?45Û|Ɗť ƎĎã ÊR£R

  40. Pod !Kubernetes |agęč}ƎĎDžĹ 1+ }Ú|~ =L¼’ } Ò¯³cƢ„Ž 1)?4DžĹx¦ŸRΕÒM¦ŸRΓ–±m 1)?4iy|#)“²Ï¦c“¢•ÒjŽ

    )?4#) ()*(*+),*-. ()*(*+),*(+/
  41. 2#34)35(#%) 6&'7589$:;$+ Ò¯³ Īś|~PodxmcJƐÿǮǠĊ}r† Ò¯³yk„mK gtx«È 1ËRNodeN÷»Rgtx[«È

  42. ReplicaSet !)?4ƎĎmr†}õƈ 1)?4}ūĜȀƴīõƈ 1$,} $! 0(!- c z}¶R²|“¢•Òmb~ōǥkweŽ )?4#) ()*(*+),*-.

    ()*(*+),*(() !,(%!/  Ó°»>  ¸” ¶R² ¶R²
  43. 2#34)35(#%) 6&'7589$:;$+ Ò¯³ Īś|~PodxmcLƐÿǮǠĊ}r† Ò¯³yk„mK Kubernetes ߧ Rgtxäà 2#34)35(#%) 6&'7589$:;$+

    2#34)35(#%) 6&'7589$:;$+ 0!-*!/!.d‰lo7 ÷»NodeN Kubernetesd‰lo7[Û¶
  44. 2#34)35(#%) 6&'7589$:;$+ Ò¯³ Īś|~PodxmcLƐÿǮǠĊ}r† Ò¯³yk„mK 2#34)35(#%) 6&'7589$:;$+ 2#34)35(#%) 6&'7589$:;$+ 0!-*!/!.d‰lo7

    @YgtxQ²¾D@ZS5ÐNodeNžgtxOIM«È Kubernetes ߧ Rgtxäà
  45. 2#34)35(#%) 6&'7589$:;$+ Ò¯³ Īś|~PodxmcLƐÿǮǠĊ}r† Ò¯³yk„mK 2#34)35(#%) 6&'7589$:;$+ 2#34)35(#%) 6&'7589$:;$+ 0!-*!/!.d‰lo7

    @YNodeQ²¾D@ZS5ÐNodeNžgtxOIM«È Kubernetes ߧ Rgtxäà
  46. Node Port !0!-*!/!.³b‹ -) #)x“¨¦mr†}õƈ 1$,Ì¦ª÷x“±OPYƒ7vc“¢•ÒjŽ 1$,Ì¦ª}z}¶R²b‹“¨¦kw‡ ĚȆ¢Rº¦|ÎR¯”ÒžjŽ )?4#) ()*(*+),*-.

    ()*(*+),*(() ¶R² ¶R² I%%"% I%%"%
  47. 2#34)35(#%) 6&'7589$:;$+ Ò¯³ Īś|~PodxmcLƐÿǮǠĊ}r† Ò¯³yk„mK 2#34)35(#%) 6&'7589$:;$+ 2#34)35(#%) 6&'7589$:;$+ 0!-*!/!.d‰lo7

    Pod zrvŽ7dN5ÕEIP[™LGM—«Ñ¯ ç) Pod zrvŽ7d 10.1.0.x .10 .11 .12 .13 .14 .15 .16 .17 .18 .19 Kubernetes ߧ Rgtxäà
  48. Deployment !ę‡ÝǕö{ÑRÐR²õƈą 1)?4 1+5@<931,5C 1<DBC5A#)B 1'?45)?AC )?4#) ()*(*+),*-. ()*(*+),*(() <DBC5A#)

         *#-!..  !,(+3)!*/
  49. ô»—¦±»’•ÎxžƆǣĴ TƠU ! Ò¯³R•ÆR¥ ! Ò¯³R}ī ! ūĜ{). &5=?AH !

    ġø“¨¦}r†|ĄeÂR±~
  50. Video: Kubernetes Rollout/Rollback demo 今さら⼈に聞けない Kubernetes とは︖ https://qiita.com/MahoTakara/items/85096f8b2632c802ab22

  51. Video: Kubernetes rollout / rollback Video: Kubernetes rollout / rollback

  52. まとめ 02 01 コンテナとは︖ Dockerとは︖ 03 Kubernetesとは︖ 04 コンテナのはじめ⽅ •

    Linux上の隔離された空間で実⾏されるプロセス • アプリの実⾏に必要な依存関係をすべてパッケージングできる • コンテナーの作成・共有・実⾏をするためのツール • 冪等性やポータビリティー性といったメリットがある • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • Kubernetesは必要な機能だけを絞って動かしてみる
  53. áóũŲ„saĵ…x{^ñ ZÑR¤Ë­½x~Śǚ“›–Ò±ŗďk„mcJŸŞǝ÷xʼnÞk„mK ƼuwJĀú}Śǚ“›–Ò±‚}“­½žÏR²ˆJÑR¤Ë­½űĭ|Šuw ĮďŞàcƧňjŽhy~]Œ„o‘ ibm.biz/IKSdojo ! PayG “›–Ò±ƶƣ ! 9A56?G¼Ì–£•Ò¦±RÎ

    ! IBM Cloud CLI •Ò¦±RÎ ! IBM Cloud Kubernetes Service ʼnģ
  54. m.BM=  IBM Cloud "-287 P~URL ({  ibm.biz/dojo20200122 !

    IBM Cloud K3.M -1/M=, hi  ( (K3.M  ! IBM Cloud H.=-1/M=Sg -1/M=, hi  t‡, Š% XØÓ}aǧ^
  55. 4. Kubernetes R²¬ÈÏÒ¥   ibm.biz/dojokadai1 Y Kubernetes b‹ē

  56. 4. Kubernetes コードチャレンジ (1) 補⾜ ibm.biz/dojokadai1 ▪ Lab 5 Helmオプションに関するエラーが発⽣した場合は、オプションを

    除いて実⾏してください。 例 helm install –name jpetstore ./mmssearch helm install jpetstore ./mmssearch/ 例 helm delete jpetstore –purge helm delete jpetstore
  57. 4. Kubernetesコードチャレンジ (2) Watson APIを呼び出すアプリをKubernetes で動かそう ibm.biz/dojokadai2 無料範囲でWordPressサイトをKubernetes で動かそう ibm.biz/dojokadai3

  58. 4. Kubernetes コードチャレンジ (3) ibm.biz/docker101jp ▪ Docker から学ぶ Lab 0

    – Dockerのインストール Lab 1 – 初めてコンテナを実⾏ Lab 2 – カスタムDockerイメージ Lab 3 – オーケストレーション⼊⾨
  59. IBM Code Patterns https://ibm.biz/ibmcodejp ńƐ °ÇĔŤ ©R¦ R²cȊur“½ÍĄë¹ªRÒŪ

  60. Y åǍŕ}iǻơ V?3;5Ab‹ï$D25A>5C5BWíƂŏǽǶ Í­¯Ï Å

  61. ¡š•½Gh_v IBM Developer ibm.biz/IBMDevJP ęùŅıˆ¦œÎ“­½|Žüv ƨ`żƖŇáŊƟ

  62. None