SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Develop	
  modern	
  apps	
  using	
  
Spring	
  ecosystem	
  at	
  BigData	
  era	
  
LEAD	
  SOFTWARE	
  ENGINEER	
  AT	
  EPAM	
  SYSTEMS.	
  
PATIONATE	
  DEVELOPER,	
  SPEAKER,	
  ACTIVE	
  MEMBER	
  OF	
  KIEV	
  
JUG.	
  
PARTICIPATE	
  IN	
  DIFFERENT	
  EDUCATIONAL	
  INITIATIVES,	
  
ENGINEERING	
  EVENTS	
  AND	
  JCP/ADOPTJSR	
  PROGRAMS.	
  
	
  
OLEG TSAL-TSALKO
ABOUT ME
Spring	
  	
  
for	
  a	
  long	
  Mme	
  	
  
no	
  more	
  than	
  	
  
just	
  a	
  Framework	
  
Spring	
  Boot	
  
•  General	
  purpose	
  plaRorm	
  for	
  Web	
  app	
  and	
  
client	
  app	
  development	
  which	
  makes	
  complex	
  
apps	
  development	
  look	
  easy	
  	
  
•  Rapid	
  development	
  of	
  diff	
  type	
  applicaMons	
  
based	
  on	
  solid	
  Spring	
  foundaMon	
  
•  No	
  boilerplate	
  code.	
  You	
  write	
  only	
  needfull/
funcMonal	
  code.	
  Spring	
  knows	
  beVer	
  how	
  
make	
  it	
  all	
  work.	
  
•  Nevertheless	
  easy	
  to	
  customize	
  and	
  extend	
  
•  Simple	
  and	
  robust	
  dependency	
  management	
  
[DEMO:]	
  Tweets	
  Boot	
  Data	
  REST	
  app	
  
1.  Basic	
  5	
  mins	
  Boot	
  Data	
  Rest	
  app	
  which	
  simply	
  works!	
  
2.  Lets	
  add	
  logging	
  and	
  external	
  properMes	
  support	
  
3.  Lets	
  add	
  integraMon	
  tests	
  
4.  Lets	
  add	
  Tweet	
  lifecycle	
  event	
  listeners	
  
5.  Lets	
  add	
  Actuator	
  monitoring	
  support	
  
6.  Lets	
  add	
  much	
  more	
  fields	
  to	
  Tweet	
  enMty	
  
7.  Lets	
  add	
  Tweet	
  compact	
  projecMon	
  
8.  Lets	
  add	
  validaMon	
  
9.  Lets	
  add	
  addiMonal	
  stuff	
  to	
  Tweet	
  HATEOUS	
  json	
  view	
  
10. Lets	
  add	
  more	
  custom	
  queries	
  
11. But	
  beVer	
  do	
  not	
  try	
  to	
  make	
  Java	
  8	
  data	
  and	
  Mme	
  
types	
  work))	
  	
  
Spring	
  XD	
  
•  General	
  purpose	
  plaRorm	
  for	
  developing	
  BigData	
  apps	
  
for	
  data	
  ingesMon,	
  data	
  stream	
  and	
  batch	
  processing,	
  
data	
  export	
  and	
  data	
  analyMcs	
  
•  Scalable	
  and	
  fault	
  tolerant	
  plaRorm	
  in	
  your	
  service	
  
•  DeclaraMve	
  processing	
  workflow	
  development,	
  
deployment	
  and	
  management	
  
•  Huge	
  number	
  of	
  predefined	
  available	
  modules	
  that	
  can	
  
be	
  used	
  straight	
  away	
  to	
  bring	
  your	
  processing	
  
pipelines	
  in	
  life	
  in	
  seconds	
  
•  Easy	
  to	
  extend	
  plaRorm	
  and	
  pluggable	
  custom	
  
modules	
  
•  Build	
  on	
  top	
  of	
  rich	
  and	
  robust	
  Spring	
  foundaMon	
  
Real	
  world	
  example	
  for	
  XD	
  
Raw	
  data	
  is	
  captured	
  from	
  mobile	
  phones	
  in	
  JSON	
  format	
  by	
  a	
  Spring	
  XD	
  cluster	
  	
  
where	
  several	
  processes	
  are	
  performed.	
  	
  
The	
  data	
  is	
  then	
  stored	
  in	
  an	
  HDFS	
  cluster	
  where	
  Spring	
  XD	
  batch	
  jobs	
  use	
  SQL	
  via	
  the	
  HAWQ	
  	
  
interface	
  to	
  HDFS	
  and	
  store	
  the	
  calculated	
  reports	
  in	
  Redis.	
  	
  
Spring	
  Boot	
  is	
  then	
  used	
  with	
  Angular.js	
  and	
  D3.js	
  to	
  show	
  analyMcs	
  to	
  end	
  users.	
  
[DEMO:]	
  Spring	
  XD	
  toy.	
  Play	
  with	
  me!	
  
1.  Show	
  XD	
  bootstrap	
  in	
  singlenode	
  mode	
  and	
  deploy	
  simple	
  
streams.	
  Show	
  XD	
  shell	
  and	
  XD	
  UI	
  usages.	
  
2.  Show	
  XD	
  distributed	
  mode	
  configuraMon	
  with	
  external	
  
Zookeeper,	
  DB	
  and	
  Redis.	
  Show	
  XD	
  meta	
  data	
  in	
  
Zookeeper.	
  Deploy	
  same	
  simple	
  streams	
  on	
  cluster	
  and	
  
show	
  XD	
  cluster	
  fault	
  tolerance	
  and	
  recovery.	
  
3.  Show	
  example	
  of	
  predefined	
  XD	
  module	
  configuraMon	
  
(e.g.	
  hdfs)	
  
4.  Create	
  custom	
  module	
  and	
  upload	
  it	
  into	
  XD	
  
5.  Show	
  DEMO	
  for	
  stream	
  reading	
  tweets	
  from	
  TwiVer	
  and	
  
posMng	
  them	
  into	
  REST	
  client	
  app	
  developed	
  before	
  via	
  
HTTP	
  and	
  wriMng	
  them	
  into	
  HDFS	
  in	
  parallel	
  
Spring	
  XD	
  (out	
  of	
  scope…)	
  
•  Show	
  XD	
  job	
  running	
  over	
  Hadoop	
  
•  Show	
  RabbitMQ	
  integraMon	
  
•  Show	
  DEMO	
  on	
  running	
  either	
  MapReduce	
  
job	
  using	
  Cascading	
  or	
  Pig	
  over	
  HDFS	
  tweets	
  
data	
  OR	
  running	
  Spark	
  app	
  over	
  HDFS	
  tweets	
  
data	
  
Spring	
  Boot/XD	
  enable	
  twelve	
  factor	
  apps	
  
I.	
  Codebase	
  
One	
  codebase	
  tracked	
  in	
  revision	
  control,	
  many	
  deploys	
  
II.	
  Dependencies	
  
Explicitly	
  declare	
  and	
  isolate	
  dependencies	
  
III.	
  Config	
  
Store	
  config	
  in	
  the	
  environment	
  
IV.	
  Backing	
  Services	
  
Treat	
  backing	
  services	
  as	
  aVached	
  resources	
  
V.	
  Build,	
  release,	
  run	
  
Strictly	
  separate	
  build	
  and	
  run	
  stages	
  
VI.	
  Processes	
  
Execute	
  the	
  app	
  as	
  one	
  or	
  more	
  stateless	
  processes	
  
VII.	
  Port	
  binding	
  
Export	
  services	
  via	
  port	
  binding	
  
VIII.	
  Concurrency	
  
Scale	
  out	
  via	
  the	
  process	
  model	
  
IX.	
  Disposability	
  
Maximize	
  robustness	
  with	
  fast	
  startup	
  and	
  graceful	
  shutdown	
  
X.	
  Dev/prod	
  parity	
  
Keep	
  development,	
  staging,	
  and	
  producMon	
  as	
  similar	
  as	
  possible	
  
XI.	
  Logs	
  
Treat	
  logs	
  as	
  event	
  streams	
  
XII.	
  Admin	
  processes	
  
Run	
  admin/management	
  tasks	
  as	
  one-­‐off	
  processes	
  
Everything	
  wasn’t	
  so	
  smooth	
  though…	
  
•  SPEL	
  doesn’t	
  work	
  on	
  filter	
  with	
  JSON	
  elements	
  access	
  implicitly	
  as	
  it	
  works	
  with	
  transformer	
  
module.	
  To	
  make	
  filter	
  work	
  you	
  need	
  either	
  to	
  convert	
  JSON	
  to	
  Tuple	
  or	
  to	
  use	
  JSON	
  Xpath	
  SPEL	
  
syntax	
  
•  When	
  transform	
  JSON	
  into	
  Tuple	
  and	
  back	
  WARNings	
  are	
  thrown	
  on	
  Jackson	
  transformaMon???	
  
•  In	
  order	
  implicit	
  converMon	
  to	
  Tuple	
  works,	
  you	
  need	
  to	
  specify	
  contentType	
  MIME	
  header	
  in	
  HTTP	
  
request	
  otherwise	
  it	
  can’t	
  automaMcally	
  cast	
  text/plain	
  MIME	
  message	
  to	
  Tuple	
  
•  	
  If	
  you	
  deploy	
  hVp	
  module	
  on	
  port	
  which	
  is	
  occupied	
  it	
  won’t	
  fail	
  on	
  deploy	
  but	
  your	
  stream	
  will	
  
simply	
  silently	
  not	
  work	
  
•  SomeMmes	
  container	
  gets	
  broken	
  and	
  smth	
  stops	
  to	
  work	
  like	
  Taps	
  in	
  my	
  case	
  for	
  example	
  and	
  no	
  
errors	
  in	
  logs.	
  Only	
  container	
  restart	
  helps.	
  
•  Spring	
  data	
  rest	
  doesn’t	
  expose	
  enMty	
  IDs	
  in	
  JSON	
  body	
  by	
  default	
  
•  When	
  Mongo	
  enMty	
  save	
  operaMon	
  failing	
  	
  as	
  a	
  result	
  of	
  HTTP	
  call	
  no	
  excepMons	
  visible	
  in	
  logs,	
  just	
  
500	
  ERROR	
  response	
  to	
  client	
  without	
  proper	
  stack	
  trace,	
  however	
  if	
  you	
  call	
  MongoTemplate	
  
directly	
  you’ll	
  get	
  proper	
  stack	
  trace.	
  
•  If	
  HTTP	
  GET	
  request	
  contentType=applicaMon/json	
  then	
  response	
  will	
  be	
  rendered	
  as	
  applicaMon/x-­‐
spring-­‐data-­‐compact+json,	
  when	
  by	
  default	
  it	
  will	
  be	
  HAL	
  document	
  
•  By	
  default	
  HVp	
  POST	
  request	
  set	
  contentType=text/plain	
  which	
  failed	
  to	
  be	
  transformed	
  into	
  enMty	
  
•  hVp://wiki.fasterxml.com/JacksonFAQDateHandling	
  
•  hVps://github.com/FasterXML/jackson-­‐datatype-­‐jsr310	
  
•  Mongo	
  doesn’t	
  support	
  Java	
  8	
  Date	
  and	
  Time	
  types	
  naMvely	
  
•  hVps://jira.spring.io/browse/DATAREST-­‐524	
  
•  hVp://stackoverflow.com/quesMons/25072967/spring-­‐xd-­‐redis-­‐message-­‐bus-­‐removing-­‐headers-­‐
from-­‐the-­‐message	
  issue	
  with	
  headers	
  passing	
  in	
  Redis	
  
•  SpringXD	
  doesn’t	
  support	
  packages	
  starMng	
  with	
  ‘java’))!!!	
  
Links	
  
•  Spring	
  -­‐	
  hVp://spring.io	
  
•  Zookeeper	
  -­‐	
  
hVp://zookeeper.apache.org/doc/trunk/zookeeperStarted.html	
  
•  Hadoop	
  -­‐	
  
hVp://hadoop.apache.org/docs/r2.7.1/hadoop-­‐project-­‐dist/hadoop-­‐
common/SingleCluster.html	
  
•  XD	
  -­‐	
  
hVp://docs.spring.io/spring-­‐xd/docs/current-­‐SNAPSHOT/reference/html	
  
•  Boot	
  -­‐	
  
hVp://docs.spring.io/autorepo/docs/spring-­‐boot/1.2.0.M2/reference/
htmlsingle/	
  
•  DataRest	
  -­‐	
  
hVp://docs.spring.io/spring-­‐data/rest/docs/2.3.2.RELEASE/reference/
html/	
  
•  Redis	
  -­‐	
  hVp://redis.io/documentaMon	
  
•  RestTemplate	
  -­‐	
  
hVps://spring.io/blog/2009/03/27/rest-­‐in-­‐spring-­‐3-­‐resVemplate	
  	
  
Thank	
  you!	
  
TwiVer:	
  @tsaltsol	
  
Skype:	
  oleg.tsalko	
  
GitHub:	
  olegts	
  
	
  
Code	
  shown:	
  
hVps://github.com/olegts/
SpringXDCustomTweetsTransformer	
  
hVps://github.com/olegts/TweetsBootDataRestApp	
  
	
  

Contenu connexe

Tendances

Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosColleen Lee
 
Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...Brennan Saeta
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformJeffrey T. Fritz
 
Cloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveCloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveDave McCrory
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionColdFusionConference
 
QEWD.js: Have your Node.js Cake and Eat It Too
QEWD.js: Have your Node.js Cake and Eat It TooQEWD.js: Have your Node.js Cake and Eat It Too
QEWD.js: Have your Node.js Cake and Eat It TooRob Tweed
 
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTimingDebugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTimingNicholas Jansma
 
A look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureA look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureAimee Maree Forsstrom
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the CloudRyan Cuprak
 
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Servicesewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST ServicesRob Tweed
 
Serverless and Kubernetes Workshop on IBM Cloud
Serverless and Kubernetes Workshop on IBM CloudServerless and Kubernetes Workshop on IBM Cloud
Serverless and Kubernetes Workshop on IBM CloudAnsgar Schmidt
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Gavin Pickin
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Js engine performance
Js engine performanceJs engine performance
Js engine performancepaullfc
 
Php Performance On Windows
Php Performance On WindowsPhp Performance On Windows
Php Performance On Windowsruslany
 
Filesystems
FilesystemsFilesystems
Filesystemsroyans
 

Tendances (20)

Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
 
Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...
 
Securing Legacy CFML Code
Securing Legacy CFML CodeSecuring Legacy CFML Code
Securing Legacy CFML Code
 
Proposal
ProposalProposal
Proposal
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
Cloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveCloud Foundry a Developer's Perspective
Cloud Foundry a Developer's Perspective
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
 
QEWD.js: Have your Node.js Cake and Eat It Too
QEWD.js: Have your Node.js Cake and Eat It TooQEWD.js: Have your Node.js Cake and Eat It Too
QEWD.js: Have your Node.js Cake and Eat It Too
 
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTimingDebugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
A look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureA look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architecture
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the Cloud
 
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Servicesewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
 
Serverless and Kubernetes Workshop on IBM Cloud
Serverless and Kubernetes Workshop on IBM CloudServerless and Kubernetes Workshop on IBM Cloud
Serverless and Kubernetes Workshop on IBM Cloud
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Js engine performance
Js engine performanceJs engine performance
Js engine performance
 
Php Performance On Windows
Php Performance On WindowsPhp Performance On Windows
Php Performance On Windows
 
Filesystems
FilesystemsFilesystems
Filesystems
 

En vedette

El ideal gallego cada español debe 23332 euros por la deuda pública, casi un...
El ideal gallego  cada español debe 23332 euros por la deuda pública, casi un...El ideal gallego  cada español debe 23332 euros por la deuda pública, casi un...
El ideal gallego cada español debe 23332 euros por la deuda pública, casi un...Marta Gámez Medina
 
การศึกษาวิธีการจัดการเรียนการสอน
การศึกษาวิธีการจัดการเรียนการสอนการศึกษาวิธีการจัดการเรียนการสอน
การศึกษาวิธีการจัดการเรียนการสอนAnusara Monta
 
Muslim Jobs (English Presentation)
Muslim Jobs (English Presentation)Muslim Jobs (English Presentation)
Muslim Jobs (English Presentation)Andrei Rasskazov
 
JUG UA AdoptJSR participation
JUG UA AdoptJSR participationJUG UA AdoptJSR participation
JUG UA AdoptJSR participationOleg Tsal-Tsalko
 
มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕
มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕
มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕Boonlert Aroonpiboon
 
Business Case and Costing for RDM
Business Case and Costing for RDMBusiness Case and Costing for RDM
Business Case and Costing for RDMJisc RDM
 

En vedette (9)

Adil_Abdulla CV
Adil_Abdulla CVAdil_Abdulla CV
Adil_Abdulla CV
 
Vassallo_CV_26Jan2016
Vassallo_CV_26Jan2016Vassallo_CV_26Jan2016
Vassallo_CV_26Jan2016
 
El ideal gallego cada español debe 23332 euros por la deuda pública, casi un...
El ideal gallego  cada español debe 23332 euros por la deuda pública, casi un...El ideal gallego  cada español debe 23332 euros por la deuda pública, casi un...
El ideal gallego cada español debe 23332 euros por la deuda pública, casi un...
 
การศึกษาวิธีการจัดการเรียนการสอน
การศึกษาวิธีการจัดการเรียนการสอนการศึกษาวิธีการจัดการเรียนการสอน
การศึกษาวิธีการจัดการเรียนการสอน
 
Muslim Jobs (English Presentation)
Muslim Jobs (English Presentation)Muslim Jobs (English Presentation)
Muslim Jobs (English Presentation)
 
Intro ihm
Intro ihmIntro ihm
Intro ihm
 
JUG UA AdoptJSR participation
JUG UA AdoptJSR participationJUG UA AdoptJSR participation
JUG UA AdoptJSR participation
 
มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕
มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕
มรดกภูมิปัญญาทางวัฒนธรรมของชาติ ๒๕๕๕
 
Business Case and Costing for RDM
Business Case and Costing for RDMBusiness Case and Costing for RDM
Business Case and Costing for RDM
 

Similaire à Develop modern apps using Spring ecosystem at time of BigData

Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)VMware Tanzu
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
A Happy Cloud Friendly Java Developer with OpenShift
A Happy Cloud Friendly Java Developer with OpenShiftA Happy Cloud Friendly Java Developer with OpenShift
A Happy Cloud Friendly Java Developer with OpenShiftShekhar Gulati
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionSteve Hogg
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stackJohan Edstrom
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APIVictorSzoltysek
 
SpringOne 2016 in a nutshell
SpringOne 2016 in a nutshellSpringOne 2016 in a nutshell
SpringOne 2016 in a nutshellJeroen Resoort
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShiftSteven Pousty
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Vinay Kumar
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Slobodan Lohja
 
Kalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect GuideKalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect GuideKalp Corporate
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN StackRob Davarnia
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
 

Similaire à Develop modern apps using Spring ecosystem at time of BigData (20)

Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
A Happy Cloud Friendly Java Developer with OpenShift
A Happy Cloud Friendly Java Developer with OpenShiftA Happy Cloud Friendly Java Developer with OpenShift
A Happy Cloud Friendly Java Developer with OpenShift
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Nodejs
NodejsNodejs
Nodejs
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
 
Meanstack overview
Meanstack overviewMeanstack overview
Meanstack overview
 
SpringOne 2016 in a nutshell
SpringOne 2016 in a nutshellSpringOne 2016 in a nutshell
SpringOne 2016 in a nutshell
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021
 
Kalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect GuideKalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect Guide
 
NodeJS
NodeJSNodeJS
NodeJS
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 

Plus de Oleg Tsal-Tsalko

Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)Oleg Tsal-Tsalko
 
From Streams to Reactive Streams
From Streams to Reactive StreamsFrom Streams to Reactive Streams
From Streams to Reactive StreamsOleg Tsal-Tsalko
 
Java 8 date & time javaday2014
Java 8 date & time javaday2014Java 8 date & time javaday2014
Java 8 date & time javaday2014Oleg Tsal-Tsalko
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration PatternsOleg Tsal-Tsalko
 
Distributed systems and scalability rules
Distributed systems and scalability rulesDistributed systems and scalability rules
Distributed systems and scalability rulesOleg Tsal-Tsalko
 
JUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR programJUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR programOleg Tsal-Tsalko
 

Plus de Oleg Tsal-Tsalko (13)

Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)
 
Developer on a mission
Developer on a missionDeveloper on a mission
Developer on a mission
 
From Streams to Reactive Streams
From Streams to Reactive StreamsFrom Streams to Reactive Streams
From Streams to Reactive Streams
 
Java 9 Jigsaw HackDay
Java 9 Jigsaw HackDayJava 9 Jigsaw HackDay
Java 9 Jigsaw HackDay
 
Java 8 features
Java 8 featuresJava 8 features
Java 8 features
 
Lambdas HOL
Lambdas HOLLambdas HOL
Lambdas HOL
 
Java 8 date & time javaday2014
Java 8 date & time javaday2014Java 8 date & time javaday2014
Java 8 date & time javaday2014
 
Java 8 date & time
Java 8 date & timeJava 8 date & time
Java 8 date & time
 
Get ready for spring 4
Get ready for spring 4Get ready for spring 4
Get ready for spring 4
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Distributed systems and scalability rules
Distributed systems and scalability rulesDistributed systems and scalability rules
Distributed systems and scalability rules
 
Next stop: Spring 4
Next stop: Spring 4Next stop: Spring 4
Next stop: Spring 4
 
JUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR programJUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR program
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
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.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Dernier (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

Develop modern apps using Spring ecosystem at time of BigData

  • 1. Develop  modern  apps  using   Spring  ecosystem  at  BigData  era  
  • 2. LEAD  SOFTWARE  ENGINEER  AT  EPAM  SYSTEMS.   PATIONATE  DEVELOPER,  SPEAKER,  ACTIVE  MEMBER  OF  KIEV   JUG.   PARTICIPATE  IN  DIFFERENT  EDUCATIONAL  INITIATIVES,   ENGINEERING  EVENTS  AND  JCP/ADOPTJSR  PROGRAMS.     OLEG TSAL-TSALKO ABOUT ME
  • 3. Spring     for  a  long  Mme     no  more  than     just  a  Framework  
  • 4.
  • 5.
  • 6. Spring  Boot   •  General  purpose  plaRorm  for  Web  app  and   client  app  development  which  makes  complex   apps  development  look  easy     •  Rapid  development  of  diff  type  applicaMons   based  on  solid  Spring  foundaMon   •  No  boilerplate  code.  You  write  only  needfull/ funcMonal  code.  Spring  knows  beVer  how   make  it  all  work.   •  Nevertheless  easy  to  customize  and  extend   •  Simple  and  robust  dependency  management  
  • 7. [DEMO:]  Tweets  Boot  Data  REST  app   1.  Basic  5  mins  Boot  Data  Rest  app  which  simply  works!   2.  Lets  add  logging  and  external  properMes  support   3.  Lets  add  integraMon  tests   4.  Lets  add  Tweet  lifecycle  event  listeners   5.  Lets  add  Actuator  monitoring  support   6.  Lets  add  much  more  fields  to  Tweet  enMty   7.  Lets  add  Tweet  compact  projecMon   8.  Lets  add  validaMon   9.  Lets  add  addiMonal  stuff  to  Tweet  HATEOUS  json  view   10. Lets  add  more  custom  queries   11. But  beVer  do  not  try  to  make  Java  8  data  and  Mme   types  work))    
  • 8.
  • 9. Spring  XD   •  General  purpose  plaRorm  for  developing  BigData  apps   for  data  ingesMon,  data  stream  and  batch  processing,   data  export  and  data  analyMcs   •  Scalable  and  fault  tolerant  plaRorm  in  your  service   •  DeclaraMve  processing  workflow  development,   deployment  and  management   •  Huge  number  of  predefined  available  modules  that  can   be  used  straight  away  to  bring  your  processing   pipelines  in  life  in  seconds   •  Easy  to  extend  plaRorm  and  pluggable  custom   modules   •  Build  on  top  of  rich  and  robust  Spring  foundaMon  
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Real  world  example  for  XD   Raw  data  is  captured  from  mobile  phones  in  JSON  format  by  a  Spring  XD  cluster     where  several  processes  are  performed.     The  data  is  then  stored  in  an  HDFS  cluster  where  Spring  XD  batch  jobs  use  SQL  via  the  HAWQ     interface  to  HDFS  and  store  the  calculated  reports  in  Redis.     Spring  Boot  is  then  used  with  Angular.js  and  D3.js  to  show  analyMcs  to  end  users.  
  • 16. [DEMO:]  Spring  XD  toy.  Play  with  me!   1.  Show  XD  bootstrap  in  singlenode  mode  and  deploy  simple   streams.  Show  XD  shell  and  XD  UI  usages.   2.  Show  XD  distributed  mode  configuraMon  with  external   Zookeeper,  DB  and  Redis.  Show  XD  meta  data  in   Zookeeper.  Deploy  same  simple  streams  on  cluster  and   show  XD  cluster  fault  tolerance  and  recovery.   3.  Show  example  of  predefined  XD  module  configuraMon   (e.g.  hdfs)   4.  Create  custom  module  and  upload  it  into  XD   5.  Show  DEMO  for  stream  reading  tweets  from  TwiVer  and   posMng  them  into  REST  client  app  developed  before  via   HTTP  and  wriMng  them  into  HDFS  in  parallel  
  • 17.
  • 18. Spring  XD  (out  of  scope…)   •  Show  XD  job  running  over  Hadoop   •  Show  RabbitMQ  integraMon   •  Show  DEMO  on  running  either  MapReduce   job  using  Cascading  or  Pig  over  HDFS  tweets   data  OR  running  Spark  app  over  HDFS  tweets   data  
  • 19. Spring  Boot/XD  enable  twelve  factor  apps   I.  Codebase   One  codebase  tracked  in  revision  control,  many  deploys   II.  Dependencies   Explicitly  declare  and  isolate  dependencies   III.  Config   Store  config  in  the  environment   IV.  Backing  Services   Treat  backing  services  as  aVached  resources   V.  Build,  release,  run   Strictly  separate  build  and  run  stages   VI.  Processes   Execute  the  app  as  one  or  more  stateless  processes   VII.  Port  binding   Export  services  via  port  binding   VIII.  Concurrency   Scale  out  via  the  process  model   IX.  Disposability   Maximize  robustness  with  fast  startup  and  graceful  shutdown   X.  Dev/prod  parity   Keep  development,  staging,  and  producMon  as  similar  as  possible   XI.  Logs   Treat  logs  as  event  streams   XII.  Admin  processes   Run  admin/management  tasks  as  one-­‐off  processes  
  • 20. Everything  wasn’t  so  smooth  though…   •  SPEL  doesn’t  work  on  filter  with  JSON  elements  access  implicitly  as  it  works  with  transformer   module.  To  make  filter  work  you  need  either  to  convert  JSON  to  Tuple  or  to  use  JSON  Xpath  SPEL   syntax   •  When  transform  JSON  into  Tuple  and  back  WARNings  are  thrown  on  Jackson  transformaMon???   •  In  order  implicit  converMon  to  Tuple  works,  you  need  to  specify  contentType  MIME  header  in  HTTP   request  otherwise  it  can’t  automaMcally  cast  text/plain  MIME  message  to  Tuple   •   If  you  deploy  hVp  module  on  port  which  is  occupied  it  won’t  fail  on  deploy  but  your  stream  will   simply  silently  not  work   •  SomeMmes  container  gets  broken  and  smth  stops  to  work  like  Taps  in  my  case  for  example  and  no   errors  in  logs.  Only  container  restart  helps.   •  Spring  data  rest  doesn’t  expose  enMty  IDs  in  JSON  body  by  default   •  When  Mongo  enMty  save  operaMon  failing    as  a  result  of  HTTP  call  no  excepMons  visible  in  logs,  just   500  ERROR  response  to  client  without  proper  stack  trace,  however  if  you  call  MongoTemplate   directly  you’ll  get  proper  stack  trace.   •  If  HTTP  GET  request  contentType=applicaMon/json  then  response  will  be  rendered  as  applicaMon/x-­‐ spring-­‐data-­‐compact+json,  when  by  default  it  will  be  HAL  document   •  By  default  HVp  POST  request  set  contentType=text/plain  which  failed  to  be  transformed  into  enMty   •  hVp://wiki.fasterxml.com/JacksonFAQDateHandling   •  hVps://github.com/FasterXML/jackson-­‐datatype-­‐jsr310   •  Mongo  doesn’t  support  Java  8  Date  and  Time  types  naMvely   •  hVps://jira.spring.io/browse/DATAREST-­‐524   •  hVp://stackoverflow.com/quesMons/25072967/spring-­‐xd-­‐redis-­‐message-­‐bus-­‐removing-­‐headers-­‐ from-­‐the-­‐message  issue  with  headers  passing  in  Redis   •  SpringXD  doesn’t  support  packages  starMng  with  ‘java’))!!!  
  • 21. Links   •  Spring  -­‐  hVp://spring.io   •  Zookeeper  -­‐   hVp://zookeeper.apache.org/doc/trunk/zookeeperStarted.html   •  Hadoop  -­‐   hVp://hadoop.apache.org/docs/r2.7.1/hadoop-­‐project-­‐dist/hadoop-­‐ common/SingleCluster.html   •  XD  -­‐   hVp://docs.spring.io/spring-­‐xd/docs/current-­‐SNAPSHOT/reference/html   •  Boot  -­‐   hVp://docs.spring.io/autorepo/docs/spring-­‐boot/1.2.0.M2/reference/ htmlsingle/   •  DataRest  -­‐   hVp://docs.spring.io/spring-­‐data/rest/docs/2.3.2.RELEASE/reference/ html/   •  Redis  -­‐  hVp://redis.io/documentaMon   •  RestTemplate  -­‐   hVps://spring.io/blog/2009/03/27/rest-­‐in-­‐spring-­‐3-­‐resVemplate    
  • 22. Thank  you!   TwiVer:  @tsaltsol   Skype:  oleg.tsalko   GitHub:  olegts     Code  shown:   hVps://github.com/olegts/ SpringXDCustomTweetsTransformer   hVps://github.com/olegts/TweetsBootDataRestApp