Microservices - What, Why, When and How · 2020-04-23 · Not building architecture ... pages on...

53
MENDIX WORLD Microservices: What, Why, When and How Andrej Koelewijn // Product Manager // Mendix Will Ma // Director Solutions Architecture // Mendix Rom van Arendonk // Architect // Timeseries

Transcript of Microservices - What, Why, When and How · 2020-04-23 · Not building architecture ... pages on...

MENDIXWORLD

Microservices: What, Why, When and HowAndrej Koelewijn // Product Manager // MendixWill Ma // Director Solutions Architecture // MendixRom van Arendonk // Architect // Timeseries

MENDIXWORLD

Agenda

• Why microservices• How do you use microservices• Case study: Enexis Aansluitingen• Remote Entities & Data Hub

MENDIXWORLD

What starts with architecture…

MENDIXWORLD

Often ends in spaghetti chaos…

MENDIXWORLD

Usually due to necessary shortcuts…

MENDIXWORLD

Increasing cost of change…

MENDIXWORLD

Almost impossible to repair…

MENDIXWORLD

How do you to ensure long term agile architecture?

MENDIXWORLD

Start with productized components…

MENDIXWORLD

Add small autonomous teams…

MENDIXWORLD

Not building architecture…

MENDIXWORLD

But city planning…

MENDIXWORLD

Teams/components

MENDIXWORLD

Releases

MENDIXWORLD

MENDIXWORLD

MENDIXWORLD

MENDIXWORLD

MENDIXWORLD

MENDIXWORLD

MENDIXWORLD

MENDIXWORLD

Independent Components

Standardized Interfaces

Independent Roadmap

Autonomous Teams

Independent Solution Architecture

REST APIs

Project Team

Sprint backlog

Independent App including database

MENDIXWORLD

Scale Development… And Infrastructure

MENDIXWORLD

Manage shop

products

Contractconfirmation

Declare Expense

s

Validate expense

declarationReimburseShop

WebshopProduct

Management tool

Contract confirmation

AppExpenses App

SmartExpenses Rules App

Reimbursement

App

CRM FinanceProducts

Design thinking to determine components

MENDIXWORLD

Microservices @

Enexis• Grid operator

• Provides infrastructure for gas and electricity

• Process Redesign

• Case Management system to manage infrastructure projects

• Transitional architecture

• Time-to-market

MENDIXWORLD

Intake Engineering Project preparation

Execute project Finalize

Customer Engineer Engineer Contractors Engineers

RiskIntake Estimation Materials PaymentPlanning

Internal view

External view

SAP GIS DWH

Projects Activities Organization Migration

MENDIXWORLD

Results

• 12 Devs, 9 business product owners

• 3 months to deliver MVP

• Decentralized ownership led to best possible applications

• Small, clean apps which are easy to adapt and extend

• Independent scaling proved valuable

MENDIXWORLD

REST = HTTP• Polling sync based on change

date

• Custom change date to enable aggregates

• Automatic swagger contracts + example data• Developers• API Gateway

• Understand how to build REST• Resource first• Verbs

MENDIXWORLD

Versioning• Versioning facilities in Mx

• Cross team orchestration

• Only consume production APIs

• N-2 API versions in production

MENDIXWORLD

Summary

• Basics for building microservices with Mendix are good

• Hardest parts:

• Building the technical integration using rest or webservices

• Knowing what is available for reuse

MENDIXWORLD

Simplifying data sharing

MENDIXWORLD

No-code Integration

Out-of-the-box integration patterns -drag and drop data into your app andretrieve remote data like local data in widgets and microflows.

Anybody can use Enterprise Data

MENDIXWORLD

No-code Integration Discoverable enterprise

Out-of-the-box integration patterns -drag and drop data into your app andretrieve remote data like local data in widgets and microflows.

Find any enterprise data you need fromthe comfort of the Mendix Studio Pro

Anybody can use Enterprise Data

MENDIXWORLD

No-code Integration Discoverable enterprise Up-to-date catalog

Out-of-the-box integration patterns -drag and drop data into your app andretrieve remote data like local data in widgets and microflows.

Find any enterprise data you need fromthe comfort of the Mendix Studio Pro

All published and consumed API automatically registered in the Mendix Data Hub

Anybody can use Enterprise Data

MENDIXWORLD

Enterprise Hub Mendix Studios

Environments Services

Data Events

APIs Deeplinks

Discover

Discoverable Enterprise

MENDIXWORLD

Enterprise Hub

Enterprise deployment environments

Mendix

Deployed AppDeployed App

Mendix Studios

Deployed App

Data Events APIs Links

Environments Services

Data Events

APIs Deeplinks

Discover

Deploy

Discoverable Enterprise

MENDIXWORLD

Enterprise Hub

Enterprise deployment environments

Mendix

Deployed AppDeployed App

Mendix Studios

Deployed App

Data Events APIs Links

Environments Services

Data Events

APIs Deeplinks

Discover

Deploy

Reg

iste

r

Discoverable Enterprise

MENDIXWORLD

Enterprise Hub

Enterprise deployment environments

Mendix

Deployed AppDeployed App

Mendix Studios

Deployed App

Data Events APIs Links

Environments Services

Data Events

APIs Deeplinks

Discover

Deploy

Reg

iste

r

Curate

Discoverable Enterprise

MENDIXWORLD

Remote entities

• Retrieve remote data with xpath

• Uses REST/OData

• No need for integration microflows

MENDIXWORLD

Link app and remote data• Remote data is read only

• App data can be linked to remote data using associations

MENDIXWORLD

How do you use it?

Publish data APIs using

ODataDeploy your

appConnect anduse your data

Findenterprise

data

MENDIXWORLD

Consuming App Publishing App

How does it work?

Xpath

OData retrieve

Xpath

MENDIXWORLD

Target use cases

Show remote data

Fastest way to buildpages on data in other apps, just dragand drop remote objects on widgets and pages.

Enrich data

Workflow apps caneasily associateremote data withlocal data to store enrichments

Microservices

Build autonomousmicro-services usingcacheable remote objects

MENDIXWORLD

Why is it awesome?

Searching, paging and sorting out of the boxSupported in microflow retrieve

activities

MENDIXWORLD

Demo time

MENDIXWORLD

No-code Integration Discoverable enterprise Up-to-date catalog

Out-of-the-box integration patterns -drag and drop data into your app andretrieve remote data like local data in widgets and microflows.

Find any enterprise data you need fromthe comfort of the Mendix Studio Pro

All published and consumed API automatically registered in the Mendix Data Hub

Anybody can use Enterprise Data

MENDIXWORLD

Q&A