SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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 ServerFrancisco 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 ContentJuan 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 JVMCharles Anderson
 
Agile Tools for PHP
Agile Tools for PHPAgile Tools for PHP
Agile Tools for PHPphilipjting
 
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 RubyAkanksha Agrawal
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional wayThoughtworks
 
Getting Started with PHP Extensions
Getting Started with PHP ExtensionsGetting Started with PHP Extensions
Getting Started with PHP ExtensionsMichaelBrunoLochemem
 
what is .net
what is .netwhat is .net
what is .netSireesh K
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional waynluaces
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components Shimon Tolts
 
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
 

Mais procurados (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...
 

Semelhante a 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 ArchitectureKai 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 EnterpriseJames 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 AvivRon 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 IoTLinaro
 
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 SourceAll 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 togetherRestlet
 
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 EnterpriseLeon Stigter
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year projectsuneel singh
 

Semelhante a 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
 

Mais de Matthew Gerring

Presented at GeoCon 2015
Presented at GeoCon 2015Presented at GeoCon 2015
Presented at GeoCon 2015Matthew Gerring
 
Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Matthew Gerring
 
Eclipse RCP for Synchrotron Science
Eclipse RCP for Synchrotron ScienceEclipse RCP for Synchrotron Science
Eclipse RCP for Synchrotron ScienceMatthew Gerring
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew 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 ProjectMatthew Gerring
 

Mais de 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
 

Último

Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.Silpa
 
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIACURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIADr. TATHAGAT KHOBRAGADE
 
CYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptxCYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptxSilpa
 
Genome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptxGenome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptxSilpa
 
Role of AI in seed science Predictive modelling and Beyond.pptx
Role of AI in seed science  Predictive modelling and  Beyond.pptxRole of AI in seed science  Predictive modelling and  Beyond.pptx
Role of AI in seed science Predictive modelling and Beyond.pptxArvind Kumar
 
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort ServiceCall Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort Serviceshivanisharma5244
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .Poonam Aher Patil
 
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Silpa
 
300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptx300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptxryanrooker
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusNazaninKarimi6
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Silpa
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxDiariAli
 
POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.Silpa
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsSérgio Sacani
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learninglevieagacer
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxseri bangash
 
Dr. E. Muralinath_ Blood indices_clinical aspects
Dr. E. Muralinath_ Blood indices_clinical  aspectsDr. E. Muralinath_ Blood indices_clinical  aspects
Dr. E. Muralinath_ Blood indices_clinical aspectsmuralinath2
 

Último (20)

Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.
 
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIACURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
 
CYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptxCYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptx
 
Genome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptxGenome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptx
 
Role of AI in seed science Predictive modelling and Beyond.pptx
Role of AI in seed science  Predictive modelling and  Beyond.pptxRole of AI in seed science  Predictive modelling and  Beyond.pptx
Role of AI in seed science Predictive modelling and Beyond.pptx
 
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort ServiceCall Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .
 
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
 
300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptx300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptx
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virus
 
Site Acceptance Test .
Site Acceptance Test                    .Site Acceptance Test                    .
Site Acceptance Test .
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.
 
Clean In Place(CIP).pptx .
Clean In Place(CIP).pptx                 .Clean In Place(CIP).pptx                 .
Clean In Place(CIP).pptx .
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
 
POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.
 
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICEPATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learning
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptx
 
Dr. E. Muralinath_ Blood indices_clinical aspects
Dr. E. Muralinath_ Blood indices_clinical  aspectsDr. E. Muralinath_ Blood indices_clinical  aspects
Dr. E. Muralinath_ Blood indices_clinical aspects
 

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