status quo on the automation support in soa suite oghtech17
TRANSCRIPT
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
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.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
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.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.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
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
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