designing and implementing a modern portal architecture · devops talks conference 2019 ......
TRANSCRIPT
11/09/2019 1
DEVOPS TALKS CONFERENCE 2019
Designing and implementing a modern portal architecture
and the lessons I learnt along the way…
11/09/2019 2
DEVOPS TALKS CONFERENCE 2019
Introduction
Who am I?How did I
end up here?
What am I talking about today?
11/09/2019 3
DEVOPS TALKS CONFERENCE 2019
Where did Manage Centre come from?
11/09/2019 4
DEVOPS TALKS CONFERENCE 2019
User experience
11/09/2019 5
DEVOPS TALKS CONFERENCE 2019
User experience
11/09/2019 6
DEVOPS TALKS CONFERENCE 2019
History of development
Start-up sized teamOutsourced dev team with internal business stakeholders
Vendor selection process External UX design firm
11/09/2019 7
DEVOPS TALKS CONFERENCE 2019
Lesson one: Having the right Product Manager is critical
11/09/2019 8
DEVOPS TALKS CONFERENCE 2019
Historic architecture
11/09/2019 9
DEVOPS TALKS CONFERENCE 2019
Platform
Red Hat Linux
OS-level Virtualisation
Frameworks
Runtime Environment
Polyglot event-driven Application Framework
Security Framework
Language
Java Virtual Machine
Web Server / Reverse Proxy / Load
Balance
JavaScript
In-Memory Data Grid
Clustering
Content Delivery Network and File storage
11/09/2019 10
DEVOPS TALKS CONFERENCE 2019
11/09/2019 11
DEVOPS TALKS CONFERENCE 2019
11/09/2019 12
DEVOPS TALKS CONFERENCE 2019
Languages
HTML5 - Structure
JavaScript - Behaviour
CSS3 - Style
Frameworks
Single Page Application Framework
DOM Manipulation
Styling & Design
Special Purpose
Charting
Flowcharting
Stylesheet processing
11/09/2019 13
DEVOPS TALKS CONFERENCE 2019
Problems we have
11/09/2019 14
DEVOPS TALKS CONFERENCE 2019
11/09/2019 15
DEVOPS TALKS CONFERENCE 2019
11/09/2019 16
DEVOPS TALKS CONFERENCE 2019
Lesson two: Web Components are really cool and you should
use them
11/09/2019 17
DEVOPS TALKS CONFERENCE 2019
11/09/2019 18
DEVOPS TALKS CONFERENCE 2019
11/09/2019 19
DEVOPS TALKS CONFERENCE 2019
So what do we want in a portal architecture?
Follows micro-service and micro-frontend patterns
Something that is easy to contribute to if you meet the
standards
Ability to surface data from new data sources
quickly
Interfaces that have a consistent user experience
11/09/2019 20
DEVOPS TALKS CONFERENCE 2019
Well that’s nice but how do we get there?
11/09/2019 21
DEVOPS TALKS CONFERENCE 2019
Conceptual models
Entity model
Charting model Action model
11/09/2019 22
DEVOPS TALKS CONFERENCE 2019
Entity model
11/09/2019 23
DEVOPS TALKS CONFERENCE 2019
Charting model
11/09/2019 24
DEVOPS TALKS CONFERENCE 2019
Action model
11/09/2019 25
DEVOPS TALKS CONFERENCE 2019
Making it real
11/09/2019 26
DEVOPS TALKS CONFERENCE 2019
Patterns and tech we want to use more of
Micro-front ends
GraphQL
Progressive Web Apps
11/09/2019 27
DEVOPS TALKS CONFERENCE 2019
Micro-frontends
11/09/2019 28
DEVOPS TALKS CONFERENCE 2019
Micro-frontends
Benefits
• A feature team can control the entire flow from data through to user interface
• Teams can in theory right in whatever web framework they like
• Smaller pieces of UI functionality that can be re-used between different portals
• Skating to where the puck will be, Web Components
Challenges
• Have to get the integration model into the parent app right
• App bundle size can get out of hand if not tightly governed
• Styling can get tricky with lots of different components
11/09/2019 29
DEVOPS TALKS CONFERENCE 2019
Basecoat
11/09/2019 30
DEVOPS TALKS CONFERENCE 2019
Lesson three: Having a living style guide makes the “look and feel” part of UX fantastically easy to
share across teams
11/09/2019 31
DEVOPS TALKS CONFERENCE 2019
Micro-frontends
• Why do we think it is cool?
• Extends the same ideas and thinking about microservices to the front-end
• Delivers the same benefits (and challenges) as microservices
• How does it fit the concepts?
• With the right standards lets us decentralize development effort to the teams developing the services
• Lets us share components between teams and other portals in the business more easily
11/09/2019 32
DEVOPS TALKS CONFERENCE 2019
GraphQL
11/09/2019 33
DEVOPS TALKS CONFERENCE 2019
GraphQL
• Why do we think it is cool?
• Fantastically powerful query language, only get the data you asked for
• Makes it easy to add new data sources or change them without impacting the front end
• Makes it easy to “mash up” data from multiple sources completely invisibly to the system asking for it
• How does it fit the concepts?
• Lets you define a single way of representing entities which can be shared across portals
• Provides a single consistent interface for accessing data from any data source
11/09/2019 34
DEVOPS TALKS CONFERENCE 2019
Progressive Web Apps
• Progressive
• Responsive
• Fast after initial load
• Connectivity independent
• App-like
• Fresh
• Safe
• Discoverable
• Re-engageable
• Installable
• Linkable
11/09/2019 35
DEVOPS TALKS CONFERENCE 2019
Progressive Web Apps
• Why do we think it is cool?
• Enables app like behavior without needing to have native applications
• Shared code base across mobile platforms (don’t need Android and iOS teams)
• How does it fit the concepts?
• Makes the content available on any platform
• Re-uses the common services to deliver a consistent experience
• Can be refreshed with new technology since it sits on top of the business logic layer
11/09/2019 36
DEVOPS TALKS CONFERENCE 2019
The future of portals at NTT
11/09/2019 37
DEVOPS TALKS CONFERENCE 2019
Thank you!