Contenu connexe Similaire à INT Inc | Benefits of a Microservices Architecture (20) INT Inc | Benefits of a Microservices Architecture1. From Monolith to
Microservices:
Why Building Smaller
Creates Opportunity for
Cleaner Code, Scalability
Thierry Danard,
INT VP of Core Platform Technologies
Steven Reynolds,
INT Senior Product Manager
2. 2© 2018 Interactive Network Technologies, Inc.
Steven Reynolds
Senior Product Manager
Thierry Danard
VP Core Platform Technologies
Speakers
Passionate about engineering and dedicated to
creating software that truly helps and inspires
clients, Thierry Danard is the driving force behind
INTViewer and the architect of INT’s IVAAP
backend. Thierry obtained a computer science
engineering degree from ENSEEIHT and is an
active member of the NetBeans community.
Highly skilled at software development,
middleware, database software, and visualization
software, Steven Reynolds received his BSEE
from University of Texas at Austin and his PhD in
electrical engineering from Rice University. At
INT, Steven guides innovation in microservices
architecture, back end data access management,
and integration for major oil and gas companies
around the world.
3. 3© 2018 Interactive Network Technologies, Inc.
80Software
Engineers,
fully dedicated to
the oil & gas
industry
110+leading E&P companies
use INT for complex
data visualization
25+years as an
established software
company
Expertise in E&P Visualization and Data
Access Libraries & Platforms in the Cloud
GRAPHIC & WIDGET
LIBRARIES
DATA VISUALIZATION
PLATFORM
Developer toolkit for G&G, E&P
2D and 3D visualization
Cloud and mobile-enabled (HTML5)
data visualization enterprise framework
Services
IVAAP
GeoToolkit
CUSTOM VISUALIZATION
DEVELOPMENT
About INT
Did you
know??
• INT offers interesting
jobs and
internships
• Many current and
former INT
employees are UH
alumni
• Our founder sits on
UH Dean’s Board
4. 4© 2018 Interactive Network Technologies, Inc.
Why This Topic? Why Now?
The Oil and Gas industry (and many other industries) is using digital technology to transform how they
work.
Disparate System
(Apps, Files,
Data Silos
Move to
Cloud
Data
Service
Business Drivers
• Make data searchable and accessible across the enterprise
• Reduce decision times through Machine Learning, Artificial Intelligence
• Improve efficiency through continuous application delivery and modular and mobile-first architecture
strategy
App
s
ML
AI
Files
App
s
Visu
6. 6© 2018 Interactive Network Technologies, Inc.
What Is Modular Programming?
Small pieces make a bigger whole
Code separation by functionality
Separation of implementation and declaration
Interchangeable implementations
Works well with Object-Oriented Programming.
7. 7© 2018 Interactive Network Technologies, Inc.
Examples of Programs Using Modules
Eclipse IDE
NetBeans IDE
Linux Operating System
IVAAP Backend (Web application)
INTViewer (Desktop application)
IVAAP
INTViewer
8. 8© 2018 Interactive Network Technologies, Inc.
INT is a software company with multiple, major clients.
All of these clients want to use IVAAP, but they all need
customizations to fit their business.
Business View of Modular =
Same Code/Same Build, Different Deployment Options
Why Is Modular Programming Useful?
9. 9© 2018 Interactive Network Technologies, Inc.
Modular Programming: A Good Way to Implement Options
If each time you need to implement an option, you
add a checkbox to some preferences screen, you:
• Make the UI more complex for users who don’t
need these options
• Leak to one of your client competitors what your
client does
Solution: Use some lookup system.
10. 10© 2018 Interactive Network Technologies, Inc.
Modular ProgrammingClassic Programming
Lookup System vs. Options
13. 13© 2018 Interactive Network Technologies, Inc.
Aug 27, 2018 10:23:44 AM
com.interactive.ivaap.lookup.annotations.LookupRegistrat
ionLoader loadSelfRegistrations
INFO: Self registered instance of class
com.interactive.ivaap.sample.FormalGreeter for lookup
class com.interactive.ivaap.sample.AbstractGreeter
Aug 27, 2018 10:23:44 AM
com.interactive.ivaap.lookup.annotations.LookupRegistrat
ionLoader loadSelfRegistrations
INFO: Self registered instance of class
com.interactive.ivaap.sample.CasualGreeter for lookup
class com.interactive.ivaap.sample.AbstractGreeter
@SelfRegistration(lookupClass =
AbstractGreeter.class, position = 200)
public class FormalGreeter extends
AbstractGreeter
@SelfRegistration(lookupClass =
AbstractGreeter.class, position = 100)
public class CasualGreeter extends
AbstractGreeter {
Lookup Implementation
14. 14© 2018 Interactive Network Technologies, Inc.
• More code to write
• More CPU consumed
• Slower startup
• Inspecting binaries for annotations
requires specific Java libraries
• Easy to add more options (for INT and its
customers): no code to change.
• Clean separation of functionality and options:
easy to maintain.
• Deliverables are the options. Options become a
“DevOps” concern, not a programmer concern.
• Developers can be productive with annotations.
• Refactoring class name doesn’t affect behavior.
Benefits vs. Drawbacks
16. 16© 2018 Interactive Network Technologies, Inc.
Digital E&P Platform: Enterprise Data Visualization
Digital Oilfield Platform (Exploration, Drilling, Production)
Application Services Integration
Cloud Infrastructure / On-Premise
Basin
Modeling
Enterprise Cloud Viewer (IVAAP)
User Interface
Dashboard-Centric Map-Centric Well-Centric
API/SDK Services
• Custom Data Connector
• Back-End SDK
• Front-End SDK
• Math Engine
• Alarms
Data Aggregation
• WITSML
• SQL
• LAS, DLIS, SEG-Y
• MongoDB
• PPDM
• Peloton Wellview
• P2 Procount
• OSIsoft
Domain Visualization
• WellLog
• Seismic
• Real-Time Monitoring
• Production Monitoring
• Schematics
• Rig Activities
• Drilling
Management
• User-Managed
Dashboard
• Templates
• Admin
• Security
• Auditing
• Dashboard Publishing
• Data Lake Ingestion
• Machine Learning
• Artificial Intelligence
• Analytics
• Workflows
Microservice
s
Architecture
17. 17© 2018 Interactive Network Technologies, Inc.
IVAAP Architecture
JavaScript/HTML5
Client
Play
Akka
Microservices Data
Sources
Node.JS
External Auth Systems
Geoscience
data
User
data
18. 18© 2018 Interactive Network Technologies, Inc.
IVAAP Node.js Architecture
DAL Passport
Basic SAML Cognito
Users Access Control Files
…Postgres
20. 20© 2018 Interactive Network Technologies, Inc.
IVAAP Geoscience Backend
Play
admin
S3
GIS
Akka
Microservices
http
REST API
AWS S3
SQLSQL
Mongo
SQL db
Mongo
…
21. 21© 2018 Interactive Network Technologies, Inc.
Akka Actors
• Messaging independent of route
• Can go across machines
• Natural mapping to what’s possible
• Built-in load-balancing, clusters, …
Play Framework
• Modern dynamic web server
• Asynchronous I/O
• Not thread per request
• Easy Integration with Akka
IVAAP Geoscience Backend
22. 22© 2018 Interactive Network Technologies, Inc.
Akka Actors
• Messaging independent of route
• Can go across machines
• Natural mapping to what’s possible
• Built-in load-balancing, clusters, …
Play Framework
• Modern dynamic web server
• Asynchronous I/O
• Not thread per request
• Easy Integration with Akka
IVAAP Geoscience Backend
Benefits
• Horizontal scaling
• Simpler errors
• Easy robustness and fault tolerance