Version Control for PL/SQL using Git

Download Report

Transcript Version Control for PL/SQL using Git

Version Control for PL/SQL
• About the Company
• What is the problem?
• How did we solve it?
• Demo!!
• Implementation Strategies
About Gerger
We help Oracle Database customers catch up to modern
technology.
Formspider
Application development framework for Oracle PL/SQL developers. First Class Web
and Mobile Applications with only PL/SQL as the programming language.
www.theformspider.com
Gitora
Tool to manage your PL/SQL code base with Git. www.gitora.com
Hundreds of customers in 30+ countries. Offices in
California, St. Louis in US and Istanbul in Europe.
[email protected]
(Formerly ING Insurance).
Turkish Telco.
Germany
US. Global manufacturer of
equipment used in product
assembly
Argentina. Government
of Rio Negro. Forms
Modernisation.
US Fortune 5 Company
United Kingdom
Netherlands
Azerbaijan.
Core Banking
Lithuania
Russia. Metkombank
Italy
Germany
Greece
Italy
Czech Republic .Logistics ERP
Russia
Germany
Peru. Financial Systems
Version Control is a difficult topic to talk about in the PL/SQL
Community.
Common version control tools are not available to PL/SQL
developers.
Every team created its own “system” that sort of kind of works
until it doesn’t.
Version Control of PL/SQL is confused with version control of
tables.
We can’t deploy as fast as other developers.
We can’t work together like other developer do.
We loose code more often.
We can’t respond to changes in business as quickly as other
developers.
We can’t work as productively as other developers.
It is harder for us to test our code automatically.
Moving code is more error prone.
Enforce version control in the database.
Lock PL/SQL objects in the database. (and still continue
using your favourite PL/SQL editor.)
Commit changes to PL/SQL objects to Git.
Move your changes between databases automatically.
Apply common version control commands such as merge,
branch, reset to the code in the database. (The PL/SQL in the
DB changes automatically.)
Manage packages, functions, procedures, views, triggers,
synonyms and object types in Git.
Success Story:Customer
Spotlight
Rhenus Logistics, leading logistics service company from
Germany, uses our solution.
Manages over 20,000 database objects
Database objects are spread over 30+ schemas
System Architect/Team Lead Michiel Arentsen blogs
about our solution at:
http://michielarentsen.blogspot.com/
Traditional PL/SQL Development
Manual
or any other version control system
1..n database servers
DEV
Queued access
RELEASE
TEST
INTEGRATION
QA
Manual deployment
USER ACCEPTANCE
PREPROD
PROD
Version control repo is a last resort back up
Blocking
Intermingled projects, features, hot fixes
Interrupting
Practically impossible to branch, merge
No automated testing
Developers are expected to follow version management rules manually.
How does it work?
We are missing a Git - Oracle bridge!!!
Edit PL/SQL Objects as usual in your favorite editor.
Log in to your own bridge in the editor (can be done automatically in most
cases).
Use bridge API’s or bridge GUI to perform version control tasks.
A database trigger listens to DDL events.
Version control commands update the database.
Bridge consists of a DB schema and some Java.
Only executes what’s changes in the DB. (Very fast!)
Demo!!!!
Demo Setup (One Repository)
Person responsible of releases
(manages all code in all Database Instances)
DEV1
DEV2
PREPROD
This can be any intermediate
server between PROD and DEV
Traditional PL/SQL Development
Manual
or any other version control system
1..n database servers
DEV
Queued access
RELEASE
TEST
INTEGRATION
QA
Manual deployment
USER ACCEPTANCE
PREPROD
PROD
Version control repo is a last resort back up
Blocking
Intermingled projects, features, hot fixes
Interrupting
Practically impossible to branch, merge
No automated testing
Developers are expected to follow version management rules manually.
PL/SQL Development with Gitora Step 1 (One Repository)
Person responsible for releases
(manages all code in all Database Instances)
Development on DEV
only. On some other DB’s
bug fixes may be allowed.
Automatic Script
Generation with Gitora
RELEASE
TEST
INTEGRATION
QA
DEV
Queued access
Blocking
Interrupting
USER ACCEPTANCE
HOTFIX
Automatic deployment
Intermingled projects, features
PROD
PREPROD
Source code is in Gitora
Faster hot fixes
Better automatic testing
Basic branching and merging is possible for hot fixes
Version control rules are enforced at the DB level and managed by a release manager.
PL/SQL Development Step 2 with Gitora (One Repository)
Person responsible of releases
(manages all code in all Database Instances)
Development on DEV only. On
some other DB’s bug fixes
may be allowed.
Automatic DDL Script
Generation with Gitora
DEV1
Fewer Queues
DEV2
N DEV servers
DEV1, DEV2,
DEV3,…DEVN
Automatic deployment
RELEASE
TEST
HOTFIX
INTEGRATION
QA
USER ACCEPTANCE
PREPROD
PROD
Source code is in Gitora
Less Blocking
Less intermingled projects, features
Less interruption
Basic branching and merging is possible
Hot fixes delivered faster
Better automatic testing
Version control rules are enforced at the DB level and managed by a release manager.
PL/SQL Development Step 3 with Gitora: Implement Any Git Workflow (One
Repository)
Person responsible of releases
Every developer works in a
private environment.
Each private environment
can be switched to a
branch.
(manages all code in all Database Instances)
Automatic DDL Script
Generation with Gitora
RELEASE
TEST
INTEGRATION
QA
RELEASE
TEST
HOTFIX
INTEGRATION
QA
USER ACCEPTANCE
PREPROD
Project Server [1..N]
No Queues
Automatic deployment
No Blocking
No blocking between projects, features
No Interruptions
PROD
Source code is in Gitora
Branching and merging is possible
Faster hot fixes
Great automated testing
Version control rules are enforced at the DB level and managed by a release manager.
Demo Setup (One Repository)
Person responsible of releases
(manages all code in all Database Instances)
DEV1
Fewer Queues
This can be any intermediate
server between PROD and DEV
DEV2
PREPROD
Automatic deployment
Source code is in Gitora
Less Blocking
Less intermingled projects, features
Less interruption
Basic branching and merging is possible
Hot fixes delivered faster
Better automatic testing
Version control rules are enforced at the DB level and managed by a release manager.
You can choose a workflow that fits your organization best.
Centralised Workflow
Feature Branch Workflow
Gitflow Workflow
Thank You!!!!
[email protected]