how to achieve devops from standalone …...2 | devops •devops is the practice of it operations...

29
© 2018 Software AG. All rights reserved. For internal use only HOW TO ACHIEVE DEVOPS FROM STANDALONE WEB METHODS Dave Pemberton Global Consulting Services webMethods Practice Manager UK & Nordic

Upload: others

Post on 08-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

HOW TO ACHIEVE DEVOPS FROM STANDALONE WEB METHODS

Dave Pemberton

Global Consulting Services

webMethods Practice Manager UK & Nordic

Page 2: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

2 |

DEVOPS

• DevOps is the practice of IT

Operations and Development

participating together in the entire

software lifecycle, from design through

the development process to production

support

• Devops is a philosophy, cultural

change and paradigm shift.

• Devops is not a tool!

• Devops is not a Job description or role!

• It’s the way we work and behave

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

WHAT IS IT?

DevOps

Development QA

Operations

Page 3: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

WHY DEVOPS

Page 4: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

4 |

WHY DEVOPS SOME OF THE COMPETITION

MSA Containers APIs

Continuous Delivery

Events Cloud Dev

Ops

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

300 deployments per

year

10+ deployments per

day

50+ deployments per

day

11.6 deployment every

sec

cars.com

amazon

flickr

Etsy

Page 5: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

5 |

Walgreens Boots Alliance British Army

• Implemented a complete DevOps

CI/CD deployment pipeline

• Previously a deployment took an

entire weekend with shift working

• Following a 80-150 page script

• Manual

• Error Prone

• Reduced time to 15 minutes!

• Increased stability and reliability

• Agile development and DevOps is

firmly ingrained in the culture

• Agile development processes are

important because of the ever

changing requirements

• Devops continuous processes in

place to automate onerous

deployment processes

• Considerably increases agility, and

accuracy of delivery

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

WHY DEVOPS CUSTOMER EXAMPLES

Page 6: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

6 |

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

AGILE DEVELOPMENT

CONTINUOUS INTEGRATION

OPERATIONS

CONTINUOUS DELIVERY

Page 7: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

WEBMETHODS DEVELOPMENT

Page 8: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

8 |

WEBMETHODS DEVELOPMENT

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

webMethods (Centralised)

THEN AND NOW

Development

Integration Server

webMethods

Designer/Developer

webMethods

Deployer

webMethods

Designer/Developer

webMethods

Designer/Developer

webMethods

Designer/Developer

Version Control

system

Test

Integration Server

• One Code base shared and

changed by all developers

concurrently

• Limited version control support

Subversion

ClearCase

Visual SourceSafe

Infact WmVCS was deprecated

• Development Server is not a

reliable source and version

control bypassed for

deployment

Page 9: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

9 |

WEBMETHODS DEVELOPMENT

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

webMethods (Centralised) WebMethods Devops

THEN AND NOW

Development

Integration Server

webMethods

Designer/Developer

webMethods

Deployer

webMethods

Designer/Developer

webMethods

Designer/Developer

webMethods

Designer/Developer

Version Control

system

webMethods

Designer

webMethods

Deployer

webMethods

Designer

webMethods

Designer

webMethods

Designer

Version Control

system

Test

Integration Server

Build

Integration Server

CI Server

• Each developer has their own

local environment making

changes independently

• Can be different projects,

versions, releases, etc

• Can use any version control

system!

• The version control system is

the central repository

• Developers connect

independently

• Deployment is done from the

checked-in assets

Page 10: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE THE END GAME!

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Page 11: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

WITH THE DEVOPS EDITION

Page 12: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE UNIT TESTS

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Page 13: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE TEST AUTOMATION

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Page 14: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE DEPLOY AUTOMATION

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Asset Build

Environment

Project Automator

webMethods

Deployer

Page 15: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE INSPECTION

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

webMethods

Deployer

Page 16: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE CONTINUOUS DELIVERY

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Page 17: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

WITHOUT THE DEVOPS EDITION

Page 18: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE WITHOUT DEVOPS ED.

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Page 19: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE CHECK IN

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

Page 20: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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

Development Time Quality Processes

Check-in

Analysis Develop/Change

Code/Configuration

Develop Unit Tests

Develop End to End, Interface,

Performance Tests

Deployment Processes

Agile

Development

CONTINUOUS LIFECYCLE UNIT TESTS

Build

Deploy to build Environment

Automated Testing Continuous

Integration

Publish to Asset Catalogue

Automated Quality Processes

Release Build?

Yes

Create/Retrieve Versioned Release

Add Release to Config

management

Deploy to ‘Next’ Environment

Automated Unit / End to End Test (where possible)

Continuous

Delivery

No

wm-jbehave

Page 21: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

21 |

DEVOPS - DEVELOPMENT

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

• Developers commit to trunk, day to day changes

in trunk

• Trunk is branched and tagged

• Developers work in the release branch and trunk

• Branch tagged and released when ready

• Branch maintained over time.

• Feature Branches

SVN GIT

• Use feature branches (from master) for new

features and bug fixes

– Merge into master using pull requests

• Reviewed before merge

• Master branch is high quality/up to date

• Consistent naming by convention, e.g.

– users/username/description

– features/feature-name

• Use release branches:

– Appropriately named, e.g.

• /release/20

– Create bugfix/hotfix branches from release

branch, e.g.

• /bugfix/description

• hotfix/description

SOURCE CONTROL – WHAT IS YOUR STRATEGY?

Commit Frequently!

Page 22: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

22 |

DEVOPS - DEVELOPMENT

• In an AGILE methodology, your definition of done

is not just ‘committing the code’. It should include:

– Creation of suitable Unit Tests

– Creation of interface tests

– Creation of end to end tests

– Creation of performance tests

– Any deployment/migration scripts

– …

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

DEFINITION OF DONE

Page 23: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

23 |

DEVOPS - DEVELOPMENT

• Extend the tests for every feature

• Automate all tests to avoid regression

– Units

– Component / Interface

– End to End

– Performance

• Using mocking features to avoid the need

for the end systems in all environments

• Test all environments as close to production

as possible, using mocks if needed!

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

TESTING

Page 24: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

24 |

DEVOPS - DEVELOPMENT

• Just because it works, doesn’t make it right!

• Quality is the responsibility of everyone,

not just the QA/reviewer.

• Ensure appropriate standards are in place, and

understood/followed

• Implement a continuous inspection process to

automate the bulk of the review process

in an objective manner automatically, versus a

subjective review.

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

QUALITY IS EVERYONE'S RESPONSIBILITY

80% Of the lifetime cost of a

software product is

spent on maintenance,

and maintenance costs

have a high variability

depending on quality

Page 25: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

25 |

DEVOPS – CONTINUOUS DELIVERY

• A ‘green field’ deployment guarantees a

repeatable process

• Provision a new ‘platform’

– Don’t ever assume anything exists!

– Automated provision via suitable tools

(e.g. puppet/chef/ansible/salt/etc)…

– Use command central templates to provision the software

– More recently – You can consider just building

new Docker containers

– If you can’t provision, make sure you ‘tear down’ and

level the ‘brown field’ before starting again!

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

AUTOMATED PROVISION

Page 26: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

26 |

DEVOPS – CONTINUOUS DELIVERY

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

MICRO OR MONOLITH

• Integration Server

– Package is a deployment construct

– Deploy as granularly as possible to avoid the monolith

• Micro-services approach removes (minimizes) dependencies

• Manage dependencies at deploy time – it’s a deployment issue

• Use CentraSite Active SOA to understand dependencies if they are complex

• Use a Blue/Green deployment approach for

continued operation with no/minimal disruption

• Deploy small

• Deploy often

• Deploy continuously

• Remember ‘Feature Toggles!’

Page 27: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

27 |

DEVOPS – CONTINUOUS DELIVERY

• Asset Repository

– Somewhere to hold your binary assets

• Build Versions/History

• Dependencies

– e.g.

• Sonatype Nexus

• JFrog Artifactory

• Docker Registry

• Deploy from binary into next environment,

not from source to guarantee the same binary

code in subsequent environments

• When using Containers use the same ‘container’ binary across all environments

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

STORE YOUR BINARY ASSETS

Page 28: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

28 |

DEVOPS – CONTINUOUS DELIVERY

• Security should be part of the same continuous

processes, not an after thought!

• Automate security testing like you would unit tests

and end to end tests to avoid common security pitfalls.

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

DEV-SEC-OPS

Page 29: HOW TO ACHIEVE DEVOPS FROM STANDALONE …...2 | DEVOPS •DevOps is the practice of IT Operations and Development participating together in the entire software lifecycle, from design

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