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

Java Spring Boot with Kubernetes on IBM Cloud

Java Spring Boot with Kubernetes on IBM Cloud

This presentation is for JJUG CCC Fall 2018.

Taiji HAGINO
PRO

December 15, 2018
Tweet

More Decks by Taiji HAGINO

Other Decks in Technology

Transcript

  1. Java Spring Boot
    on Kubernetes
    Taiji HAGINO
    Developer Advocate / [email protected]

    View Slide

  2. SPEAKER

    View Slide

  3. Taiji HAGINO
    IBM Developer Advocate
    Specialist in Node-RED/Node.js, Swift
    @taiponrock
    f t in

    View Slide

  4. IBM
    DEVELOPER ADVOCATE

    View Slide

  5. TECHNOLOGISTS RULE THE WORLD


    #


    "!
    $
    %

    View Slide

  6. OUR ACTIVITIES


    a
    B c d
    P S
    D
    D M D N

    View Slide

  7. TOKYO CITY TEAM
    Tokyo Team is a part of Worldwide Developer Advocate Teams!

    View Slide

  8. Yes, we are DeveloperAdvocate
    https://developer.ibm.com/code/community/advocates/

    View Slide

  9. Java

    View Slide

  10. ,, (&& Ph deS R
    (&& (&&( .
    (&&( (&&) 29J9 aV7 JB 27 02.
    (&&) (&&* 29J9 1B9 1B9 6 CE
    (&&* (&&, 29J9 b V g
    (&&, F F E A 4 A 7 N
    R V- E fS29J9i P O

    View Slide

  11. SpringBoot

    View Slide

  12. B

    View Slide

  13. )
    (

    View Slide

  14. ( 3. ) / ( . ()(
    3. . / //

    View Slide

  15. -- . -
    /

    View Slide


  16. View Slide



  17. https://developer.ibm.com/jp/patterns/deploy-spring-boot-microservices-on-kubernetes-4/

    View Slide

  18. View Slide


  19. View Slide

  20. ,2% &%
    •IBM Cloud Kubernetes Service (IKS):
    IBM Cloud-(
    !&%&$&#%
    &
    •Compose for MySQL:
    &%&.*RDB
    •IBM Cloud Functions:
    &&$& "%!%+1
    &&)
    /'0FaaS (Function as a Service) 3

    View Slide


  21. •Kubernetes
    MinikubeICPIKS
    •Slack Incoming Webhook
    •IBM Cloud Functions CLI

    View Slide

  22. %
    1. Clone
    2.
    3. Spring Boot Microservices
    4. IBM Cloud Functions$# ("!)
    5. Microservices
    6.

    View Slide


  23. View Slide

  24. Clone
    $ git clone https://github.com/IBM/spring-boot-microservices-on-
    kubernetes

    View Slide

  25. Kubernetes on IBM Cloud

    View Slide

  26. IBM CloudKubernetes

    View Slide

  27. IBM CloudKubernetes

    View Slide

  28. IBM CloudKubernetes

    View Slide

  29. DB

    View Slide

  30. MySQL

    $ kubectl create -f account-database.yaml
    service "account-database" created
    deployment "account-database" created
    $ kubectl apply -f secrets.yaml
    secret "demo-credentials" created
    IBM Cloud Compose for MySQL
    DB

    or

    View Slide

  31. MySQL

    $ kubectl create -f account-database.yaml
    service "account-database" created
    deployment "account-database" created
    $ kubectl apply -f secrets.yaml
    secret "demo-credentials" created
    IBM Cloud Compose for MySQL
    DB

    or

    View Slide

  32. View Slide

  33. Java

    View Slide

  34. Create the Spring Boot Microservices
    Maven

    $ brew install maven
    $ mvn –v
    Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3;
    2018-10-25T03:41:47+09:00)

    View Slide

  35. Maven& #"
    MavenJava #-( ,.
    +'
    Docker" "
    %*Docker!$,.)/
    Go to containers/compute-interest-api
    $ mvn package
    Go to containers/send-notification
    $ mvn package

    View Slide

  36. Docker

    View Slide

  37. DockerSpringBoot
    IBM Cloud Container Registry !
    Docker hub !

    Docker hub
    $ docker build -t $DOCKERHUB_USERNAME/compute-interest-
    api:latest containers/compute-interest-api/
    $ docker build -t $DOCKERHUB_USERNAME/send-notification:latest
    containers/send-notification/
    $ docker push $DOCKERHUB_USERNAME/compute-interest-api:latest
    $ docker push $DOCKERHUB_USERNAME/send-notification:latest

    View Slide

  38. Kubernetes

    View Slide

  39. compute-interest-api.yaml send-notification.yaml
    Docker

    # compute-interest-api.yaml
    spec:
    containers:
    - image:
    # send-notification.yaml
    spec:
    containers:
    - image:

    View Slide

  40. Spring Boot Microservices
    $ kubectl apply -f compute-interest-api.yaml
    service "compute-interest-api" created deployment "compute-interest-
    api" created
    $ kubectl apply -f send-notification.yaml
    service "send-notification" created deployment "send-notification"
    created

    View Slide

  41. View Slide

  42. Frontend service
    $ kubectl apply -f account-summary.yaml
    service "account-summary" created deployment "account-summary"
    created
    Node.js
    Web

    View Slide

  43. View Slide

  44. Transaction Generator
    $ kubectl apply -f transaction-generator.yaml
    service "transaction-generator" created deployment "transaction-
    generator" created
    Python

    View Slide

  45. View Slide


  46. View Slide

  47. Public IP
    $ ibmcloud cs workers
    $ kubectl get service account-summary

    View Slide



  48. Public IP + account-summary
    184.173.47.69:30080

    View Slide


  49. View Slide

  50. f l Ur h
    IBM Partners
    D KM E H E E HK IB M
    ,
    /c woikrpr Uo
    M I : AE zUnU
    ,
    M I .MMEM I . 5 R . 5 d
    ,
    tUs *0 ,3/ . 3/ 411 c6 B IB BM
    ,B 4 ,
    5/ /G D EI G C H 2I B K EMB S)
    1 A 4
    C
    D KM E H E EGAPE D
    I C 1
    A 4
    , 01 A
    a ( s S a )(– T
    b e c5/ 0G AmUupk o rf W

    View Slide

  51. View Slide


  52. View Slide

  53. github.com/taijihagino
    Taiji HAGINO
    Developer Advocate
    IBM
    THANKS!
    facebook.com/taiponrock
    f
    t
    in linkedin.com/taiponrock
    @taiponrock

    View Slide

  54. 56
    DOC ID / Month XX, 2018 / © 2018 IBM Corporation

    View Slide