SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
1
Tinkering the Graph
Karthik Karuppaiya, Ten-X
Chris Pounds, Expero
GraphDay San Francisco 06-17-2017
2
Company Overview1
Problem Overview2
High Level Architecture3
Data Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
3
About Us
@karthikkrk
https://www.linkedin.com/in/karthikkrk/
3
Karthik Karuppaiya
Sr. Engineering Manager, Data and Analytics
Ten-X
TEN-X IS HIRING!
4
Ten-X At a Glance
5
About Us
https://github.com/chrislbs
https://www.linkedin.com/in/chrislbs/
@chrislbs_
5
Chris Pounds
Sr. Developer
Expero Inc
© 2017 Expero, Inc. All Rights Reserved © 2017 Expero, Inc. All Rights Reserved
WHAT WE DO
We bring challenging product ideas to reality. 6
USER EXPERIENCE FOR
COMPLEX DOMAINS
SOFTWARE
MODERNIZATION
ASSESSMENTS:
TECHNOLOGY / UX /
STRATEGY
USER RESEARCH
GRAPH DATA MODELING
& VISUALIZATION
PRODUCT INNOVATION
& DISCOVERY
TRAINING & BOOTCAMPS
© 2017 Expero, Inc. All Rights Reserved © 2017 Expero, Inc. All Rights Reserved
OPEN SOURCE & LICENSED TECHNOLOGIES
7Behind every great product is a great team. Let’s build something great together.
© 2017 Expero, Inc. All Rights Reserved© 2017 Expero, Inc. All Rights Reserved
8
EXPERO INSIGHTS
GRAPH DATA
ACCELERATORS & TOOLKITS
9
Company Overview1
Problem Overview2
High Level Architecture3
Data Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
10
Data Set Overview
• Commercial Real Estate Data
• Both Internal and External Datasets - Quality of the data varies significantly
• Different types of Data: Transactions, Entities, Individuals, Assets
• Relationships are inherently hidden due to the nature of the business
11
Problem Overview
• Find the hidden relationships between different entities in Commercial Real Estate
Data
• Help Business easily analyze the data and gain insights into hidden relationships
• Expose Data through easy to consume APIs
• Both Data Storage and Data Queries need to scale - start small and add more datasets
and users
11
12
Company Overview1
Problem Overview2
High Level Architecture3
Data Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
13
Platform Design Goals
• Private Data Center
• All Open Source Tools
• Ability to Iterate faster
• Multi-tenant – one platform for all lines of business and all teams
• Easily scalable
• Keep it Simple, Stupid
14
Data Storage
Graph Database
Search Index
Containerization
API/Application Deployment
Java Based API Framework
Technologies That power the platform
14
15
JanusGraph
• Forked from Titan DB
• Support for multiple persistence engines
• Integration with Geospatial and text search (Elastic Search)
• Implements Apache TinkerPop Gremlin Server
• Support For Apache TinkerPop Gremlin Language
• Open Source Apache 2.0 Licensing
15
16
Cassandra
• Elastic and Linear Scalability with Data Growth
• Resiliency to hardware failures
• Replication Across Data Centers OLTP and OLAP
• Open Source Apache 2.0 Licensing
16
17
High Level Architecture
18
Company Overview1
Problem Overview2
High Level Architecture3
Data Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
19
Infrastructure Configuration
19
• 3 Node Cluster
• Cassandra and JanusGraph servers are co-hosted
• 1 TB SSDs on each Node for a total of 3TB
• 16 cores
• 128 GB total Memory - Ability to scale vertically as we grow
• RHEL 7.3
• Stand alone Elastic Search Cluster for text indexing
20
Infrastructure Deployment Configuration
• Use Ansbile for Janus and Cassandra deployment
• Configuration Expressed as YML
• Declarative Representation of Deployment
• Agentless, only requires python2.7 on host
• Simple for small teams
• Consistently reproduce the environment
20
21
Company Overview1
Problem Overview2
High Level Architecture3
Data Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
22
API Layer
• Create Read Only APIs that serves the data to the applications
• Use Spring Boot for API Development
• Use Docker and Mesos for scalable API layer
• Publishes feedback information to Kafka that goes through the
pipeline again
23
Spring Boot
• Embedded HTTP Server
• Simple Application Configuration
• Easy to design REST endpoints
• Ease of Testing
• Java based (Apache TinkerPop Gremlin Language Variant)
23
24
Docker
• Simplifies Integration Testing
• Application deployed as generic unit (Containers)
• Configuration provided through environment variables
• Easy to setup developer environment
24
25
Mesos/Marathon
• Scalability: Easy to scale as the load increases. Supports both Horizontal and vertical scaling
on a cluster of machines.
• Resiliency: If a container dies, Mesos will act on it as necessary and spawn a new container.
• Multi-Tenancy: Easy to control how resources are used. Prioritize Job’s access to limited
Resources.
• Service Discovery and Load Balancing: Easy to load balance and allow services to be
discovered automatically.
• Health Check: Out of the box health checks.
25
26
Company Overview1
Problem Overview2
High Level Architecture3
Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
27
Live Demo
27
28
Company Overview1
Problem Overview2
High Level Architecture3
Infrastructure Details4
API Implementation Details5
Live Demo6
Agenda
Conclusion7
29
Concluding Thoughts..
• Start Simple - Do not over engineer
• Build a solid CI/CD pipeline - makes development faster
• Ensure developers can work in parallel
• Sample Demo code available here:
• https://github.com/experoinc/spring-boot-graph-day
• https://github.com/experoinc/dropwizard-tinkerpop
29
30
Karthik Karuppaiya
@karthikkrk
https://www.linkedin.com/in/karthikkrk/
kkaruppaiya@ten-x.com
Ten-X IS HIRING!
Thank you!
Q & A
Chris Pounds
https://github.com/chrislbs
https://www.linkedin.com/in/chrislbs/
chris.pounds@experoinc.com

Weitere ähnliche Inhalte

Was ist angesagt?

Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
HostedbyConfluent
 
Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...
Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...
Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...
HostedbyConfluent
 

Was ist angesagt? (20)

The Road Most Traveled: A Kafka Story | Heikki Nousiainen, Aiven
The Road Most Traveled: A Kafka Story | Heikki Nousiainen, AivenThe Road Most Traveled: A Kafka Story | Heikki Nousiainen, Aiven
The Road Most Traveled: A Kafka Story | Heikki Nousiainen, Aiven
 
Flattening the Curve with Kafka (Rishi Tarar, Northrop Grumman Corp.) Kafka S...
Flattening the Curve with Kafka (Rishi Tarar, Northrop Grumman Corp.) Kafka S...Flattening the Curve with Kafka (Rishi Tarar, Northrop Grumman Corp.) Kafka S...
Flattening the Curve with Kafka (Rishi Tarar, Northrop Grumman Corp.) Kafka S...
 
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
 
Neo4j 3.2 Launch
Neo4j 3.2 LaunchNeo4j 3.2 Launch
Neo4j 3.2 Launch
 
DataOps Automation for a Kafka Streaming Platform (Andrew Stevenson + Spiros ...
DataOps Automation for a Kafka Streaming Platform (Andrew Stevenson + Spiros ...DataOps Automation for a Kafka Streaming Platform (Andrew Stevenson + Spiros ...
DataOps Automation for a Kafka Streaming Platform (Andrew Stevenson + Spiros ...
 
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
 
Keeping Analytics Data Fresh in a Streaming Architecture | John Neal, Qlik
Keeping Analytics Data Fresh in a Streaming Architecture | John Neal, QlikKeeping Analytics Data Fresh in a Streaming Architecture | John Neal, Qlik
Keeping Analytics Data Fresh in a Streaming Architecture | John Neal, Qlik
 
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
 
Tackling Kafka, with a Small Team ( Jaren Glover, Robinhood) Kafka Summit SF ...
Tackling Kafka, with a Small Team ( Jaren Glover, Robinhood) Kafka Summit SF ...Tackling Kafka, with a Small Team ( Jaren Glover, Robinhood) Kafka Summit SF ...
Tackling Kafka, with a Small Team ( Jaren Glover, Robinhood) Kafka Summit SF ...
 
How a distributed graph analytics platform uses Apache Kafka for data ingesti...
How a distributed graph analytics platform uses Apache Kafka for data ingesti...How a distributed graph analytics platform uses Apache Kafka for data ingesti...
How a distributed graph analytics platform uses Apache Kafka for data ingesti...
 
Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...
Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...
Kafka at the core of an AIOps pipeline | Sunanda Kommula, Selector.ai and Ala...
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
 
Redgate Database Devops Demo webinar - Visual Studio Team Services - 21st Fe...
Redgate Database Devops Demo webinar  - Visual Studio Team Services - 21st Fe...Redgate Database Devops Demo webinar  - Visual Studio Team Services - 21st Fe...
Redgate Database Devops Demo webinar - Visual Studio Team Services - 21st Fe...
 
Gwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New Architecture
Gwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New ArchitectureGwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New Architecture
Gwen Shapira, Confluent | Kafka Summit 2020 Keynote | Kafka’s New Architecture
 
Couchbase Meetup Jan 2016
Couchbase Meetup Jan 2016Couchbase Meetup Jan 2016
Couchbase Meetup Jan 2016
 
Streaming Data Analytics with ksqlDB and Superset | Robert Stolz, Preset
Streaming Data Analytics with ksqlDB and Superset | Robert Stolz, PresetStreaming Data Analytics with ksqlDB and Superset | Robert Stolz, Preset
Streaming Data Analytics with ksqlDB and Superset | Robert Stolz, Preset
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
Death of the dumb pipes: Using Apache Kafka® for Integration projects
Death of the dumb pipes: Using Apache Kafka® for Integration projectsDeath of the dumb pipes: Using Apache Kafka® for Integration projects
Death of the dumb pipes: Using Apache Kafka® for Integration projects
 
Kafka Summit SF 2017 - Fast Data in Supply Chain Planning
Kafka Summit SF 2017 - Fast Data in Supply Chain PlanningKafka Summit SF 2017 - Fast Data in Supply Chain Planning
Kafka Summit SF 2017 - Fast Data in Supply Chain Planning
 
Building Microservices with Apache Kafka by Colin McCabe
Building Microservices with Apache Kafka by Colin McCabeBuilding Microservices with Apache Kafka by Colin McCabe
Building Microservices with Apache Kafka by Colin McCabe
 

Ähnlich wie Graph Day 2017 Spring Boot

Securing Red Hat OpenShift Containerized Applications At Enterprise Scale
Securing Red Hat OpenShift Containerized Applications At Enterprise ScaleSecuring Red Hat OpenShift Containerized Applications At Enterprise Scale
Securing Red Hat OpenShift Containerized Applications At Enterprise Scale
DevOps.com
 

Ähnlich wie Graph Day 2017 Spring Boot (20)

Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
 
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
 
OpenStack Icehouse Overview
OpenStack Icehouse OverviewOpenStack Icehouse Overview
OpenStack Icehouse Overview
 
Whither the Hadoop Developer Experience, June Hadoop Meetup, Nitin Motgi
Whither the Hadoop Developer Experience, June Hadoop Meetup, Nitin MotgiWhither the Hadoop Developer Experience, June Hadoop Meetup, Nitin Motgi
Whither the Hadoop Developer Experience, June Hadoop Meetup, Nitin Motgi
 
Optimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & ControlOptimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & Control
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
451 Research: Data Is the Key to Friction in DevOps
451 Research: Data Is the Key to Friction in DevOps451 Research: Data Is the Key to Friction in DevOps
451 Research: Data Is the Key to Friction in DevOps
 
Storage for containers and cloud-native deployments - Rancher Online Meetup -...
Storage for containers and cloud-native deployments - Rancher Online Meetup -...Storage for containers and cloud-native deployments - Rancher Online Meetup -...
Storage for containers and cloud-native deployments - Rancher Online Meetup -...
 
Optimize with Open Source
Optimize with Open SourceOptimize with Open Source
Optimize with Open Source
 
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
 
Securing Red Hat OpenShift Containerized Applications At Enterprise Scale
Securing Red Hat OpenShift Containerized Applications At Enterprise ScaleSecuring Red Hat OpenShift Containerized Applications At Enterprise Scale
Securing Red Hat OpenShift Containerized Applications At Enterprise Scale
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
 
{code} and containers
{code} and containers{code} and containers
{code} and containers
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
 
Get Ready for SharePoint 2016
Get Ready for SharePoint 2016Get Ready for SharePoint 2016
Get Ready for SharePoint 2016
 
{code} and Containers - Open Source Infrastructure within Dell Technologies
{code} and Containers - Open Source Infrastructure within Dell Technologies{code} and Containers - Open Source Infrastructure within Dell Technologies
{code} and Containers - Open Source Infrastructure within Dell Technologies
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
 
ETL as a Platform: Pandora Plays Nicely Everywhere with Real-Time Data Pipelines
ETL as a Platform: Pandora Plays Nicely Everywhere with Real-Time Data PipelinesETL as a Platform: Pandora Plays Nicely Everywhere with Real-Time Data Pipelines
ETL as a Platform: Pandora Plays Nicely Everywhere with Real-Time Data Pipelines
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
How to scale your PaaS with OVH infrastructure?
How to scale your PaaS with OVH infrastructure?How to scale your PaaS with OVH infrastructure?
How to scale your PaaS with OVH infrastructure?
 

Kürzlich hochgeladen

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

Graph Day 2017 Spring Boot

  • 1. 1 Tinkering the Graph Karthik Karuppaiya, Ten-X Chris Pounds, Expero GraphDay San Francisco 06-17-2017
  • 2. 2 Company Overview1 Problem Overview2 High Level Architecture3 Data Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 3. 3 About Us @karthikkrk https://www.linkedin.com/in/karthikkrk/ 3 Karthik Karuppaiya Sr. Engineering Manager, Data and Analytics Ten-X TEN-X IS HIRING!
  • 4. 4 Ten-X At a Glance
  • 6. © 2017 Expero, Inc. All Rights Reserved © 2017 Expero, Inc. All Rights Reserved WHAT WE DO We bring challenging product ideas to reality. 6 USER EXPERIENCE FOR COMPLEX DOMAINS SOFTWARE MODERNIZATION ASSESSMENTS: TECHNOLOGY / UX / STRATEGY USER RESEARCH GRAPH DATA MODELING & VISUALIZATION PRODUCT INNOVATION & DISCOVERY TRAINING & BOOTCAMPS
  • 7. © 2017 Expero, Inc. All Rights Reserved © 2017 Expero, Inc. All Rights Reserved OPEN SOURCE & LICENSED TECHNOLOGIES 7Behind every great product is a great team. Let’s build something great together.
  • 8. © 2017 Expero, Inc. All Rights Reserved© 2017 Expero, Inc. All Rights Reserved 8 EXPERO INSIGHTS GRAPH DATA ACCELERATORS & TOOLKITS
  • 9. 9 Company Overview1 Problem Overview2 High Level Architecture3 Data Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 10. 10 Data Set Overview • Commercial Real Estate Data • Both Internal and External Datasets - Quality of the data varies significantly • Different types of Data: Transactions, Entities, Individuals, Assets • Relationships are inherently hidden due to the nature of the business
  • 11. 11 Problem Overview • Find the hidden relationships between different entities in Commercial Real Estate Data • Help Business easily analyze the data and gain insights into hidden relationships • Expose Data through easy to consume APIs • Both Data Storage and Data Queries need to scale - start small and add more datasets and users 11
  • 12. 12 Company Overview1 Problem Overview2 High Level Architecture3 Data Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 13. 13 Platform Design Goals • Private Data Center • All Open Source Tools • Ability to Iterate faster • Multi-tenant – one platform for all lines of business and all teams • Easily scalable • Keep it Simple, Stupid
  • 14. 14 Data Storage Graph Database Search Index Containerization API/Application Deployment Java Based API Framework Technologies That power the platform 14
  • 15. 15 JanusGraph • Forked from Titan DB • Support for multiple persistence engines • Integration with Geospatial and text search (Elastic Search) • Implements Apache TinkerPop Gremlin Server • Support For Apache TinkerPop Gremlin Language • Open Source Apache 2.0 Licensing 15
  • 16. 16 Cassandra • Elastic and Linear Scalability with Data Growth • Resiliency to hardware failures • Replication Across Data Centers OLTP and OLAP • Open Source Apache 2.0 Licensing 16
  • 18. 18 Company Overview1 Problem Overview2 High Level Architecture3 Data Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 19. 19 Infrastructure Configuration 19 • 3 Node Cluster • Cassandra and JanusGraph servers are co-hosted • 1 TB SSDs on each Node for a total of 3TB • 16 cores • 128 GB total Memory - Ability to scale vertically as we grow • RHEL 7.3 • Stand alone Elastic Search Cluster for text indexing
  • 20. 20 Infrastructure Deployment Configuration • Use Ansbile for Janus and Cassandra deployment • Configuration Expressed as YML • Declarative Representation of Deployment • Agentless, only requires python2.7 on host • Simple for small teams • Consistently reproduce the environment 20
  • 21. 21 Company Overview1 Problem Overview2 High Level Architecture3 Data Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 22. 22 API Layer • Create Read Only APIs that serves the data to the applications • Use Spring Boot for API Development • Use Docker and Mesos for scalable API layer • Publishes feedback information to Kafka that goes through the pipeline again
  • 23. 23 Spring Boot • Embedded HTTP Server • Simple Application Configuration • Easy to design REST endpoints • Ease of Testing • Java based (Apache TinkerPop Gremlin Language Variant) 23
  • 24. 24 Docker • Simplifies Integration Testing • Application deployed as generic unit (Containers) • Configuration provided through environment variables • Easy to setup developer environment 24
  • 25. 25 Mesos/Marathon • Scalability: Easy to scale as the load increases. Supports both Horizontal and vertical scaling on a cluster of machines. • Resiliency: If a container dies, Mesos will act on it as necessary and spawn a new container. • Multi-Tenancy: Easy to control how resources are used. Prioritize Job’s access to limited Resources. • Service Discovery and Load Balancing: Easy to load balance and allow services to be discovered automatically. • Health Check: Out of the box health checks. 25
  • 26. 26 Company Overview1 Problem Overview2 High Level Architecture3 Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 28. 28 Company Overview1 Problem Overview2 High Level Architecture3 Infrastructure Details4 API Implementation Details5 Live Demo6 Agenda Conclusion7
  • 29. 29 Concluding Thoughts.. • Start Simple - Do not over engineer • Build a solid CI/CD pipeline - makes development faster • Ensure developers can work in parallel • Sample Demo code available here: • https://github.com/experoinc/spring-boot-graph-day • https://github.com/experoinc/dropwizard-tinkerpop 29
  • 30. 30 Karthik Karuppaiya @karthikkrk https://www.linkedin.com/in/karthikkrk/ kkaruppaiya@ten-x.com Ten-X IS HIRING! Thank you! Q & A Chris Pounds https://github.com/chrislbs https://www.linkedin.com/in/chrislbs/ chris.pounds@experoinc.com