Slide 1

Slide 1 text

Unless otherwise indicated, these slides are © 2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Creating a PageRank Analytics Platform Using Spring Boot Microservices Kenny Bastani, Spring Developer Advocate, Pivotal @kennybastani

Slide 2

Slide 2 text

https://github.com/kbastani/spring-boot-graph-processing-example Speaker Intro - Kenny Bastani 2

Slide 3

Slide 3 text

https://github.com/kbastani/spring-boot-graph-processing-example Tools we’ll be using ! Spring Boot ! Neo4j ! Apache Spark ! Docker ! RabbitMQ 3

Slide 4

Slide 4 text

https://github.com/kbastani/spring-boot-graph-processing-example 4 Agenda ! Sample Application Overview • Ranking Twitter profiles • PageRank algorithm ! Graph Processing Platform • Apache Spark GraphX ! Building Microservices • Reference architecture • Spring Data Neo4j repositories • Importing Twitter users • Scheduling PageRank jobs on the Twitter graph

Slide 5

Slide 5 text

Ranking Twitter Profiles Using PageRank 5 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 6

Slide 6 text

https://github.com/kbastani/spring-boot-graph-processing-example PageRank algorithm 6

Slide 7

Slide 7 text

https://github.com/kbastani/spring-boot-graph-processing-example PageRank algorithm 7

Slide 8

Slide 8 text

https://github.com/kbastani/spring-boot-graph-processing-example Ranking Dashboard 8

Slide 9

Slide 9 text

https://github.com/kbastani/spring-boot-graph-processing-example Graph processing platform 9

Slide 10

Slide 10 text

Building Microservices 10 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 11

Slide 11 text

https://github.com/kbastani/spring-boot-graph-processing-example Building Microservices 11

Slide 12

Slide 12 text

12 https://github.com/kbastani/spring-boot-graph-processing-example Building Microservices

Slide 13

Slide 13 text

13 Creating Spring Data Neo4j Repositories https://github.com/kbastani/spring-boot-graph-processing-example

Slide 14

Slide 14 text

Creating Spring Data Neo4j Repositories 14 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 15

Slide 15 text

Creating Spring Data Neo4j Repositories 15 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 16

Slide 16 text

Creating Spring Data Neo4j Repositories 16 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 17

Slide 17 text

Creating Spring Data Neo4j Repositories 17 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 18

Slide 18 text

Creating Spring Data Neo4j Repositories 18 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 19

Slide 19 text

Creating Spring Data Neo4j Repositories 19 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 20

Slide 20 text

Exposing repository APIs using Spring Data REST 20 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 21

Slide 21 text

Exposing repository APIs using Spring Data REST 21 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 22

Slide 22 text

Exposing repository APIs using Spring Data REST 22 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 23

Slide 23 text

Connecting to the Twitter API 23 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 24

Slide 24 text

24 https://github.com/kbastani/spring-boot-graph-processing-example Connecting to the Twitter API

Slide 25

Slide 25 text

Connecting to the Twitter API 25 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 26

Slide 26 text

Connecting to the Twitter API 26 https://github.com/kbastani/spring-boot-graph-processing-example We can override these properties as environment variables at runtime

Slide 27

Slide 27 text

27 https://github.com/kbastani/spring-boot-graph-processing-example Connecting to the Twitter API

Slide 28

Slide 28 text

28 https://github.com/kbastani/spring-boot-graph-processing-example Connecting to the Twitter API

Slide 29

Slide 29 text

Scheduling new PageRank jobs 29 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 30

Slide 30 text

https://github.com/kbastani/spring-boot-graph-processing-example Graph processing platform 30

Slide 31

Slide 31 text

Scheduling new PageRank jobs 31 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 32

Slide 32 text

Ranking Dashboard 32 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 33

Slide 33 text

33 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 34

Slide 34 text

Ranking dashboard 34 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 35

Slide 35 text

35 https://github.com/kbastani/spring-boot-graph-processing-example Ranking dashboard

Slide 36

Slide 36 text

Adding static web content 36 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 37

Slide 37 text

37 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 38

Slide 38 text

38 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 39

Slide 39 text

https://github.com/kbastani/spring-boot-graph-processing-example Ranking dashboard 39

Slide 40

Slide 40 text

https://github.com/kbastani/spring-boot-graph-processing-example Add seed profiles 40

Slide 41

Slide 41 text

https://github.com/kbastani/spring-boot-graph-processing-example Choose 3 seed profiles 41

Slide 42

Slide 42 text

Creating Spring Data Neo4j Repositories 42 https://github.com/kbastani/spring-boot-graph-processing-example

Slide 43

Slide 43 text

https://github.com/kbastani/spring-boot-graph-processing-example Discover new users and update rankings 43

Slide 44

Slide 44 text

https://github.com/kbastani/spring-boot-graph-processing-example 44 Learn More. Stay Connected. ! @kennybastani on Twitter Twitter: twitter.com/springcentral YouTube: spring.io/video LinkedIn: spring.io/linkedin Google Plus: spring.io/gplus