23
NORDICMIND, HELSINKI, 9.2.2017 Flexible Application Development Using Fuse & Openshift

Flexible Application Development Using Fuse & Openshift

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Flexible Application Development Using Fuse & Openshift

NORDICMIND, HELSINKI, 9.2.2017

Flexible Application Development Using Fuse & Openshift

Page 2: Flexible Application Development Using Fuse & Openshift

RAKENNUSTIETO – THE CUSTOMER CASE

Stand-alone fullstack applications

Frontends and backends separated

Pool of service apis and per need frontends

Backend data management applications

Page 3: Flexible Application Development Using Fuse & Openshift

MIDDLEWARE MOTIVATION

WHY CHOOSE FUSE:

1. Minimize the number of integrations

2. Develop functionalities once and reutilize them in different end user applications

3. Allow for a more modular application architecture

4. Enable multivendor development work

Page 4: Flexible Application Development Using Fuse & Openshift

Technical implementation, FUSE backend services

Page 5: Flexible Application Development Using Fuse & Openshift

OSGi modules All backend services are REST that produce and consume JSON. The component that generates the apis is Apache CXF. Behind those entrypoints are Camel routes. Routes handle passing the received message to the actual services. Services can be custom java beans or any existing components that can receive a Camel message. All backend code is wrapped as OSGi modules, which may contain java code, service registrations and so on.

Page 6: Flexible Application Development Using Fuse & Openshift

Deploying OSGi modules to FUSE

Page 7: Flexible Application Development Using Fuse & Openshift

OSGi module dependencies and grouping FUSE includes an OSGi container called Karaf. OSGi module installation and dependency management can be handled with Karaf features. Your custom implementation has some dependencies which can be provided by pre-defined features, existing OSGi-bundles or existing 3rd party libraries that you can wrap on-the-fly as OSGi modules. By typing "features:install tpa-tracking-ds-mysql" at the Karaf console, you get all the runtime dependencies and your module installed even to a fresh Fuse instance.

Page 8: Flexible Application Development Using Fuse & Openshift
Page 9: Flexible Application Development Using Fuse & Openshift

Runtime environments

Page 10: Flexible Application Development Using Fuse & Openshift

Openshift and Fuse environments

Page 11: Flexible Application Development Using Fuse & Openshift

Applications as Virtual Machines Moko (public frontend) and haku (backend search) applications as Virtual Machines. All services inside a VM are equal, consume limited shared resources and can cause issues that affect other services. Scaling up VM resources often requires downtime, scaling out VM's requires manual clustering configuration or setting up a loadbalancer.

Page 12: Flexible Application Development Using Fuse & Openshift

Splitting public frontend application

Page 13: Flexible Application Development Using Fuse & Openshift

Splitting search backend application

Page 14: Flexible Application Development Using Fuse & Openshift
Page 15: Flexible Application Development Using Fuse & Openshift

Service scaling (Part 1, wishful thinking)

Page 16: Flexible Application Development Using Fuse & Openshift

Service scaling (Part 2, partially scalable)

Page 17: Flexible Application Development Using Fuse & Openshift

Build, package and deploy

Page 18: Flexible Application Development Using Fuse & Openshift

FLEXIBLE TOOLS Getting packaged applications to Openshift Company internal build pipeline -  output can be an osgi module, executable

within Fuse Karaf OSGi container -  output can be executable without Openshift

(for example web application jar-file with embedded tomcat)

Openshift project specific configuration -  build, service and routing configurations

required per Openshift project -  the company internal build pipeline could

take more responsibility of constructing Openshift configuration, but Docker and Openshift have their own tools for that

!

Page 19: Flexible Application Development Using Fuse & Openshift

FLEXIBLE TOOLS

Page 20: Flexible Application Development Using Fuse & Openshift

FLEXIBLE TOOLS

BitBucket is a professional Git version control system. Bamboo is a professional tool for continuous integration. Nexus is a repository manager.

Page 21: Flexible Application Development Using Fuse & Openshift

Conclusion Flexible & Cool.

… as long as ...

-  Your application components are stateless -  Your application stack is split into modules

Page 22: Flexible Application Development Using Fuse & Openshift

APIen hallinnalla uutta liiketoimintaa

Webinaari – 16.2. klo 14-15

Sosiaalinen Intranet

Tapahtuma Helsingissä – 9.3. klo 8.30-11.30

JIRA Service Desk

Webinaari – 14.3. klo 10-11

E-Commerce Helsinki Tapahtuma (Messukeskus osasto 5g34) – 8.-9.3.

Liferay Audience Targeting Webinaari – 21.3. klo 10-11

Henrin Kokkikoulu - OpenShift Aamiaistilaisuus Helsingissä – 22.3. klo 8.30-9.30

Q1

Page 23: Flexible Application Development Using Fuse & Openshift

Thanks!