status quo on the automation support in soa suite oghtech17

47
sysco.no Jon Petter Hjulstad Sysco Middleware Status Quo on the automation support in SOA Suite

Upload: jon-petter-hjulstad

Post on 21-Jan-2018

174 views

Category:

Data & Analytics


0 download

TRANSCRIPT

sysco.no

Jon Petter Hjulstad

Sysco Middleware

Status Quo on the automation support in

SOA Suite

sysco.no

Overview

• About Speaker / Sysco

• Trends: DevOps, Cloud, Microservices

• The competition

• Automation – What can be done ?

• SOA Suite - Capabilities

• Q&A

sysco.no

Information about me• Jon Petter Hjulstad

• Dept Manager for Middleware at Sysco

• 20 years experience with Oracle Products

• Focusing on WLS, SOA Suite, BPM Suite ++

• SOA Partner Community Award 2012

• WLS Partner Community Award 2015

• Oracle ACE Associate

• Twitter: jphjulstad

• Blog: http://blog.sysco.no/

Info

sysco.no

About Sysco

• IT-company established in 2004

• Operations, development, consulting in technology and economics– Competence in database technology, middleware

– Special focus in the energy sector

• More than 150 employees

• 9 Office Locations– Bergen, Haugesund, Lima, Oslo, Stavanger, Stord, Ølen, København, Stockholm

• Fusion Middleware Partner Community Award: “Outstanding WebLogic Contribution 2015”

• Fusion Middleware Partner of the year 2016 for Norway

• Partner of the year 5 times in a row

• Specialized Partner in 10+ areas

• Sysco is part of Red Expert Alliance

sysco.no

Automation

Integration is about automating the customers processes.

This presentation will be abut how to automate the full lifecycle around

these processes

SOA Suite has been available for a long time – and lots has happened

in the IT landscape since the birth of SOA Suite

sysco.no

DevOps

Going from siloes with complex ticketing systems and request

procedures to a team based collaboration where developers and

operations talk about the product, production and the build metrics,

throughout its lifecycle, discussing requirements, features, schedules,

resources, and whatever else might come up

Mandi Wallis

sysco.no

Evolution wave

sysco.no

DevOps Principles changes the goalsCultural movement enabled by technology

Paid to add new features

Achievement:

Innovation

Speed & Agility

Ease of change

Self Service

Dev Ops

DevOps

Paid to keep system stable, fast and

available.

Achievement:

Planning,

Security and Control, Simplicity

What, where, who, when?

New goal:

Add new features and keep the

system stable, fast and available

Business Values

sysco.no

DevOps Primary Focus Areas/principles

• Collaboration between project members/roles

• Infrastructure as code as scripted infrastructure configuration

• Automation of tasks, processes, workflow

• Monitoring applications and infrastructure for constantly

improvements

Monitoring is the last part that makes it DevOps…. Monitoring of at

least accepted application performance but also if the business values

are achieved.

sysco.no

DevOps = Culture + Technology Movement

Culture is what’s behind DevOps; technology is the enabler

Culture

Technology

sysco.no

Collaboration – culture must change

DiscussRespect

Avoid Blaming

“Done” Means

Released

• Mutual Respect

• No stereotyping

• Don’t just say “no”

• Open honest culture

• Delegate in each others

discussions

• Shared runbooks/escalation

plans

• Ops should give devs access

to systems

• No fingerpointing

• We are all in the same boat

• Dev’s

responsibility does

not end when it’s

in production

• “Throwing it over

the wall” is dead

sysco.no

Change in Technology

Shared Version Control

Infra as Code

One Step Build/

Deploy

Don’t Fix Anything

• Use config mgmt

to build

environments

• Scripts checked in

and managed as

source

• Single system for code and

build artifacts

• Every commit triggers a build

and automated build

verification tests

• Ship trunk

• Enable features through flags

• One button build/deploy

(manual)

• Scheduled builds/deploys

• If verification fails, stop and

alert

• If something

breaks, re-deploy.

Don’t fix

• Fix environment

setup scripts!

sysco.no

Microservices Architecture

The term "Microservice Architecture" has sprung up over the last few

years to describe a particular way of designing software applications as

suites of independently deployable services. While there is no precise

definition of this architectural style, there are certain common

characteristics around organization around business capability,

automated deployment, intelligence in the endpoints, and decentralized

control of languages and data.

Martin Fowler

sysco.no

Cloud Computing

Cloud computing is a type of Internet-based computing that provides

shared computer processing resources and data to computers and other

devices on demand. It is a model for enabling ubiquitous, on-demand

access to a shared pool of configurable computing resources (e.g.,

computer networks, servers, storage, applications and services), which

can be rapidly provisioned and released with minimal management

effort

Wikipedia

sysco.no

The competition

sysco.nosysco.no

The competition

• The competition is out there:

– Cloud based integration Platforms

– Java based Microservice Platforms

– Docker

– Testing frameworks

• Expectations are higher

– New approaches show where traditional product fall short when you want to automate/integrate things

• With SOA Suite we know what we got

– Let us look at the options

– Feedback based on our customers and partners

sysco.no

«Golden» SOA Suite Server

The «Golden» SOA Suite Server og Jdeveloper PC idea is dead – you

want to be able to reprovision that software in short time and to be able

to provide latest version with little effort.

Jon Petter Hjulstad

sysco.no

Popular “DevOps” Technology

The menu is not always easy to choose from

Jenkins / Hudson Rundeck Bamboo FlexDeploy

Git Perforce Subversion

Ansible, Puppet, Chef MyST

Gradle Jenkins / Hudson Robot Jira with Bamboo

Artifactory Nexus

Docker Vagrant

Version Control

Build & Functional Testing Binary ManagementVirtualization

Continuous IntegrationContinuous Delivery

Configuration Management

sysco.no

How does Oracle SOA Suite fit in here?

• The influences may make us do things differently in the future

• Maybe not perfect fit, but ..

– For SOA Suite customers, their investment in technology usually goes way beyond what they are buying from Oracle

– Many of them are using the tools mentioned: Confluence, Jira, Splunk, Nexus, Hudson / Jenkins, Puppet, etc.

– Within the DevOps cycle you can leverage the overall investment by setting up integrated development ecosystems where most of it can be automated

– In spite of FMW shortcomings its not really that difficult to integrate it with any of these

• Do not wait for any of this OOB, so as a customer you need to invest some more on it

– Or invest in tools like MyST or Flexdeploy

• As an integration partner it’s important to have this skill set around and outside the product boundaries.

sysco.no

Oracle Fusion Middleware – Deployment Tools

Install

Java

MyS

T

Java Plugin

Install

WebLogicWLS Plugin

Configure to

Work With

Install IdMIdM Plugin

Configure to

Work With

Install

WebCenter SitesWCS Plugin

Configure to

Work With

Reco

rde

d

Scrip

t

Replay

Elsewhere

Puppet

Ant

Maven

Custom

Shell Script

Atlassia

nB

am

boo

Provision HW

Success!

Install

WebLogic

Success

!

Install

Coherence

Success!

Patch

WebLogic

Success!

Orchestration

Engine

Ant

Maven

Custom

Plugin

Provision HW

Success!

Install

WebLogic

Success!

Install Coherence

Success!

Patch

WebLogic

Success!

Ta

rge

t

Syste

m

Provision Complex Multi-tier Oracle Fusion Middleware Environments in

Minutes

sysco.no

FlexDeploy for Continuous Delivery

Achieving DevOps and Continuous Delivery with Ease• Integrated Suite for Build, CI, Artifact Repo, Deploy, Test

• Improves speed, quality, and cost of software delivery

• Visibility to real-time and historical data

Oracle Plugins/Integrations make Oracle based solutions easy, repeatable, and efficient• Fusion Middleware – WebLogic, SOA, OSB, ADF, BPM, ODI, MDS, WebCenter

• Cloud PaaS – Java, Database, SOA

• Database, WebLogic Resource Management, E-Business Suite

sysco.no

Keep JDeveloper Environment up to date

• Not easy to know which patches to apply

– Apply Java, WLS, SOA, OSB patches

– http://blog.sysco.no/soa/Patching_JDev/

• You can provide scripts to keep it up to date – http://blog.darwin-it.nl/2016/06/automatic-patching-of-soabpm-quickstarts.html

• You can provide developer VMs

– Virtualbox, Oracle VM

– Quickstart helps a lot – so may not be worth effort

• May need to clear cache to activate patch– http://blog.sysco.no/soa/JDev-OSB_Projects-Migrated/

sysco.no

The best code is code you do not write

• Reuse is key

– https://www.slideshare.net/rluttikhuizen/nordic-ace-director-tour-2015-reuse-in-oracle-soa-suite-12c

• Three variants:

– Pattern

– Library

– Service

• Maven

– Build automation tool from Java

– Introduced in SOA Suite 12c

– Maven uses templates for predefined project structures

– Create, Build, Deploy

sysco.nosysco.no

Quick start development

• Can provide templates (from 12c)

– SOA Suite (SOA Project, Service Component, BPEL Scope)

– SB (Pipeline)

• Enforce standards

• Make it easier for developers

• Updating template does not fix for old projects

sysco.nosysco.no

Documentation

• To document takes time

• Implementations change

• Can to a large degree be automated

– SOA files are configurations

• We have customers who has created integrations from OSB to

Confluence

• Implemented into your build pipeline

sysco.nosysco.no

Job Scheduling: Enterprise Scheduler Service (ESS)

• Implemented SOA Pattern (less code to maintain)

• Available from 12.1.3

• Provides the ability to run different job types, including:

– Java, PL/SQL, binary scripts, web services and EJBs distributed

across the nodes in an Oracle WebLogic Server cluster.

– Dependencies, Parallelization, Throttling / Prioritazion

• Jay Kasi: https://www.youtube.com/watch?v=YYe782oQZT8

• Should consider changing your old tools when migrating

sysco.no

Testing

sysco.no

Fraternité’s Deployment Pipeline

As we move from left to right, the stages become longer and more production-like.• Precommit: Allows a developer to run the same build and tests as the commit phase, but without having to first commit their

changes to the trunk. The purpose of this stage is to allow the developer to determine if they are ready to commit to trunk.

• Commit: Runs the main build - compile, test, package - to produce a binary, which is published to the Binary Repository. This stage runs fast - no more than five minutes at the absolute maximum - and so it includes unit tests and integration tests that run quickly and do not require the binary to deployed to a sophisticated runtime environment.

• Quality: Executes a large number of quality checks on the project to look for common errors.

• Automated Acceptance Test: Runs the main test suites, which are automated, which take longer to run, and which require a production-like environment with test data, stub services, etc. to execute. This stage should catch regressions and should give a high level of confidence that the application is release-ready.

• Manual Acceptance Test: Creates a production-like environment and deploys the application into it for manual testing by QA engineers.

• Release: Releases the application to a (pre-)production environment.

Precommit CommitAuto

Acceptance Test

Manual Acceptance

TestRelease

Quality

sysco.no

• Many kinds of tests– Unit

– Integration

– Acceptance

– Performance

– Longevity

– Functional

– Stress/Load

• Many things to test– Code

– Deployment

– Configuration

– Infrastructure

– User Interface

– Quality

Testing and Quality

sysco.nosysco.no

When to run tests

Precommit Commit Quality Auto Acpt. Manual Acpt.

Faster Time Slower

Smaller Scope Larger

High Probability of Failure Low

sysco.no

Testing

• Oracle Core functionality is not good enough

– And has been unchanged for long time

• Opitz has done some great work– https://www.slideshare.net/bernhasv/test-driven-soa-suite-12c-upgrade

sysco.no

Testing

sysco.nosysco.no

Code Quality

• SonarQube / Jenkins– https://technology.amis.nl/2016/07/21/oracle-soa-suite-code-quality-sonarqube-quality-gates-xml-plugin-custom-

xpath-rules/

• JDeveloper Audit Rules

– https://community.oracle.com/docs/DOC-893779

sysco.no

Monitoring – closing the DevOps loop

sysco.nosysco.no

Monitoring

• Metrics

– Real-time data about application performance

• Log data

– Information about activities and events

• Alerting

– Notifications – you do not want to watch graphs

https://www.slideshare.net/NenadBozic2/challenges-of-monitoring-distributed-systems

sysco.nosysco.no

Monitoring

• We see different approches at customers – often based on what they have licenced

• For those with management packs – they use Cloud Control

– Management Cloud

– APM

– Log Analytics

• For others they use:

– EM console

– Custom Scripts

– Splunk / ELK

• Other automation support is

– Error Hospital

– Circuit Breaker (licenced)

sysco.nosysco.no

Collaboration - Social Monitoring

• Slack integration

– Message from Jenkins when Build is finished

– Start Build from Slack

– Updates from Jira

– Add comments in Trello

• Developers have tools they love

– Let them use it for other areas as well

sysco.no

Cloud

sysco.no

How has cloud affected us?

• Oracle has focus on PaaS – not on-premise

• Releases have Cloud-version-numbers

• On 12.2 we have not gotten Bundle Patches (functional)

– Focus on security

• Cloud way is to install and migrate artifacts

• Customers expect more from us – more «cloud-like»

• How is developer productivity in cloud?

– Are there less automation capabilities ?

sysco.no

Cloud - Multitenancy

• Oracle has multitenancy in database

• Weblogic 12.2.1has multitenancy

• Multitenancy gives more efficient use of resources

• What about SOA ?

https://blogs.oracle.com/imc/introducing-oracle-weblogic-server-1221-multitenancy:-a-qa-game

sysco.nosysco.no

Cloud

• Oracle has PaaS products which are based on on-premise

• That means your existing competence is still valid

• Cloud introduces scalability/elasticy

– These are challenging in todays software

– https://jeqo.github.io/talk/scale-wls-the-k8s-way-ougn-17/

– Licencing also impacts this

• Will se hybrid for a long time

sysco.no

Lessons learned

sysco.no

Repeatable Tasks:

Steeper Learning Curve vs Constant Time Investment

Time

# of Repetitions

DevOps

approach

General

approach for

deploy and

operations

Choose and learn tools, time consumed creating scripts

sysco.no

What we have seen

• No one does everything

• It takes time to change behavior

• New versions give new functionality, but to implement it is

sometimes an effort

• Features requiring additional licences have a less chance to get

implemented

– Management Packs

– Circuit Breaker, IWR

• Key to share knowledge your outside organization

sysco.no

Benefits Towards a DevOps Approach

• Increased Agility✓ Better Time to Market✓ Business & Technology Alignment

• Increased Quality✓ Consistent Environments✓ Increased Reliability✓ Improved Resiliency

• Continuity of Business• Reduced Overhead

✓ More time to focus on:✓ solutions, ✓ testing ✓ and innovation

✓ Projects become more feasible

sysco.no

Q&A

sysco.no

Enjoy the OGh Tech conference!

• SYSCO 2017