SlideShare a Scribd company logo
GeoScience and µServices
Background
▌ Landmark would be one of the top 50 largest software companies
▌ Scientific and Engineering software for Energy sector
 Exploration
 Construction
 Production
▌ Neftex
 Exploration
What kind of developer are you?
▌ Experienced with Java (since 1.1 which is ~1998)
▌ Python hacker (what other kind is there?)
▌ Javascript noob (!! How hard can it be? Typescript, Uglify)
▌ Fortran deny all (literally don’t tell anyone)
▌ C++ dangerous (enough to be)
▌ C# not much (linux?)
▌ Wrote much UI and Server Architecture 
History Lesson
Happy Developers?
▌ Modern Programming Languages like Java and Python
 Developers became happy
 They write more code
Thing Why we liked it? What Happened?
3G/4G
Languages
(Java, C#, Python, C++)
Manage memory,
Powerful APIs, UI
toolkits
We wrote lots of code
IDEs
(Xemacs, JCreator,
Eclipse, IntelliJ,
VisualStudio)
It make our code
more colourful and
we could write more
We wrote lots of code
Frameworks
(RCP, Struts, JSF,
Django, ASP, etc. etc.)
Do more stuff,
Organise things
We wrote lots of code and
it was more efficient
Incremental
Programs
(OSGi, Jigsaw, etc.)
Our massive
programs still worked
We wrote lots of code and
it didn’t all have to fit in
memory!!
Introducing the Monolith
▌ Single Tier Software Application
▌ Horizontal Approach to Features
▌ Modularity is Code-Based
▌ Examples:
 Scientific Desktop Application
 Some Types of Server Application
− Thick client
− Multiple web page single server
Some problems I have hit with…
▌ Developers working horizontally, less efficiently
▌ Encapsulation of modules – entropy increases
▌ Multiple APIs doing the same task
 CORBA/RMI/JMS
 Swing/SWT/JavaFX
 DOM+SAX/Xpath/Castor/Gson/Jackson
▌ Ability to scale in various directions (scale cube)
▌ And… Deployment / Testing / Understanding / Agility
Despite all this
 Powerful,
 Well used and understood,
 Profitable
Monolithic, or nearly monolithic, software
Some I think which can be okay with…
▌Testing
 Well defined interactions
 Limited set of interoperable features
▌OSGi Services – one monolith multiple services
▌Developer ownership, interoperability
▌Cost
Monolithic, or nearly monolithic, software
Summary
▌ We have lots and lots and lots of code
▌ We find it hard to change it
▌ Customers/Users get
 releases infrequently
 more defects
 lower scale solutions
 …depressed
Service Oriented Architecture (SOA)
▌ Application is a collection of loosely coupled services
▌ One service
 Logically represents a business activity with a specified outcome.
 Self-contained.
 black box for its consumers.
 May consist of other underlying services
▌ Idea been around in one form or another since early 2000’s
µServices are one type of SOA
µServices
▌ Fine grained and light weight
▌ Modularity is enforced, each component easy to understand, develop
and test
▌ Small autonomous development teams
 Vertical development rather than horizontal
 Less for one developer to deal with / understand / have to compile
▌ IMPORTANT Services can scale independently and on the fly
▌ Technology choices weakly linked and easy to change
Team structure
 Product Management (exactly 1)
 Development Lead (exactly 1)
 Developers (1-10) (UI, µservice, database)
 Testing (0-3)
 UX (As needed)
 DevOps (1)
 Architect (As needed)
This is all very well but…
▌ How do we apply it to scientific algorithms?
▌ How will they scale?
 Different algorithms have different requirements
 Scale out in the cloud
▌ What kind of cloud? We are looking at DC/OS, Kubernetes and native:
AWS, Azure, Google Cloud etc.
▌ What about Big Data?
Case Study – Automatic Lithostratigraphy
▌ Python Research Code
 Machine learning
 Parallelizable algorithm each python process can work on one part of the problem
prediction
▌ Java µService using JSON-REST and Kafka deployed in a Jetty Server to a docker container
▌ Large amounts of data but highly parallel each run being only O(10)xO(100,000), for instance
9 1D datasets of size 25,000.
▌ Scale in:
 Y - (web service front end and data splitter) + (analysis)
 X - Many (analysis) processes
 Z – No need to scale
Standard Python Project Containing
R&D Code
Module for exposing running one facet
of the code by Kafka message
(competitive consumer)
A readme / getting started and other docs are
contained in the project
Jenkins build runs the tests and
deploys the python consumer to the
cluster as a docker image
Python client
µservice code using JSON-REST Spring
Boot, etc
Self contained set of unit tests and resources
Separate build which
• Downloads dependencies for developer
• Builds on Jenkins a ‘fat’ jar
• Deploys to DCOS
The build is deployed to docker image for
running on the cluster
A readme / getting started and other docs are
contained in the project
2ms
▌ Binary artifacts can be published and consumed = modularity old skool
 E.g. IO packages
▌ µservice design patterns
 E.g. Aggregator
Bit of an side note: Artifactory and Aggregation
20ms
20ms 20ms
2ms
= 62ms
2ms
20ms
2ms
= 28ms
2ms
Aggregator
▌ week6-alith-zoom.png1
Results of autolith in plotly (one prediction)
Thanks!
▌ Landmark for moving to microservices
▌ Gael and the team for organising the conference
▌ Devs and product management
▌ YOU for listening

More Related Content

What's hot

Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)
Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)
Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)
Igalia
 
MER: a Minimal Named-Entity Recognition Tagger and Annotation Server
MER: a Minimal Named-Entity Recognition Tagger and Annotation ServerMER: a Minimal Named-Entity Recognition Tagger and Annotation Server
MER: a Minimal Named-Entity Recognition Tagger and Annotation Server
Francisco Couto
 
Grilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentGrilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia Content
Juan A. Suárez Romero
 
A Shallow Survey of Alternative Languages on the JVM
A Shallow Survey of Alternative Languages on the JVMA Shallow Survey of Alternative Languages on the JVM
A Shallow Survey of Alternative Languages on the JVM
Charles Anderson
 
Four Python Pains
Four Python PainsFour Python Pains
Four Python Pains
Stefane Fermigier
 
Agile Tools for PHP
Agile Tools for PHPAgile Tools for PHP
Agile Tools for PHP
philipjting
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
Manuel Correa
 
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
PROIDEA
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Aurélien Pupier
 
.Net overview
.Net overview.Net overview
.Net overviewmadydud
 
Typescript language
Typescript languageTypescript language
Typescript language
.NET Crowd
 
Rubinius - Ruby Implemented with Ruby
Rubinius - Ruby Implemented with RubyRubinius - Ruby Implemented with Ruby
Rubinius - Ruby Implemented with Ruby
Akanksha Agrawal
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional way
Thoughtworks
 
hexMachina WWX 2016
hexMachina WWX 2016hexMachina WWX 2016
hexMachina WWX 2016
Francis Bourre
 
Getting Started with PHP Extensions
Getting Started with PHP ExtensionsGetting Started with PHP Extensions
Getting Started with PHP Extensions
MichaelBrunoLochemem
 
what is .net
what is .netwhat is .net
what is .net
Sireesh K
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional way
nluaces
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components
Shimon Tolts
 
effective java
effective javaeffective java
effective java
tdc-globalcode
 
2018 (codeone) type safe approach to invoking restful services with microprof...
2018 (codeone) type safe approach to invoking restful services with microprof...2018 (codeone) type safe approach to invoking restful services with microprof...
2018 (codeone) type safe approach to invoking restful services with microprof...
César Hernández
 

What's hot (20)

Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)
Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)
Overview and Status of LibreOffice Accessibility (LibreOffice Conference 2014)
 
MER: a Minimal Named-Entity Recognition Tagger and Annotation Server
MER: a Minimal Named-Entity Recognition Tagger and Annotation ServerMER: a Minimal Named-Entity Recognition Tagger and Annotation Server
MER: a Minimal Named-Entity Recognition Tagger and Annotation Server
 
Grilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentGrilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia Content
 
A Shallow Survey of Alternative Languages on the JVM
A Shallow Survey of Alternative Languages on the JVMA Shallow Survey of Alternative Languages on the JVM
A Shallow Survey of Alternative Languages on the JVM
 
Four Python Pains
Four Python PainsFour Python Pains
Four Python Pains
 
Agile Tools for PHP
Agile Tools for PHPAgile Tools for PHP
Agile Tools for PHP
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
 
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...
 
.Net overview
.Net overview.Net overview
.Net overview
 
Typescript language
Typescript languageTypescript language
Typescript language
 
Rubinius - Ruby Implemented with Ruby
Rubinius - Ruby Implemented with RubyRubinius - Ruby Implemented with Ruby
Rubinius - Ruby Implemented with Ruby
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional way
 
hexMachina WWX 2016
hexMachina WWX 2016hexMachina WWX 2016
hexMachina WWX 2016
 
Getting Started with PHP Extensions
Getting Started with PHP ExtensionsGetting Started with PHP Extensions
Getting Started with PHP Extensions
 
what is .net
what is .netwhat is .net
what is .net
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional way
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components
 
effective java
effective javaeffective java
effective java
 
2018 (codeone) type safe approach to invoking restful services with microprof...
2018 (codeone) type safe approach to invoking restful services with microprof...2018 (codeone) type safe approach to invoking restful services with microprof...
2018 (codeone) type safe approach to invoking restful services with microprof...
 

Similar to Geoscience and Microservices

DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
Cisco DevNet
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?Mark Russell
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
Maarten Balliauw
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
Open Source IoT Project Flogo - Introduction, Overview and Architecture
Open Source IoT Project Flogo - Introduction, Overview and ArchitectureOpen Source IoT Project Flogo - Introduction, Overview and Architecture
Open Source IoT Project Flogo - Introduction, Overview and Architecture
Kai Wähner
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Nedelcho Delchev
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
James Williams
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
Ron Perlmuter
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
Linaro
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
Khaled Mosharraf
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Ambassador Labs
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
All Things Open
 
GlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices togetherGlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices together
Restlet
 
Go at uber
Go at uberGo at uber
Go at uber
Rob Skillington
 
Cont0519
Cont0519Cont0519
Cont0519
Samuel Dratwa
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
Brian Christner
 
Nodejs
NodejsNodejs
Project Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseProject Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the Enterprise
Leon Stigter
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
suneel singh
 

Similar to Geoscience and Microservices (20)

DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Open Source IoT Project Flogo - Introduction, Overview and Architecture
Open Source IoT Project Flogo - Introduction, Overview and ArchitectureOpen Source IoT Project Flogo - Introduction, Overview and Architecture
Open Source IoT Project Flogo - Introduction, Overview and Architecture
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
GlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices togetherGlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices together
 
Go at uber
Go at uberGo at uber
Go at uber
 
Cont0519
Cont0519Cont0519
Cont0519
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Nodejs
NodejsNodejs
Nodejs
 
Project Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseProject Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the Enterprise
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 

More from Matthew Gerring

Presented at GeoCon 2015
Presented at GeoCon 2015Presented at GeoCon 2015
Presented at GeoCon 2015
Matthew Gerring
 
Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016
Matthew Gerring
 
Eclipse RCP for Synchrotron Science
Eclipse RCP for Synchrotron ScienceEclipse RCP for Synchrotron Science
Eclipse RCP for Synchrotron Science
Matthew Gerring
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
Matthew Gerring
 
Demo eclipse science
Demo eclipse scienceDemo eclipse science
Demo eclipse science
Matthew Gerring
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
Matthew Gerring
 
Demo Eclipse Science
Demo Eclipse ScienceDemo Eclipse Science
Demo Eclipse Science
Matthew Gerring
 

More from Matthew Gerring (7)

Presented at GeoCon 2015
Presented at GeoCon 2015Presented at GeoCon 2015
Presented at GeoCon 2015
 
Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016
 
Eclipse RCP for Synchrotron Science
Eclipse RCP for Synchrotron ScienceEclipse RCP for Synchrotron Science
Eclipse RCP for Synchrotron Science
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
Demo eclipse science
Demo eclipse scienceDemo eclipse science
Demo eclipse science
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
 
Demo Eclipse Science
Demo Eclipse ScienceDemo Eclipse Science
Demo Eclipse Science
 

Recently uploaded

Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
frank0071
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
kejapriya1
 
Nutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technologyNutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technology
Lokesh Patil
 
Nucleophilic Addition of carbonyl compounds.pptx
Nucleophilic Addition of carbonyl  compounds.pptxNucleophilic Addition of carbonyl  compounds.pptx
Nucleophilic Addition of carbonyl compounds.pptx
SSR02
 
Mudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdf
Mudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdfMudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdf
Mudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdf
frank0071
 
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdfUnveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Erdal Coalmaker
 
3D Hybrid PIC simulation of the plasma expansion (ISSS-14)
3D Hybrid PIC simulation of the plasma expansion (ISSS-14)3D Hybrid PIC simulation of the plasma expansion (ISSS-14)
3D Hybrid PIC simulation of the plasma expansion (ISSS-14)
David Osipyan
 
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
University of Maribor
 
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốtmô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
HongcNguyn6
 
Lateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensiveLateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensive
silvermistyshot
 
Leaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdfLeaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdf
RenuJangid3
 
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Sérgio Sacani
 
Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...
Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...
Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...
Travis Hills MN
 
Chapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisisChapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisis
tonzsalvador2222
 
Oedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptxOedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptx
muralinath2
 
Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.
Nistarini College, Purulia (W.B) India
 
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdfTopic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
TinyAnderson
 
Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
IshaGoswami9
 
Deep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless ReproducibilityDeep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless Reproducibility
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Orion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWSOrion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWS
Columbia Weather Systems
 

Recently uploaded (20)

Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...Mudde &  Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
Mudde & Rovira Kaltwasser. - Populism in Europe and the Americas - Threat Or...
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
 
Nutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technologyNutraceutical market, scope and growth: Herbal drug technology
Nutraceutical market, scope and growth: Herbal drug technology
 
Nucleophilic Addition of carbonyl compounds.pptx
Nucleophilic Addition of carbonyl  compounds.pptxNucleophilic Addition of carbonyl  compounds.pptx
Nucleophilic Addition of carbonyl compounds.pptx
 
Mudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdf
Mudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdfMudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdf
Mudde & Rovira Kaltwasser. - Populism - a very short introduction [2017].pdf
 
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdfUnveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdf
 
3D Hybrid PIC simulation of the plasma expansion (ISSS-14)
3D Hybrid PIC simulation of the plasma expansion (ISSS-14)3D Hybrid PIC simulation of the plasma expansion (ISSS-14)
3D Hybrid PIC simulation of the plasma expansion (ISSS-14)
 
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
 
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốtmô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
 
Lateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensiveLateral Ventricles.pdf very easy good diagrams comprehensive
Lateral Ventricles.pdf very easy good diagrams comprehensive
 
Leaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdfLeaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdf
 
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
 
Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...
Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...
Travis Hills' Endeavors in Minnesota: Fostering Environmental and Economic Pr...
 
Chapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisisChapter 12 - climate change and the energy crisis
Chapter 12 - climate change and the energy crisis
 
Oedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptxOedema_types_causes_pathophysiology.pptx
Oedema_types_causes_pathophysiology.pptx
 
Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.Nucleic Acid-its structural and functional complexity.
Nucleic Acid-its structural and functional complexity.
 
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdfTopic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
Topic: SICKLE CELL DISEASE IN CHILDREN-3.pdf
 
Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
 
Deep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless ReproducibilityDeep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless Reproducibility
 
Orion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWSOrion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWS
 

Geoscience and Microservices

  • 2. Background ▌ Landmark would be one of the top 50 largest software companies ▌ Scientific and Engineering software for Energy sector  Exploration  Construction  Production ▌ Neftex  Exploration
  • 3.
  • 4. What kind of developer are you? ▌ Experienced with Java (since 1.1 which is ~1998) ▌ Python hacker (what other kind is there?) ▌ Javascript noob (!! How hard can it be? Typescript, Uglify) ▌ Fortran deny all (literally don’t tell anyone) ▌ C++ dangerous (enough to be) ▌ C# not much (linux?) ▌ Wrote much UI and Server Architecture 
  • 6. Happy Developers? ▌ Modern Programming Languages like Java and Python  Developers became happy  They write more code Thing Why we liked it? What Happened? 3G/4G Languages (Java, C#, Python, C++) Manage memory, Powerful APIs, UI toolkits We wrote lots of code IDEs (Xemacs, JCreator, Eclipse, IntelliJ, VisualStudio) It make our code more colourful and we could write more We wrote lots of code Frameworks (RCP, Struts, JSF, Django, ASP, etc. etc.) Do more stuff, Organise things We wrote lots of code and it was more efficient Incremental Programs (OSGi, Jigsaw, etc.) Our massive programs still worked We wrote lots of code and it didn’t all have to fit in memory!!
  • 7. Introducing the Monolith ▌ Single Tier Software Application ▌ Horizontal Approach to Features ▌ Modularity is Code-Based ▌ Examples:  Scientific Desktop Application  Some Types of Server Application − Thick client − Multiple web page single server
  • 8. Some problems I have hit with… ▌ Developers working horizontally, less efficiently ▌ Encapsulation of modules – entropy increases ▌ Multiple APIs doing the same task  CORBA/RMI/JMS  Swing/SWT/JavaFX  DOM+SAX/Xpath/Castor/Gson/Jackson ▌ Ability to scale in various directions (scale cube) ▌ And… Deployment / Testing / Understanding / Agility Despite all this  Powerful,  Well used and understood,  Profitable Monolithic, or nearly monolithic, software
  • 9. Some I think which can be okay with… ▌Testing  Well defined interactions  Limited set of interoperable features ▌OSGi Services – one monolith multiple services ▌Developer ownership, interoperability ▌Cost Monolithic, or nearly monolithic, software
  • 10. Summary ▌ We have lots and lots and lots of code ▌ We find it hard to change it ▌ Customers/Users get  releases infrequently  more defects  lower scale solutions  …depressed
  • 11. Service Oriented Architecture (SOA) ▌ Application is a collection of loosely coupled services ▌ One service  Logically represents a business activity with a specified outcome.  Self-contained.  black box for its consumers.  May consist of other underlying services ▌ Idea been around in one form or another since early 2000’s µServices are one type of SOA
  • 12. µServices ▌ Fine grained and light weight ▌ Modularity is enforced, each component easy to understand, develop and test ▌ Small autonomous development teams  Vertical development rather than horizontal  Less for one developer to deal with / understand / have to compile ▌ IMPORTANT Services can scale independently and on the fly ▌ Technology choices weakly linked and easy to change
  • 13. Team structure  Product Management (exactly 1)  Development Lead (exactly 1)  Developers (1-10) (UI, µservice, database)  Testing (0-3)  UX (As needed)  DevOps (1)  Architect (As needed)
  • 14.
  • 15. This is all very well but… ▌ How do we apply it to scientific algorithms? ▌ How will they scale?  Different algorithms have different requirements  Scale out in the cloud ▌ What kind of cloud? We are looking at DC/OS, Kubernetes and native: AWS, Azure, Google Cloud etc. ▌ What about Big Data?
  • 16. Case Study – Automatic Lithostratigraphy ▌ Python Research Code  Machine learning  Parallelizable algorithm each python process can work on one part of the problem prediction ▌ Java µService using JSON-REST and Kafka deployed in a Jetty Server to a docker container ▌ Large amounts of data but highly parallel each run being only O(10)xO(100,000), for instance 9 1D datasets of size 25,000. ▌ Scale in:  Y - (web service front end and data splitter) + (analysis)  X - Many (analysis) processes  Z – No need to scale
  • 17.
  • 18. Standard Python Project Containing R&D Code Module for exposing running one facet of the code by Kafka message (competitive consumer) A readme / getting started and other docs are contained in the project Jenkins build runs the tests and deploys the python consumer to the cluster as a docker image
  • 19. Python client µservice code using JSON-REST Spring Boot, etc Self contained set of unit tests and resources Separate build which • Downloads dependencies for developer • Builds on Jenkins a ‘fat’ jar • Deploys to DCOS The build is deployed to docker image for running on the cluster A readme / getting started and other docs are contained in the project
  • 20. 2ms ▌ Binary artifacts can be published and consumed = modularity old skool  E.g. IO packages ▌ µservice design patterns  E.g. Aggregator Bit of an side note: Artifactory and Aggregation 20ms 20ms 20ms 2ms = 62ms 2ms 20ms 2ms = 28ms 2ms Aggregator
  • 21. ▌ week6-alith-zoom.png1 Results of autolith in plotly (one prediction)
  • 22. Thanks! ▌ Landmark for moving to microservices ▌ Gael and the team for organising the conference ▌ Devs and product management ▌ YOU for listening