agile oracle bi development - · pdf fileagile oracle bi development for multiple users with...

64
1

Upload: vunguyet

Post on 19-Feb-2018

232 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

1

Page 2: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Agile Oracle BI Development for Multiple Users with Git

Yes, it can be done

Page 3: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Harvard UniversityFounded 163620,000 active students7,500 degrees awarded/year2,475 faculty 18,000 total employees

Page 4: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Eric Brown

Eric is a Senior Business Intelligence Engineer on Harvard University's new Student Information Systems/BI Apps implementation.

In addition to ETL development and day-to-day administrative tasks, he in charge of the development lifecycle and release process for all OBIEE and ETL work.

He's been with Harvard since 2014 and holds a degree from Dartmouth College in pure mathematics.

His favorite food is pizza.

4

Page 5: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Where We Were• Where We Wanted to Be• How We Got There: Overview• The Process in Action• How We Got There: Detail• Where We Are Going from Here

5

Agenda

Page 6: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

OBIEE Development DomainsCatalog RPD

Page 7: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Were

Page 8: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 9: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

• Difficult to coordinate RPD work

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 10: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

• Difficult to coordinate RPD work

• Disappearing development

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 11: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

• Difficult to coordinate RPD work

• Disappearing development

• Fear of trying new things

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 12: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

• Difficult to coordinate RPD work

• Disappearing development

• Fear of trying new things

• Impossible to audit changes

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 13: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

• Difficult to coordinate RPD work

• Disappearing development

• Fear of trying new things

• Impossible to audit changes

• Merging with the Admin tool is a nightmare

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 14: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Single DEV environment

• Concurrent online development by many developers

• Catalog development straightforward but...

• Difficult to coordinate RPD work

• Disappearing development

• Fear of trying new things

• Impossible to audit changes

• Merging with the Admin tool is a nightmare

• Un-Agile—promoting changes is all-or-nothing

Where We Were

Developer 2

Developer 5 Developer 4

DEVDeveloper 6

Developer 1Developer 3

Page 15: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Were

This… …is *not* source control.

Page 16: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Wanted to Be

Page 17: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Wanted to Be

S• Simple

• The development process must not get in the way of development

Page 18: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Wanted to Be

SA• Simple

• The development process must not get in the way of development• Agile

• We’re an Agile shop

Page 19: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Wanted to Be

SAS• Simple

• The development process must not get in the way of development• Agile

• We’re an Agile shop • Safe

• Developers must feel safe to experiment

Page 20: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Wanted to Be

SAS• Simple

• The development process must not get in the way of development• Agile

• We’re an Agile shop • Safe

• Developers must feel safe to experiment• Development must be safe, i.e. it doesn’t mystically disappear

Page 21: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Wanted to Be

SASA• Simple

• The development process must not get in the way of development• Agile

• We’re an Agile shop • Safe

• Developers must feel safe to experiment• Development must be safe, i.e. it doesn’t mystically disappear

• Auditable• Must be able to track who, what, when & why for each change

Page 22: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: Overview

Page 23: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

I’ve got two two words for you:

Version Control Sand Boxes

How We Got There: Overview

Page 24: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

About Version Control• “Version control is a system that records changes to a file or set of

files over time so that you can recall specific versions later.”* • Works well for text files; not so well for binariesAbout Git• Git is a version control system created by Linus Torvalds to maintain

the Linux kernel• It has many fans• Why Git? lmgtfy.com/?q=why+git• Vocabulary:

• branch – a version, or line of development• commit – a save point along a branch• merge – to bring two or more branches together

How We Got There: Overview

*from Pro Git by Scott Chacon and Ben Straub

Page 25: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

1.0

master

Page 26: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

1.0 1.1

master

Page 27: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

1.0 1.1 1.2 1.3

master

Page 28: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

58bbb6 a41b82 a51e56 f52ea7

master

Page 29: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

58bbb6

master

Page 30: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

58bbb6

8416d1master

jira123

Page 31: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Branching and Merging in a Nutshell

How We Got There: Overview

58bbb6

8416d1master

jira123

27decc

Page 32: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: Overview

58bbb6

8416d1

27decc

354e84

8b710b

a03e27 327db3

master

Branching and Merging in a Nutshell

jira123

jira345

jira456

Page 33: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Ok so how do we apply this to OBIEE?

How We Got There: Overview

?

Page 34: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

• Fortunately, the catalog consists primarily of text files so we can essentially just go ahead and put the catalog, or a least parts of the catalog, in Git

How We Got There: Overview

• Unfortunately, the RPD doesn’t, so it has to be converted to XML first

Page 35: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Now that we’ve got that figured out…

Lets talk Sandboxes

Many of the pain points we had were due to concurrent online development by multiple developers, or CODBMD

To resolve them each developer must have her own play space

How We Got There: Overview

Page 36: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: OverviewSandbox Rig

SBX1 SBX2 SBX3 SBX4

DEV1 DEV2 DEV3 DEV4 DEV5 DEV6

• Each SBXn is a distinct OBIEE instance • All SBX point to a shared data warehouse• Each DEVn is a developer’s Git repository with RPD and Catalog• A developer can deploy to any SBX

Page 37: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Process in Action

Page 38: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

Page 39: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to server

2. Checkout or create branch

3. Deploy

4. Develop

5. Pre-commit

6. Commit

Page 40: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Process Steps

1. Log in to server

Page 41: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Process Steps

2. Checkout or create branch

Page 42: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Process Steps

3. Deploy

Page 43: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Process Steps

4. Develop

Page 44: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Process Steps

5. Pre-commit

Page 45: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Process Steps

6. Commit

Page 46: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionIn Short:

1. Login, branch, deploy

2. Develop

3. Pre-commit, commit

#FTW

Page 47: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionLet’s do a practical example together.

Page 48: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to server

2. Checkout or create branch

3. Deploy

4. Develop

5. Pre-commit

6. Commit

Page 49: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to server

2. Checkout branch

3. Deploy

4. Review

5. Approve/reject in Jira

Page 50: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to server

2. git merge

3. git push

#FTW

Page 51: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to OBIEE Dev

2. Review

3. Approve/reject in Jira

Page 52: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to server

2. git pull

3. Deploy

Page 53: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionDevelopment Lifecycle

1. Develop

2. Peer Review

3. Merge to master

4. PO/Manager Review

5. Release to Test

6. Release to Prod

1. Log in to server

2. git pull

3. Deploy

Page 54: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionIs it Agile?

• Development is incremental• Facilitates code review/feedback • Branches organize development

with Jira stories• Release is a non-event

Hi, I’m Jira

Page 55: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

The Development Process in ActionIs it Auditable?Yes, absolutely.

Every single change to the code base is tagged with date, developer, ticket number, comment. Every single change can be inspected.

Page 56: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: Detail

Page 57: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: DetailThe magic is in the scripts• deploy• precommit

…and in a bit of configuration.

Page 58: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: DetailConfiguration neededSteps:1. Copy three catalog directories Git repo

root/sharedroot/system/metadataroot/system/privs

2. Replace these directories in MW Home with links to Git3. Set environment variables (e.g. path to Git repo)

Page 59: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: Detaildeploy

Steps:1. Convert XML to RPD using biserverxmlexec2. Point catalog links to my Git repo*3. Deploy the RPD using WLST

*only needed on sandbox

precommitSteps:1. Convert RPD to XML using biserverxmlgen2. Update catalog file permissions and ownership*3. Add changes to Git staging area

Page 60: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

How We Got There: DetailOK, yes there’s a bit more1. Git2. Utilities: ogstatus, clearreorders, rxq, …3. MY_LOGO4. ODI…5. Release process

Page 61: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Are Going from Here

Page 62: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Where We Are Going from HereBetter utilities to examine diffsBitbucketPort to Windows (maybe)Automate environment configuration

Page 63: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

Questions

Page 64: Agile Oracle BI Development -   · PDF fileAgile Oracle BI Development for Multiple Users with Git Yes, it can be done

64