faster and easier lifecycle handling of webmethods … · 2020-06-11 · python 2.7 + flask +...

32
© 2018 Software AG. All rights reserved. For internal use only FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS PLATFORM Dave Pemberton Global Consulting Services webMethods Practice Manager UK & Nordic

Upload: others

Post on 08-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

© 2018 Software AG. All rights reserved. For internal use only

FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS PLATFORM

Dave Pemberton

Global Consulting Services

webMethods Practice Manager UK & Nordic

Page 2: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

2 |

LIFECYCLE HANDLING OF THE PLATFORM

• Deployments of custom code/configuration

– IS Packages

– APIs

– BPM Processes

– Tasks, etc.

• WebMethods Software

– Upgrading

– Patching

– Containerization

• Zero Downtime?

© 2018 Software AG. All rights reserved. For internal use only

WHAT DO WE MEAN

Page 3: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

3 | © 2018 Software AG. All rights reserved. For internal use only

DEPLOYMENTS OF CUSTOM CODE/CONFIGURATION

CONTINUOUS DELIVERY

Page 4: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

4 |

DEPLOYMENTS OF CUSTOM CODE/CONFIGURATION

© 2018 Software AG. All rights reserved.

CONTINUOUS DELIVERY

Development Time Code Inspection

Check-in

Develop/Change Code/Configuration

Develop Unit Tests

Develop End to End Tests

Create Deployment Scripts

Automated Inspection

Build

Deploy to build

Create/Retrieve Versioned Release

Release Build?

Automated Unit / End to End Test

Add Release to config management

Deploy to ‘next’ environment

Automated Unit / End to End Test (where possible)

Continuous

Integration

Agile

Development Continuous

Delivery

Yes

Publish to Development

CentraSite

No

Page 5: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

5 | © 2018 Software AG. All rights reserved. For internal use only

WEBMETHODS SOFTWARE

UPGRADING / PATCHING

Page 6: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

6 |

Support

Lifecycle

WHY UPGRADE…?

New

Features

Cloud

© 2018 Software AG. All rights reserved.

Page 7: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

7 |

DEVOPS FOUNDATIONS

• Deliver Fast

• Deliver Often

• Deliver Right

© 2018 Software AG. All rights reserved. For internal use only

AGILE

• Reliability

• Reduce Risks

AUTOMATED

PROVISON

• Reduce Time

• Reduce Errors

• Reduce down

time

DEPLOY

AUTOMATION

• Improve

Quality

• Accelerate

QA

TEST

AUTOMATION

• Reliability

• Consistency

• Predictability

BUILD

AUTOMATION

Page 8: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

8 |

•Compare fix levels

•Install fixes

•Audit trail

COMMAND CENTRAL SCOPE

•Manage installations and instances

•Group into environments

•Monitor, start/stop

•Access log files

•Manage software repository

•Bootstrap servers

•Install product

Product

Installation

Fix

Management

Landscape Management

•Unified configuration

•Compare configuration

•Across multiple instances

Central

Configuration

•Deployment of assets

•Linked to environments

•Compare assets

Solution

Management

•Define templates •Product, Fixes, Config

•Manage substitution variables

•Apply templates to targets

Composite templates

© 2018 Software AG. All rights reserved.

Page 9: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

9 |

COMMAND CENTRAL ARCHITECTURE (TYPICAL)

Installation

Platform Manager SPM

Plugin

SPM

Plugin

SPM

Plugin

Runtime A

Runtime B

Runtime C

Command

Central

Server

Web UI

REST API

Command Line

Scripting

© 2018 Software AG. All rights reserved.

Page 10: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

10 |

CUSTOMER EXAMPLE

© 2018 Software AG. All rights reserved.

BUSINESS DRIVERS, OBJECTIVES • Challenges and drivers for change

– Huge complex landscape

– 300+ instances globally

– Ad-hoc patching process

– Frequent provisioning requests

– Turnaround times

– Validation and documentation

– Need for automation (end to end)

– Central unified management

• Objectives

– Centrally managed and monitored landscape

– Automated provisioning, patching and version

upgrades

SOLUTION IS

COMMAND CENTRAL

Page 11: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

11 |

CUSTOMER GLOBAL LANDSCAPE

© 2018 Software AG. All rights reserved.

EMEA region

128 webMethods instances

US region

128 webMethods instances

ASPAC region

100 webMethods instances

Page 12: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

12 |

CUSTOMER COMMAND CENTRAL SETUP

© 2018 Software AG. All rights reserved.

Product mirror Fix mirror

Product mirror Fix mirror

Product mirror Fix mirror

• Provisioning

• Upgrade

• Patching

• Provisioning

• Upgrade

• Patching

• Provisioning

• Upgrade

• Patching

INTERNET Customer Network

Master

Page 13: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

13 |

TEMPLATES

© 2018 Software AG. All rights reserved.

TYPES OF TEMPLATES

Provisioning template

• 400+ configurations

• Single template to

handle multiple type

environment types, e.g.

standalone, cluster etc.

• Pluggable custom

solutions invoked via

composite templates

Upgrade template

• 9.7 > 9.12

• 300 instances

• Data migration

• Support for all

environment types

• Narrow upgrade

window

Patch template

• 300 instances

• Support for all multiple

environments e.g.

standalone, cluster etc.

• Pluggable custom

solutions invoked via

composite templates

83% manual activities to 0%

Effort less & single click

Less risky

Single job for provisioning,

patching, configuration and

post installation activities

Upgrade in under 2 hours

Write once and repeat for

similar environments

0% manual

Single click or command for

entire upgrade flow

What used to take 6 months

now takes 2 weeks

Parallelized execution model

Fully automated, flexible,

modular templates

Page 14: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

14 |

SAG COMMAND CENTRAL TEMPLATES

https://github.com/SoftwareAG/sagdevops-templates

© 2018 Software AG. All rights reserved.

Page 15: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

15 | © 2018 Software AG. All rights reserved. For internal use only

WEBMETHODS SOFTWARE

CONTAINERISATION

Page 16: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

16 |

Static website

Web frontend

User DB

Queue Analytics DB

Background workers

API endpoint

nginx 1.5 + modsecurity + openssl + bootstrap 2

postgresql + pgv8 + v8

hadoop + hive + thrift + OpenJDK

Ruby + Rails + sass + Unicorn

Redis + redis-sentinel

Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs +

phantomjs

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client

Development VM

QA server

Public Cloud

Disaster recovery

Contributor’s laptop

Production Servers

THE CHALLENGE M

ult

iplicit

y o

f

Sta

ck

s

Mu

ltip

lic

ity o

f

ha

rdw

are

en

vir

on

me

nts

Production Cluster

Customer Data Center

Do

se

rvic

es

an

d

ap

ps

inte

rac

t

ap

pro

pria

tely

?

Ca

n I m

igra

te

sm

oo

thly

an

d

qu

ick

ly?

webMethods Integration Server + Terracotta + UM

Page 17: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

17 |

RESULTS IN N X N COMPATIBILITY NIGHTMARE

Static website

Web frontend

webMethods

User DB

Analytics DB

Queue

Developmen

t VM QA Server

Single Prod

Server

Onsite

Cluster Public Cloud

Contributor’

s laptop

Customer

Servers

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

Page 18: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

18 |

Static website Web frontend User DB Queue webMethods

Development

VM QA server Public Cloud

DOCKER IS A SHIPPING CONTAINER SYSTEM FOR CODE

Mu

ltip

licity o

f

Sta

cks

Mu

ltip

licity o

f

ha

rdw

are

en

viro

nm

en

ts

Production

Cluster Customer Data

Center

Do

se

rvic

es a

nd

ap

ps in

tera

ct

ap

pro

pria

tely

?

Ca

n I m

igra

te

sm

oo

thly

an

d

qu

ickly

…that can be manipulated using

standard operations and run

consistently on virtually any

hardware platform

An engine that enables any

payload to be encapsulated

as a lightweight, portable,

self-sufficient container…

Page 19: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

19 |

Static website

Web frontend

webMethods

User DB

Analytics DB

Queue

Developmen

t VM QA Server

Single Prod

Server

Onsite

Cluster Public Cloud

Contributor’

s laptop

Customer

Servers

DOCKER SOLVES THE NXN PROBLEM

Page 20: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

20 |

SOFTWARE AS AN APPLIANCE

© 2017 Software AG. All rights reserved. For internal use only

NO MORE BIG INSTALLS?!

Page 21: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

21 |

COMMAND CENTRAL – DOCKER BUILDER

© 2017 Software AG. All rights reserved. For internal use only

ARE THE DAYS OF BIG INSTALLS DOOMED?!

Page 22: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

22 |

dockerfile Template.yaml

© 2018 Software AG. All rights reserved. For internal use only

DOCKER CONTAINER BUILDING YOU OWN USING CC DOCKER BUILDER

FROM softwareag/commandcentral-builder:10.3 as builder

RUN $CC_HOME/provision.sh myTemplate && $CC_HOME/cleanup.sh

FROM centos:7 as base

COPY –from=builder /opt/softwareag /opt/softwareag

EXPOSE 1234

ENTRYPOINT /opt/softwareag/some/bin/runme.sh

FROM softwareag/commandcentral-builder:10.3 as builder

RUN $CC_HOME/provision.sh myTemplate && $CC_HOME/cleanup.sh

FROM centos:7 as base

COPY –alias: myTemplate

templates:

myContainer:

fixes: ALL # install all fixes

products:

myProduct: # install myProduct

myInstance: # create myInstance of myProduct

my.port: 1234 # port configuration

configuration:

configurationType:

configurationInstance:

property1: value1 # configuration property1

property2: value2 # configuration property2

layers:

runtimes:

productRepo: ${repo.product} # product repository

fixRepo: ${repo.fix} # fix repository

templates: myContainer

provision:

default:

runtime: ${nodes}from=builder /opt/softwareag /opt/softwareag

EXPOSE 1234

ENTRYPOINT /opt/softwareag/some/bin/runme.sh

Page 23: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

23 |

DOCKER CONTAINER

• The template should define only a single runtime instance. Different product

runtimes should run as different Docker containers and thus should be built as

separate Docker images

• Baking as much configuration as possible into the Docker image allows to

achieve (almost) immutable infrastructure, which brings a lot of benefits for

running containerized applications. Mutable configuration aspects can be

addressed by leveraging product specific capabilities like dynamic re-

configuration using environment variables.

• The templates used for building Docker images are the same templates that can

be used for traditional provisioning. This allows developing and testing templates

iteratively outside of the Docker build process and then use them for both

traditional and containerized deployments.

© 2018 Software AG. All rights reserved. For internal use only

BUILDING YOU OWN – KEY POINTS

Page 24: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

24 |

DOCKER CONTAINERS

• The builder process is as simple as running docker build command in the folder

that contains the Dockerfile:

© 2018 Software AG. All rights reserved.

THE BUILD PROCESS

docker build -t myimage

Page 25: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

25 |

DOCKER CONTAINERS

© 2018 Software AG. All rights reserved.

JUST INTEGRATION SERVER?

Page 26: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

26 |

• You can use Command Central DevOps tooling for

traditional on-premises provisioning as well as

containerized deployments.

• You can build managed (by Command Central) and

unmanaged Docker images for 10.x releases, having

great control of what exactly goes into your images to

satisfy your security requirements or requirements

from your orchestration engine.

© 2018 Software AG. All rights reserved.

DOCKER CONTAINERS SUMMARY

For up-to-date

detailed instructions

visit:

https://github.com/So

ftwareAG/sagdevops-

templates

Page 27: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

27 | © 2018 Software AG. All rights reserved. For internal use only

MIXING IT UP

Devops + Containers!

Page 28: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

28 |

MIXING IT UP

© 2018 Software AG. All rights reserved. For internal use only

BUILDING / DEPLOYING CONTAINERS!

Production Build Development

Designer (Local Dev)

Source

Control (Subversion)

Commit

CI/CD Tool Jenkins Docker

Container/

Asset Repo (Nexus)

Asset Build

Environment

Quality Review

Unit Test

Framework

Deployer / CCE

Microservices

Runtime

DOCKER

Co

ntin

uo

us L

ifec

yc

le

CI/CD Tool Jenkins

Container

Page 29: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

29 | © 2018 Software AG. All rights reserved. For internal use only

ZERO DOWNTIME?

Page 30: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

30 |

ZERO DOWNTIME DEPLOYMENT & RELEASE

© 2018 Software AG. All rights reserved.

BLUE-GREEN DEPLOYMENT - UPGRADE

API Gateway Integration

Server

Universal

Messaging

API Gateway Integration

Server

Universal

Messaging

Router

Database

Database

10.1 10.1 10.1

10.1 10.1 10.1 10.3 10.3 10.3

PRODUCTION ZONE

Page 31: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

31 |

CUSTOMER EXAMPLE

© 2018 Software AG. All rights reserved.

AEMO The Australian Energy Market Operator Responsible for Australia’s largest gas and electricity markets and power systems

Page 32: FASTER AND EASIER LIFECYCLE HANDLING OF WEBMETHODS … · 2020-06-11 · Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud

32 | © 2018 Software AG. All rights reserved. For internal use only