Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Application Development Vision

5,156 views

Published on

Please go a head to the modern development style?

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Application Development Vision

  1. 1. 自己紹介 マイクロソフト・コーポレーション クラウド・デベロッパー・アドボケイト Java チャンピオン 寺田 佳央 ハッシュタグ #てらだよしおがんばれ
  2. 2. アプリ開発は二極化
  3. 3. というより 会社・開発者が二極化
  4. 4. Every company is a technology company
  5. 5. デジタル革命で企業が生き残る方法 2000 年〜2014年 Fortune 500 (全米上位企業) 52% 倒産 ご参考: https://www.constellationr.com/blog-news/research-summary-sneak-peeks-constellations-futurist-framework-and-2014-outlook-digital
  6. 6. デジタル企業がより速く成長し既存産業を破壊する $25b $50b $75b $100b $200b $300b $400b $800b ビジネスの期間
  7. 7. $25b $50b $75b $100b $200b $300b $400b $800b ビジネスの期間 DevOps - OSS Try and Error (Feed Back loop) データビジネス: Big Data&Real Time (Hadoop/NoSQL/AI) デジタル企業がより速く成長し既存産業を破壊する
  8. 8. 10 会社倒産 株価低下 収益低下 企 業 経 営 か ら 見 た リ ス ク
  9. 9. 会社が変わらなければ と思うかどうか
  10. 10. 12 オンプレミス Lyft & Shift IaaS PaaS クラウドネィティブ IaaS PaaS Micro Services Container (Kubernetes) シ ス テ ム 導 入 の リ ス ク
  11. 11. 価値あるエンジニアと して今後も生きる 13
  12. 12. 14 解雇 給料一定 社 員 と し て の リ ス ク
  13. 13. 学び続ける姿勢 自分の市場競争力を維持 するためには、 「学び続ける姿勢」がとても重要です。 学ぶことを止めれば、早晩、恐竜の ように 滅びてしまうことになるでしょう。
  14. 14. 17 オンプレミス Lyft & Shift IaaS PaaS クラウドネィティブ IaaS PaaS Micro Services Container (Kubernetes) こ こ で 留 ま る な ら ば 延 命 可
  15. 15. 既存アプリの延命には IaaS – 仮想マシン
  16. 16. MarketPlace から
  17. 17. Tomcat のアプリを動作させたいならば App Service - PaaS
  18. 18. 銀の弾丸はない
  19. 19. 他社の成功事例を真似ても 意味はない。 自社にとって最適な 構成を一生懸命考えるだけ
  20. 20. モノリシック?マイクロ?ミニ?
  21. 21. 一般的な企業システムの実装例 顧客管理 受注管理 物流管理 売り上げ管理 商品管理 レコメンド 顧客分析 経営分析 企業システム DB
  22. 22. どんどんマイクロ・サービス化 受注管理 サービス 顧客管理 DB 物流管理 サービス 顧客管理 DB
  23. 23. マイクロサービス いち早くサービスを 提供したい 柔軟にスケール させたい 独立したサービス作りを おこないたい 耐障害性を高めたい 変更に強いシステムを 作りたい とりあえず MSA 化が必要 Docker を導入したい 何のためのマイクロ・サービス?
  24. 24. マイクロサービス 一番だめなパターン とりあえず MSA 化が必要 Docker を導入したい
  25. 25. マイクロサービス いち早くサービスを 提供したい 柔軟にスケール させたい 独立したサービス作りを おこないたい MSA でなくてもできません?
  26. 26. マイクロサービス 耐障害性を高めたい (回復性を高める) 変更に強いシステムを 作りたい MSA が有効 ( 寺田の所感 )
  27. 27. 33 変更 (新規・更新) に強いシステムを作りますか?
  28. 28. 12 Factor App Reactor Manifest 組織作り TDD Agile 継続的インテグレーション Infrastructure as Code 継続的デリバリ
  29. 29. ソースコード管理
  30. 30. サービス毎にレポジトリを作成しましょう
  31. 31. サービス毎の履歴管理や 把握が容易に !!
  32. 32. サービス毎にレポジトリを作成しましょう
  33. 33. サービス毎の履歴管理や 把握が容易に !!
  34. 34. はじめに Java SE の現在と将来 Java EE の現在と将来 並列処理 非同期 ノンブロッキング
  35. 35. 同期?非同期? Service C Service C
  36. 36. はじめに Java SE の現在と将来 Java EE の現在と将来 並列処理 非同期 ノンブロッキング
  37. 37. 同期?非同期? Service C Service C
  38. 38. はじめに Java SE の現在と将来 Java EE の現在と将来 リソース設定を 柔軟に !!
  39. 39. おきないように 頑張る ? 起きても大丈夫な ように作る? 障害はおきる!!
  40. 40. 分散コンピューティングの落とし穴
  41. 41. 誤った考えかた https://blogs.oracle.com/jag/resource/Fallacies.html
  42. 42. 分散コンピューティングを 意識したシステム開発
  43. 43. どこで障害が発生する? 仮想 IP LB App Server ハートビート HA-Cluster ハートビート 仮想 IP
  44. 44. 今だから再び !! オススメの一冊
  45. 45. Azure でのコンテナ化 Web App for Containers Container Instane Azure Kubernetes Services
  46. 46. Kubernetes はマイクロサービス基盤
  47. 47. Kubernetes MicroServices 積み重ねしかない
  48. 48. Azure Functions for Java Servleless
  49. 49. JDK 10 より Docker コンテナの対応強化 コンテナの検出とリソース構成 の使用法の改善 コンテナに割り当てられたCPU数と合計 メモリを正確に取得可能 ヒープ・メモリの割り当てを 調整可能 -XX:InitialRAMPercentage -XX:MaxRAMPercentage -XX:MinRAMPercentage
  50. 50. java.xml.ws (JAX-WS、Webサービス) java.xml.bind (JAXB) jdk.xml.ws (JAX-WS用ツール) jdk.xml.bind (JAXB用ツール) JDK 11 よりJava SEから 削除されるパッケージ
  51. 51. RUN /jdk-11/bin/jlink --module-path /jdk-11/jmods --add-modules java.base,java.logging,java.xml,jdk.unsupported,java.s ql,java.naming,java.desktop,java.management,java.secur ity.jgss,java.instrument --compress 2 --no-header-files --no-man-pages --output /tmp/custom-jdk-11-min カスタムのスモール JDK の作成方法
  52. 52. 66
  53. 53. LUIS Bot クライアント テキスト&サウンドによる k8s 操作
  54. 54. https://aka.ms/doc-java-jp
  55. 55. Engineer can change the World !!
  56. 56. Microsoft OSS

×