microservices in een openedge wereld...2019/06/20  · netflix heeft zelf een orchestration engine...

28
Microservices in een OpenEdge wereld Roland de Pijper Principal Consultant Progress Benelux

Upload: others

Post on 14-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Microservices in eenOpenEdge wereld

Roland de Pijper

Principal Consultant

Progress Benelux

Page 2: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Agenda

Wat zijn MicroServices?

Kijken, kijken …

kopen?

niet kopen?

Conclusie

Alternatieve conclusie

Page 3: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

• Volgens Martin Fowler: an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.

Page 4: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

Page 5: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

Library <> Service Voorkom duplicate code -> Shared Library

Voorkom afhankelijkheden tussenMicroServices -> Geen Shared

Libraries

Page 6: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

Zelfstandige processen Technisch

Vanuit business

GranulariteitGroot

Klein

Bevat zowel UI, BL als DB

Microservice per teamSquad

Gevoed met 2 pizza’s

Page 7: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices? • Geen orchestratie maar choreografie

• Communicatie

• In de applicatie

• Tussen services

• HTTP

• Service proxy

• 'Simpel' MQ

Page 8: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

MEERDERE TECHNOLOGIEEN

MEERDERE DATABASES

MEERDERE VERSIES

Page 9: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

• Adoptie

• Amazon

• Netflix

• Paypal

• eBay

• Twitter

• <your company goes here>

Page 10: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Wat zijn MicroServices?

Schaalbaar -> Docker -> KubernetesHub-DevOps

FailoverHerstel van services

Caching

Page 11: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Kijken, kijken …

Page 12: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Components

Page 13: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Internal Structures

Page 14: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Dynamic View

Page 15: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Servers

Page 16: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

StockManagementController

Class wb3.stockmanagement.StockManagementController

implements StockManagement,

IBusinessService:

Page 17: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Appsrvtt.d"Default" "" "" yes no "" "" "A" "http://192.168.1.2:8810/apsv" ""

Page 18: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

StockManagementAdapter: getTotalWeightPerLoadCarrier

method public void getTotalWeightPerLoadCarrier(

input-output dataset dsLoadCarrierInfo):

FrameworkSettings:ServiceAdapter:InvokeTask(

"", // use the default partition

"wb3.stockmanagement.StockManagementController",

"getTotalWeightPerLoadCarrier",

input-output dataset dsLoadCarrierInfo).

end method.

Page 19: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

CI/CD Pipeline

Page 20: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Automated quality checks

Page 21: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

OpenApi

Page 22: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

kopen?

SchaalbaarheidProductie

Ontwikkel teams

Simpeler onderhoud -> hoe kleiner de applicatie, hoe simpeler

Kleine teams, ‘dus’ hogere velocity

Mix van technologieen

Re-use

Page 23: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

niet kopen?

Verschuiven complexiteit van bouw fase naar productie faseYou build, you run it

DevOps

Libraries gedeeld door teams

Gedistribueerd

Systeem

Transacties

Meer losse onderdelen -> grotere complexiteit

Netflix heeft zelf een orchestration engine gebouwd (Conductor)

Microservice = functioneel, dus bepaald door business

Page 24: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Conclusie

Logische volgende stap in software architectuur

Page 25: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Alternatieve conclusie

Your company <> Amazon

Veel tijd gaat zitten in

Bepalen granulariteit

Opzetten communicatie laag

CI/CD pipeline is complex ivmafhankelijkheden

Nieuw -> veel discussie

Kan 'de business' zijn rol vervullen?

Page 26: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Maar .... ik heb eenmonolith

Page 27: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Laatste tipAls je hier probeert te ontsnappen...

Page 28: Microservices in een OpenEdge wereld...2019/06/20  · Netflix heeft zelf een orchestration engine gebouwd (Conductor) Microservice = functioneel, dus bepaald door business Conclusie

Doe dat nietvia het toilet