Agile Oracle BI Development for Multiple Users with Git. Yes, it can be done

Similar documents
Heidi Hasting. Bringing source control to BI world!

Version Control Systems: Subversion

advanced All you need to know about branching, merging and DV CS FOR GAME DEVELOPERS

Infoblox and Ansible Integration

Splunk ConfiguraAon Management and Deployment with Ansible

This Lecture. G52GRP : Lecture 3. Sharing Code and Documents (2) Sharing Code and Documents (1)

Ansible at Scale. David Melamed Senior Research Engineer, CTO Office, CloudLock

PAGE 1 THE PERFECT WORDPRESS DEVELOPMENT WORKFLOW

MULTI CLOUD AS CODE WITH ANSIBLE & TOWER

INTRODUCTION CONTENTS BEGINNER S GUIDE: CONTROL WITH RED HAT ANSIBLE TOWER

AUTOMATION ACROSS THE ENTERPRISE

ANSIBLE AUTOMATION AT TJX

DevOPS, Ansible and Automation for the DBA. Tech Experience 18, Amsersfoot 7 th / 8 th June 2018

Set Up Your Domain Here

Theoretical Category 5: Lack of Time

Advanced Analytics at Scale: Deploying Data Science in the Enterprise

Contribute to CircuitPython with Git and GitHub

Infrastructure at your Service. Setup Oracle Infrastructure with Vagrant & Ansible

Oracle Hyperion FDM Powerful

Zero Touch Provisioning of NIOS on Openstack using Ansible

<Insert Picture Here> Using ERPi for EBS/FDM Data Loads into HFM

MITOCW watch?v=g2noqcegscm

Getting started with Ansible and Oracle

Provisioning MongoDB with Vagrant and Chef. Nathen Harvey Web Opera=ons, CustomInk

WELCOME TO THE SWRE. Software for Renewable Energy - Bay Area. 23Feb12 Meetup: Intro to SWRE

What is Tableau and Why Should I Care? Karen Rahmeier and Melissa Perry, Codecinella Madison WI, June 26, 2018

Get Automating with Infoblox DDI IPAM and Ansible

2016 Insurance Office of America Corporate 5k

CSE 125 Boot Camp. Or: How I Learned to Stop Worrying and Love The Lab

The recommended way for deploying a OSS DC/OS cluster on GCE is using Terraform.

PaperCut PaperCut Payment Gateway Module - CBORD Quick Start Guide

all-in-one meeting guide How to Gain Control of Your Time

THE FAST START GUIDE BOOK

OCEAN DATA SYSTEMS The Art of Industrial Intelligence. User Friendly & Programming Free Reporting. Product Overview. Dream Report

Button Push Deployments With Integrated Red Hat Open Management

Wordpress Wizard... 3 Section 1 Wordpress Getting Your Domain... 4 Get Your Hosting Plan... 5 Updating Your Name Servers in NameCheap...

Automation and configuration management across hybrid clouds with CloudForms, Satellite 6, Ansible Tower

Making Domino Designer work like you want

Game Production Practice DR. ROBERT ZUBEK, SOMASIM LLC EECS-397/497: GAME DEVELOPMENT STUDIO WINTER QUARTER 2018 NORTHWESTERN UNIVERSITY

MODULE 4 CREATING SOCIAL MEDIA CONTENT

Automate Patching for Oracle Database in your Private Cloud

Autonomous Maintenance

Malaysian Open Source Conference (The) Multi Facets of the Open Source Tools. Muhammad Najmi Ahmad Zabidi

Infrastructure as Code CS398 - ACC

FMW Automatic install using cloning

Bazaar. Distributed Version Control. Andrew Bennetts 5th April, Introduction Bazaar: Distributed Version Control The End

Digital Asset Management 7. Interactive Media and Game Development process

Employment Tax Incentive - ETI

Enhancing Secrets Management in Ansible with CyberArk Application Identity Manager

HASHICORP TERRAFORM AND RED HAT ANSIBLE AUTOMATION Infrastructure as code automation

Testing is More Than Checking

I'd love to get started...

Ansible Tower Quick Setup Guide

(Give this to them after you turn their contract in) Before Your Training Show

Product Overview. Dream Report. OCEAN DATA SYSTEMS The Art of Industrial Intelligence. User Friendly & Programming Free Reporting.

Creating Agile Programs:

SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other

GROSSUM GUIDE FIVE IMPORTANT THINGS TO CONSIDER BEFORE DEVELOPING YOUR WEB OR MOBILE STARTUP

Create and deploy a basic JHipster application to Heroku

AGENTLESS ARCHITECTURE

ANSIBLE TOWER OVERVIEW AND ROADMAP. Bill Nottingham Senior Principal Product Manager

Modern Provisioning and CI/CD with Terraform, Terratest & Jenkins. Duncan Hutty

Ansible Tower on the AWS Cloud

UNIT-III LIFE-CYCLE PHASES

PaperCut Cloud Services: FAQs and Troubleshooting. Channel Availability Release: 18.3

Automation: Making the Best Choice for Your Organization

The Five R s for Developing Trusted Software Frameworks to increase confidence in, and maximise reuse of, Open Source Software

ansible-workshop Documentation

HOW TO GET THAT NEXT PM JOB

Teacher Commentary Transcript

Versionare - GIT ALIN ZAMFIROIU

How to Create Video Files that Aren t Actually Video. Steve Haskin, S > Media

Introducing EdgeBSD. FOSDEM 2014 Brussels, Belgium. Pierre Pronchery February 1 st Introducing EdgeBSD (CC BY-NC-SA)

One Hour YouTube Pro... 3 Section 1 One Hour YouTube System... 4 Find Your Niche... 4 ClickBank... 5 Tips for Choosing a Product...

QueeRomance Ink Author Instructions

Ansible Tower Quick Setup Guide

Timken Bearing. maintenance Training

Are You Ready To Start Earning Thousands of Dollars As A Home-Based Business Owner?

Fractions Comparison. Chapter Fractions as Historical Leftovers

freelancing FOR BEGINNERS

Ansible + Hadoop. Deploying Hortonworks Data Platform with Ansible. Michael Young Solutions Engineer February 23, 2017

Hyperion System 9 Financial Data Quality Management

Ansible in Depth WHITEPAPER. ansible.com

Senion IPS 101. An introduction to Indoor Positioning Systems

Celtx Studios Owner's Manual January 2011

Database Operations at Groupon using Ansible. Mani Subramanian Sr. Manager Global Database Services Groupon

Tips, Tricks, and Pitfalls When Getting Started Outsourcing to the Philippines

WEB I/O. Wireless On/Off Control USER MANUAL

HVAC in AutoCAD MEP: New and Improved. David Butts Gannett Fleming MP3724-L. Learning Objectives. At the end of this class, you will be able to:

Photo Crush Day Four. dayfour

EPISODE 674 [INTRODUCTION]

Large-scale Stability and Performance of the Ceph File System

OPEN SOURCING ANSIBLE

BLACKBOARD LEARN 9.1: BASIC TRAINING- PART 1

DocuSign for Sugar 7 v1.0. Overview. Quick Start Guide. Published December 5, 2013

The CASA Release Process

How to set up a Wordpress blog

Leadership: Getting and Giving the Call for Action

Those Dog Gone Wrinkles. Olga Sanderson. Book Title. Author

Inkpebble Documentation

Transcription:

1

Agile Oracle BI Development for Multiple Users with Git Yes, it can be done

Harvard University Founded 1636 20,000 active students 7,500 degrees awarded/year 2,475 faculty 18,000 total employees

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

Agenda 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

OBIEE Development Domains Catalog RPD

Where We Were

Where We Were Single DEV environment Concurrent online development by many developers Catalog development straightforward but... Developer 1 Developer 2 Developer 3 DEV Developer 6 Developer 5 Developer 4

Where We Were Single DEV environment Concurrent online development by many developers Catalog development straightforward but... Difficult to coordinate RPD work Developer 1 Developer 2 Developer 3 DEV Developer 6 Developer 5 Developer 4

Where We Were Single DEV environment Concurrent online development by many developers Catalog development straightforward but... Difficult to coordinate RPD work Developer 1 Developer 2 Developer 3 Disappearing development DEV Developer 6 Developer 5 Developer 4

Where We Were Single DEV environment Concurrent online development by many developers Catalog development straightforward but... Difficult to coordinate RPD work Developer 1 Developer 2 Developer 3 Disappearing development Fear of trying new things DEV Developer 6 Developer 5 Developer 4

Where We Were Single DEV environment Concurrent online development by many developers Catalog development straightforward but... Difficult to coordinate RPD work Developer 1 Developer 2 Developer 3 Disappearing development Fear of trying new things DEV Impossible to audit changes Developer 6 Developer 5 Developer 4

Where We Were Single DEV environment Concurrent online development by many developers Catalog development straightforward but... Difficult to coordinate RPD work Developer 1 Developer 2 Developer 3 Disappearing development Fear of trying new things DEV Impossible to audit changes Developer 6 Merging with the Admin tool is a nightmare Developer 5 Developer 4

Where We Were 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 Developer 1 Developer 6 Developer 2 Developer 3 DEV Developer 5 Developer 4

Where We Were This is *not* source control.

Where We Wanted to Be

Where We Wanted to Be Simple The development process must not get in the way of development S

Where We Wanted to Be SA Simple The development process must not get in the way of development Agile We re an Agile shop

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

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

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

How We Got There: Overview

How We Got There: Overview I ve got two two words for you: Version Control Sand Boxes

How We Got There: Overview 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 binaries About 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 *from Pro Git by Scott Chacon and Ben Straub

How We Got There: Overview Branching and Merging in a Nutshell master 1.0

How We Got There: Overview Branching and Merging in a Nutshell master 1.0 1.1

How We Got There: Overview Branching and Merging in a Nutshell master 1.0 1.1 1.2 1.3

How We Got There: Overview Branching and Merging in a Nutshell master 58bbb6 a41b82 a51e56 f52ea7

How We Got There: Overview Branching and Merging in a Nutshell master 58bbb6

How We Got There: Overview Branching and Merging in a Nutshell jira123 master 8416d1 58bbb6

How We Got There: Overview Branching and Merging in a Nutshell jira123 8416d1 master 58bbb6 27decc

How We Got There: Overview Branching and Merging in a Nutshell jira123 8416d1 master 58bbb6 27decc a03e27 327db3 jira345 8b710b jira456 354e84

How We Got There: Overview Ok so how do we apply this to OBIEE??

How We Got There: Overview 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 Unfortunately, the RPD doesn t, so it has to be converted to XML first

How We Got There: Overview 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 Sandbox 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

The Process in Action

The Development Process in Action Development Lifecycle 1. Develop 2. Peer Review 3. Merge to master 4. PO/Manager Review 5. Release to Test 6. Release to Prod

The Development Process in Action Development 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

The Development Process in Action Development Process Steps 1. Log in to server

The Development Process in Action Development Process Steps 2. Checkout or create branch

The Development Process in Action Development Process Steps 3. Deploy

The Development Process in Action Development Process Steps 4. Develop

The Development Process in Action Development Process Steps 5. Pre-commit

The Development Process in Action Development Process Steps 6. Commit

The Development Process in Action In Short: 1. Login, branch, deploy 2. Develop 3. Pre-commit, commit #FTW

The Development Process in Action Let s do a practical example together.

The Development Process in Action Development 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

The Development Process in Action Development 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

The Development Process in Action Development 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

The Development Process in Action Development 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

The Development Process in Action Development 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

The Development Process in Action Development 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

The Development Process in Action Is it Agile? Development is incremental Facilitates code review/feedback Branches organize development with Jira stories Release is a non-event Hi, I m Jira

The Development Process in Action Is 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.

How We Got There: Detail

How We Got There: Detail The magic is in the scripts deploy precommit and in a bit of configuration.

How We Got There: Detail Configuration needed Steps: 1. Copy three catalog directories Git repo root/shared root/system/metadata root/system/privs 2. Replace these directories in MW Home with links to Git 3. Set environment variables (e.g. path to Git repo)

How We Got There: Detail deploy Steps: 1. Convert XML to RPD using biserverxmlexec 2. Point catalog links to my Git repo* 3. Deploy the RPD using WLST precommit Steps: 1. Convert RPD to XML using biserverxmlgen 2. Update catalog file permissions and ownership* 3. Add changes to Git staging area *only needed on sandbox

How We Got There: Detail OK, yes there s a bit more 1. Git 2. Utilities: ogstatus, clearreorders, rxq, 3. MY_LOGO 4. ODI 5. Release process

Where We Are Going from Here

Where We Are Going from Here Better utilities to examine diffs Bitbucket Port to Windows (maybe) Automate environment configuration

Questions

64