SlideShare a Scribd company logo
Database Deployment
Automation
EFSTATHIOS EFSTATHIOU
CEO, DATABASE-SERVERS.COM
Agenda
Introduction
A Friday afternoon story
The term automation reviewed
Automation Visions
Potential Tools and Frameworks
Building Basic Deployment Workflows
Conclusion
Q&A
Introduction
About Myself
◦ Married with children (one daughter, who I gave the advise to never work in IT)
◦ Linux since 1998
◦ Oracle since 2000
◦ OCM & OCP
◦ Chairman of NGENSTOR since 2014
◦ CEO of DATABASE-SERVERS since 2015
DATABASE-SERVERS.COM
The fastest way to run databases
Introduction
About DATABASE-SERVERS
◦ Founded in 2015
◦ Custom license-optimized whitebox servers
◦ Standard Operating Environment Toolkit for Oracle/Redhat/Suse Linux
◦ CLX Cloud Systems based on OVM/LXC Stack
◦ Performance kits for all brands (HP/Oracle/Dell/Lenovo)
◦ Water Cooling
◦ Overclocking
◦ HBA/SSD Upgrades
◦ Tuning/Redesign of Oracle Engineered Systems (ODA, Exadata)
◦ Storage Extension with NGENSTOR Arrays
◦ Performance Kits
◦ Merger with NGENSTOR
◦ More Appliances and more competition for Oracle Engineered Systems giving you more ROI
A Friday afternoon
story
Imagine
… it’s Friday 16:55 the developer finished the last lines of code and uploaded it to the versioning
system.
It’s just 5 minutes separating him from the weekend.
He sends out a mail to operations, who could send him to hell.
«Him again!!!!», yells Pete the DBA.
Before he can even think about looking at the code, the big boss calls him asking for a status.
Pete deploys the script, which throws an error.
Rollback is tricky and Pete’s weekend fucked up…
The term automation
reviewed
In our the database world we can separate into infrastructure and application tasks:
Infrastructure
◦ Server / VM deployment
◦ Database Creation
◦ Backup/Restore/Replication
◦ …
Application
◦ New Application Version
◦ New Interfaces
◦ New Attributes
◦ …
The term automation
reviewed
The two main areas we work on are:
Housekeeping / Recurring Tasks
◦ Gather Statics of your Databases (Schema)
◦ Cleanup of ADR
Change Management & Change Deployment
◦ Data Correction Patches
◦ New Application / Database / Host Setup
◦ OS / Database / Application Patching
The term automation
reviewed
Since the days of mainframe…
◦ You write a deployment or housekeeping script
◦ You eventually add this code to a versioning system and check it out
◦ You add it to a scheduler with conditions (e.g. JOB Control or cron)
◦ It works for your most important application, but only for that one
◦ You do not have a lifecycle
◦ You do not have configuration managment
◦ Your goal is to automate to deploy/run
The term automation
reviewed
In most companies Automation atm realized is:
Either
◦ Something they code theirselves
◦ To deploy stuff
◦ Using a scheduler
Or
◦ Something they bought a huge software suite for to kill the task and are still programming
◦ One department is leading
◦ Another Agent on the Machine besides the other 10 to 20
Automation
Visions
What everyone think it is
CIO (10’000m)
«Press button to deploy»
Architect (1000m)
«One solution fits all»
Developer (100m)
«Tool to deploy my scripts»
DBA (1m)
«Alot of work to clean up the mess and sleepless weekends"
Automation
Visions
What they think they actually need
CIO
Automation capability
Architect
Documented and standardized workflows
Developer
«A workflow to deploy my script»
DBA
Workflows, that can be executed by a Job Scheduler to:
Check scripts
Do Backup
Run Scripts
Post Check
Post Backup
Automation Visions
What Organization needs
Company
«Capability to map business processes into deployable workflows for the company’s IS applications»
IT Department
«Rebuild capability for their core applications such as their ERP System»
Potential Tools and
Frameworks
Tools
Job Schedulers (e.g. Control M)
Software Packaging (RPM, Redhat Satellite)
Provisioning (Puppet, HP Server Automation)
Versioning Systems (SourceSafe, SVN)
DevOps Tools (Delphix)
OS-Tools (System Center)
Host Tools
Potential Tools and
Frameworks
Key decisions for selecting tools
◦ Audience / Scope (entire IT, Development only)
◦ Reuse existing work and tool suites y/n?
◦ Do I want to have interfaces y/n?
◦ Do I want to map it to current organisation or do I want to make a transition?
◦ What are my KPI (no of deployments, failure rate)?
◦ Cost
◦ Time to market
◦ Additional added value
◦ Enforce Change Management
◦ Configuration Management
◦ Trackability / Reporting
Potential Tools and
Frameworks
Potential Pitfalls
◦ Automation/Provisioning Suites are often tuned for specific areas
◦ Provisioning, Development Tasks
◦ Often gaps, eg. bad Database Plugins => Coding
◦ Automation/Provisioning Suites have alot of features, but are stubborn
◦ You can spend a lot of time defining workflows
◦ Pure Schedulers have only few pre-defined Workflows
◦ Again: alot of coding 
◦ Your solution does only work for one team (e.g. Middleware) 
◦ Acceptance problem with other teams
◦ Requirement gap
◦ Code around the problems (customizing)
Potential Tools and
Frameworks
Solution Approaches
◦ Define what’s feasible and what not
◦ Database Versioning?
◦ Micro Changes
◦ Think in Services
◦ What does my team provide to other peers?
◦ Deployment
◦ Configuration Data
◦ How can I realize my services in my «environment»?
◦ How can I deploy the developer’s scripts using Cloud Control?
◦ How do I provide and lifecycle for my application scripts?
◦ Define Interfaces
◦ Development Suite to Oracle Cloud Control Job Submission
Potential Tools and
Frameworks
How we do it
◦ Use what’s available
◦ IBM UrbanCode Deploy for
◦ Script Versioning
◦ Middleware Workflows
◦ Cloud Control for
◦ Provisioning
◦ Store Target Properties (custom ones) for UrbanCode Interface
◦ Database Jobs
◦ SQL Script Execution
◦ Housekeeping
◦ Backup
Building Basic Deployment
Workflows
Non-Database People often understimate Database Deployments
◦ They think in files
◦ packages are most add/delete files/compile
◦ New installation means delete, config and deploy
◦ They have no user Data
◦ They do not see the database engine’s complexity is os-like
◦ An upgrade/change on the engine/appliacation will change the behaviour
◦ New data will be written in a different «format»
◦ Rollback is tricky, as the customer want’s to keep it’s data
◦ Backup is not enough, we need to migrate the data and it’s attributes
◦ Using database links, we can also touch data in a remote schema (for which we hopefully have a backup…)
Building Basic Deployment
Workflows
A minimal set of tasks for a database deployment
◦ Check, what databases are touched
◦ Backup
◦ Check Script Synthax
◦ Deploy
◦ Check Application
◦ Go/No Go
As simple as it sounds, mostly people overdo it right from the start 
Building Basic Deployment
Workflows
How we do it
Building Basic Deployment
Workflows
How we do it
Building Basic Deployment
Workflows
Set up credentials (required for script) execution
◦ To run host commands via Cloud Control or EMCLI (emcli execute_hostcmd)
◦ emcli set_credential -target_type=host -target_name=$host -credential_set=HostCredsNormal -user=UCD -
column="username:oracle;password:$1"
◦ To run sql commands via Cloud Control or EMCLI (emcli execute_sql)
◦ emcli set_credential -target_type=host -target_name=$host -credential_set=DBHostCreds -user=UCD -
column="username:oracle;password:$1"
◦ emcli set_credential -target_type=oracle_database -target_name=$db -credential_set=DBCredsNormal -user=UCD -
columns="username:sys;password:${ORA_PW_PREFIX}c${SID};role:sysdba"
◦ emcli set_credential -target_type=oracle_database -target_name=$db -credential_set=DBCredsSYSDBA -user=UCD -
columns="sysDBAUserName:sys;sysDBAPassword:${ORA_PW_PREFIX}c${SID};sysDBARole:sysdba"
Building Basic Deployment
Workflows
Create Proxy User
◦ Proxy Users and Auditing Proxy Users (Doc ID 782078.1)
CREATE USER UCD IDENTIFIED BY *********;
GRANT CREATE SESSION TO UCD;
ALTER USER DBSNMP GRANT CONNECT through UCD;
AUDIT SESSION;
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY UCD ON BEHALF OF DBSNMP;
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY DBSNMP BY ACCESS;
CONNECT UCD[DBSNMP]/*********;
CREATE TABLE test (id NUMBER);
INSERT INTO test VALUES(1);
commit;
Building Basic Deployment
Workflows
Target Properties
◦ Add
emcli add_target_property -target_type="oracle_database" -property="JDBC_CONNECTION_STRING"
emcli set_target_property_value -property_records="GRMAN01_GRMAN01_1:oracle_database:JDBC_CONNECTION_STRING:$host
GRMAN01_1 1568"
emcli remove_target_property -target_type="oracle_database" -property="JDBC_CONNECTION_STRING«
◦ Use
Building Basic Deployment
Workflows
Create a Job Template
Building Basic Deployment
Workflows
Use our Multi-Exec Template
Building Basic Deployment
Workflows
Fancy: Generate Delphix CLI Template
◦ Create a Multi-Exec Job in the Cloud Control Library
◦ Source0: https://community.delphix.com/delphix/topics/tip_of_the_day_using_the_cli_to_provision_an_oracle_vdb
◦ Integrate VDB Creation into your testing
◦ We use Delphix to create an ad-hoc VDB or a set, if changes span multiple databases (db-links)
◦ Workflow
◦ Checkout Nightly Build from IBM UCD
◦ Create VDB Env
◦ Test Script in VDB
◦ Check Result
◦ Approve/Reject Deployment
Building Basic Deployment
Workflows
WIP: Liquidbase
◦ Not all database types are supported
◦ Used for quality assurance
◦ Deploy to Dev
◦ Deploy to Test
◦ Run Liquidbase diff for QAS
◦ Generate Changelog file, if needed to correct the delta ;-)
Conclusion
Database Deployment Automation
◦ Is doable
◦ Still requires efforts from multiple teams
◦ Release management
◦ Development
◦ Dba
◦ Comes with no OOTB-Solution for all you individual Application needs
◦ There will always be a slight amount of code required
◦ Can be simplified using Automation Tools
◦ Oracle Cloud Control provides a very good job schedulder, CMDB facilicy and overall good Warehouse
◦ Wheither you script yourself or buy the management pack, it’s there: USE IT ;-)
◦ A Synthax Checker would be very welcome in future releases or generally more Developer-Friendly features like a Code
Versioning Plugin or SQL Script Repository
Q&A
Contact
elgreco@linux.com
efstathios.efstathiou@database-servers.com
Thank You

More Related Content

What's hot

Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Jignesh Shah
 
Managing storage on Prem and in Cloud
Managing storage on Prem and in CloudManaging storage on Prem and in Cloud
Managing storage on Prem and in Cloud
Howard Marks
 
Deep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL UniverseDeep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL Universe
Jignesh Shah
 
Developing a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure EnvironmentsDeveloping a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure Environments
Ceph Community
 
Postgres on OpenStack
Postgres on OpenStackPostgres on OpenStack
Postgres on OpenStack
EDB
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
2015 deploying flash in the data center
2015 deploying flash in the data center2015 deploying flash in the data center
2015 deploying flash in the data center
Howard Marks
 
Right-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual MachineRight-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual Machine
heraflux
 
Tuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris EnvironmentTuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris Environment
Jignesh Shah
 
Blue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQL
Blue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQLBlue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQL
Blue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQL
Blue Medora
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
Jignesh Shah
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
Jignesh Shah
 
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDSAccelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Ceph Community
 
Benefity Oracle Cloudu (4/4): Storage
Benefity Oracle Cloudu (4/4): StorageBenefity Oracle Cloudu (4/4): Storage
Benefity Oracle Cloudu (4/4): Storage
MarketingArrowECS_CZ
 
Ceph Day Shanghai - Opening
Ceph Day Shanghai - Opening Ceph Day Shanghai - Opening
Ceph Day Shanghai - Opening
Ceph Community
 
SM16 - Can i move my stuff to openstack
SM16 - Can i move my stuff to openstackSM16 - Can i move my stuff to openstack
SM16 - Can i move my stuff to openstack
pittmantony
 
JetStor portfolio update final_2020-2021
JetStor portfolio update final_2020-2021JetStor portfolio update final_2020-2021
JetStor portfolio update final_2020-2021
Gene Leyzarovich
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster Suite
EDB
 
PostgreSQL and Linux Containers
PostgreSQL and Linux ContainersPostgreSQL and Linux Containers
PostgreSQL and Linux Containers
Jignesh Shah
 
Ceph: Low Fail Go Scale
Ceph: Low Fail Go Scale Ceph: Low Fail Go Scale
Ceph: Low Fail Go Scale
Ceph Community
 

What's hot (20)

Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
 
Managing storage on Prem and in Cloud
Managing storage on Prem and in CloudManaging storage on Prem and in Cloud
Managing storage on Prem and in Cloud
 
Deep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL UniverseDeep Dive into RDS PostgreSQL Universe
Deep Dive into RDS PostgreSQL Universe
 
Developing a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure EnvironmentsDeveloping a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure Environments
 
Postgres on OpenStack
Postgres on OpenStackPostgres on OpenStack
Postgres on OpenStack
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
 
2015 deploying flash in the data center
2015 deploying flash in the data center2015 deploying flash in the data center
2015 deploying flash in the data center
 
Right-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual MachineRight-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual Machine
 
Tuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris EnvironmentTuning DB2 in a Solaris Environment
Tuning DB2 in a Solaris Environment
 
Blue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQL
Blue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQLBlue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQL
Blue Medora Oracle Enterprise Manager (EM12c) Plug-in for PostgreSQL
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
 
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDSAccelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
 
Benefity Oracle Cloudu (4/4): Storage
Benefity Oracle Cloudu (4/4): StorageBenefity Oracle Cloudu (4/4): Storage
Benefity Oracle Cloudu (4/4): Storage
 
Ceph Day Shanghai - Opening
Ceph Day Shanghai - Opening Ceph Day Shanghai - Opening
Ceph Day Shanghai - Opening
 
SM16 - Can i move my stuff to openstack
SM16 - Can i move my stuff to openstackSM16 - Can i move my stuff to openstack
SM16 - Can i move my stuff to openstack
 
JetStor portfolio update final_2020-2021
JetStor portfolio update final_2020-2021JetStor portfolio update final_2020-2021
JetStor portfolio update final_2020-2021
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster Suite
 
PostgreSQL and Linux Containers
PostgreSQL and Linux ContainersPostgreSQL and Linux Containers
PostgreSQL and Linux Containers
 
Ceph: Low Fail Go Scale
Ceph: Low Fail Go Scale Ceph: Low Fail Go Scale
Ceph: Low Fail Go Scale
 

Similar to SOUG_Deployment__Automation_DB

DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
Kellyn Pot'Vin-Gorman
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
Maaz Anjum
 
Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"Piyush Kumar
 
Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdf
Alex446314
 
What should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic AdminsWhat should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic Admins
Simon Haslam
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
Gert Drapers
 
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginnersKoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
Tobias Koprowski
 
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginnersKoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
Tobias Koprowski
 
Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
SharePointRadi
 
Exploring Scalability, Performance And Deployment
Exploring Scalability, Performance And DeploymentExploring Scalability, Performance And Deployment
Exploring Scalability, Performance And Deploymentrsnarayanan
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
Harry Zheng
 
SQL Server - High availability
SQL Server - High availabilitySQL Server - High availability
SQL Server - High availability
Peter Gfader
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Enkitec
 
SQLite3
SQLite3SQLite3
SQLite3
cltru
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practicesCode Mastery
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql database
PARIKSHIT SAVJANI
 

Similar to SOUG_Deployment__Automation_DB (20)

DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
 
Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"
 
Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdf
 
What should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic AdminsWhat should I do now?! JCS for WebLogic Admins
What should I do now?! JCS for WebLogic Admins
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginnersKoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
KoprowskiT_SQLSaturday409_MaintenancePlansForBeginners
 
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginnersKoprowskiT_SQLSat409_MaintenancePlansForBeginners
KoprowskiT_SQLSat409_MaintenancePlansForBeginners
 
Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
 
Exploring Scalability, Performance And Deployment
Exploring Scalability, Performance And DeploymentExploring Scalability, Performance And Deployment
Exploring Scalability, Performance And Deployment
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
 
SQL Server - High availability
SQL Server - High availabilitySQL Server - High availability
SQL Server - High availability
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
 
SQLite3
SQLite3SQLite3
SQLite3
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql database
 

More from UniFabric

The Fabric of the Future
The Fabric of the FutureThe Fabric of the Future
The Fabric of the Future
UniFabric
 
SOUG IMDT Oracle In-Memory
SOUG IMDT Oracle In-MemorySOUG IMDT Oracle In-Memory
SOUG IMDT Oracle In-Memory
UniFabric
 
UniPlex Desktop Memory & PCIe Expansion
UniPlex Desktop Memory & PCIe ExpansionUniPlex Desktop Memory & PCIe Expansion
UniPlex Desktop Memory & PCIe Expansion
UniFabric
 
UniFabric
UniFabricUniFabric
UniFabric
UniFabric
 
Building an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optaneBuilding an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optane
UniFabric
 
Offloading for Databases - Deep Dive
Offloading for Databases - Deep DiveOffloading for Databases - Deep Dive
Offloading for Databases - Deep Dive
UniFabric
 
UniPlex_CalibrateIO
UniPlex_CalibrateIOUniPlex_CalibrateIO
UniPlex_CalibrateIO
UniFabric
 
UniPlex T1 Storage Supercharger
UniPlex T1 Storage SuperchargerUniPlex T1 Storage Supercharger
UniPlex T1 Storage Supercharger
UniFabric
 
UniPlex 1000 Series PCIe NVMe JBOF
UniPlex 1000 Series PCIe NVMe JBOFUniPlex 1000 Series PCIe NVMe JBOF
UniPlex 1000 Series PCIe NVMe JBOF
UniFabric
 

More from UniFabric (9)

The Fabric of the Future
The Fabric of the FutureThe Fabric of the Future
The Fabric of the Future
 
SOUG IMDT Oracle In-Memory
SOUG IMDT Oracle In-MemorySOUG IMDT Oracle In-Memory
SOUG IMDT Oracle In-Memory
 
UniPlex Desktop Memory & PCIe Expansion
UniPlex Desktop Memory & PCIe ExpansionUniPlex Desktop Memory & PCIe Expansion
UniPlex Desktop Memory & PCIe Expansion
 
UniFabric
UniFabricUniFabric
UniFabric
 
Building an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optaneBuilding an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optane
 
Offloading for Databases - Deep Dive
Offloading for Databases - Deep DiveOffloading for Databases - Deep Dive
Offloading for Databases - Deep Dive
 
UniPlex_CalibrateIO
UniPlex_CalibrateIOUniPlex_CalibrateIO
UniPlex_CalibrateIO
 
UniPlex T1 Storage Supercharger
UniPlex T1 Storage SuperchargerUniPlex T1 Storage Supercharger
UniPlex T1 Storage Supercharger
 
UniPlex 1000 Series PCIe NVMe JBOF
UniPlex 1000 Series PCIe NVMe JBOFUniPlex 1000 Series PCIe NVMe JBOF
UniPlex 1000 Series PCIe NVMe JBOF
 

SOUG_Deployment__Automation_DB

  • 2. Agenda Introduction A Friday afternoon story The term automation reviewed Automation Visions Potential Tools and Frameworks Building Basic Deployment Workflows Conclusion Q&A
  • 3. Introduction About Myself ◦ Married with children (one daughter, who I gave the advise to never work in IT) ◦ Linux since 1998 ◦ Oracle since 2000 ◦ OCM & OCP ◦ Chairman of NGENSTOR since 2014 ◦ CEO of DATABASE-SERVERS since 2015 DATABASE-SERVERS.COM The fastest way to run databases
  • 4. Introduction About DATABASE-SERVERS ◦ Founded in 2015 ◦ Custom license-optimized whitebox servers ◦ Standard Operating Environment Toolkit for Oracle/Redhat/Suse Linux ◦ CLX Cloud Systems based on OVM/LXC Stack ◦ Performance kits for all brands (HP/Oracle/Dell/Lenovo) ◦ Water Cooling ◦ Overclocking ◦ HBA/SSD Upgrades ◦ Tuning/Redesign of Oracle Engineered Systems (ODA, Exadata) ◦ Storage Extension with NGENSTOR Arrays ◦ Performance Kits ◦ Merger with NGENSTOR ◦ More Appliances and more competition for Oracle Engineered Systems giving you more ROI
  • 5. A Friday afternoon story Imagine … it’s Friday 16:55 the developer finished the last lines of code and uploaded it to the versioning system. It’s just 5 minutes separating him from the weekend. He sends out a mail to operations, who could send him to hell. «Him again!!!!», yells Pete the DBA. Before he can even think about looking at the code, the big boss calls him asking for a status. Pete deploys the script, which throws an error. Rollback is tricky and Pete’s weekend fucked up…
  • 6. The term automation reviewed In our the database world we can separate into infrastructure and application tasks: Infrastructure ◦ Server / VM deployment ◦ Database Creation ◦ Backup/Restore/Replication ◦ … Application ◦ New Application Version ◦ New Interfaces ◦ New Attributes ◦ …
  • 7. The term automation reviewed The two main areas we work on are: Housekeeping / Recurring Tasks ◦ Gather Statics of your Databases (Schema) ◦ Cleanup of ADR Change Management & Change Deployment ◦ Data Correction Patches ◦ New Application / Database / Host Setup ◦ OS / Database / Application Patching
  • 8. The term automation reviewed Since the days of mainframe… ◦ You write a deployment or housekeeping script ◦ You eventually add this code to a versioning system and check it out ◦ You add it to a scheduler with conditions (e.g. JOB Control or cron) ◦ It works for your most important application, but only for that one ◦ You do not have a lifecycle ◦ You do not have configuration managment ◦ Your goal is to automate to deploy/run
  • 9. The term automation reviewed In most companies Automation atm realized is: Either ◦ Something they code theirselves ◦ To deploy stuff ◦ Using a scheduler Or ◦ Something they bought a huge software suite for to kill the task and are still programming ◦ One department is leading ◦ Another Agent on the Machine besides the other 10 to 20
  • 10. Automation Visions What everyone think it is CIO (10’000m) «Press button to deploy» Architect (1000m) «One solution fits all» Developer (100m) «Tool to deploy my scripts» DBA (1m) «Alot of work to clean up the mess and sleepless weekends"
  • 11. Automation Visions What they think they actually need CIO Automation capability Architect Documented and standardized workflows Developer «A workflow to deploy my script» DBA Workflows, that can be executed by a Job Scheduler to: Check scripts Do Backup Run Scripts Post Check Post Backup
  • 12. Automation Visions What Organization needs Company «Capability to map business processes into deployable workflows for the company’s IS applications» IT Department «Rebuild capability for their core applications such as their ERP System»
  • 13. Potential Tools and Frameworks Tools Job Schedulers (e.g. Control M) Software Packaging (RPM, Redhat Satellite) Provisioning (Puppet, HP Server Automation) Versioning Systems (SourceSafe, SVN) DevOps Tools (Delphix) OS-Tools (System Center) Host Tools
  • 14. Potential Tools and Frameworks Key decisions for selecting tools ◦ Audience / Scope (entire IT, Development only) ◦ Reuse existing work and tool suites y/n? ◦ Do I want to have interfaces y/n? ◦ Do I want to map it to current organisation or do I want to make a transition? ◦ What are my KPI (no of deployments, failure rate)? ◦ Cost ◦ Time to market ◦ Additional added value ◦ Enforce Change Management ◦ Configuration Management ◦ Trackability / Reporting
  • 15. Potential Tools and Frameworks Potential Pitfalls ◦ Automation/Provisioning Suites are often tuned for specific areas ◦ Provisioning, Development Tasks ◦ Often gaps, eg. bad Database Plugins => Coding ◦ Automation/Provisioning Suites have alot of features, but are stubborn ◦ You can spend a lot of time defining workflows ◦ Pure Schedulers have only few pre-defined Workflows ◦ Again: alot of coding  ◦ Your solution does only work for one team (e.g. Middleware)  ◦ Acceptance problem with other teams ◦ Requirement gap ◦ Code around the problems (customizing)
  • 16. Potential Tools and Frameworks Solution Approaches ◦ Define what’s feasible and what not ◦ Database Versioning? ◦ Micro Changes ◦ Think in Services ◦ What does my team provide to other peers? ◦ Deployment ◦ Configuration Data ◦ How can I realize my services in my «environment»? ◦ How can I deploy the developer’s scripts using Cloud Control? ◦ How do I provide and lifecycle for my application scripts? ◦ Define Interfaces ◦ Development Suite to Oracle Cloud Control Job Submission
  • 17. Potential Tools and Frameworks How we do it ◦ Use what’s available ◦ IBM UrbanCode Deploy for ◦ Script Versioning ◦ Middleware Workflows ◦ Cloud Control for ◦ Provisioning ◦ Store Target Properties (custom ones) for UrbanCode Interface ◦ Database Jobs ◦ SQL Script Execution ◦ Housekeeping ◦ Backup
  • 18. Building Basic Deployment Workflows Non-Database People often understimate Database Deployments ◦ They think in files ◦ packages are most add/delete files/compile ◦ New installation means delete, config and deploy ◦ They have no user Data ◦ They do not see the database engine’s complexity is os-like ◦ An upgrade/change on the engine/appliacation will change the behaviour ◦ New data will be written in a different «format» ◦ Rollback is tricky, as the customer want’s to keep it’s data ◦ Backup is not enough, we need to migrate the data and it’s attributes ◦ Using database links, we can also touch data in a remote schema (for which we hopefully have a backup…)
  • 19. Building Basic Deployment Workflows A minimal set of tasks for a database deployment ◦ Check, what databases are touched ◦ Backup ◦ Check Script Synthax ◦ Deploy ◦ Check Application ◦ Go/No Go As simple as it sounds, mostly people overdo it right from the start 
  • 22. Building Basic Deployment Workflows Set up credentials (required for script) execution ◦ To run host commands via Cloud Control or EMCLI (emcli execute_hostcmd) ◦ emcli set_credential -target_type=host -target_name=$host -credential_set=HostCredsNormal -user=UCD - column="username:oracle;password:$1" ◦ To run sql commands via Cloud Control or EMCLI (emcli execute_sql) ◦ emcli set_credential -target_type=host -target_name=$host -credential_set=DBHostCreds -user=UCD - column="username:oracle;password:$1" ◦ emcli set_credential -target_type=oracle_database -target_name=$db -credential_set=DBCredsNormal -user=UCD - columns="username:sys;password:${ORA_PW_PREFIX}c${SID};role:sysdba" ◦ emcli set_credential -target_type=oracle_database -target_name=$db -credential_set=DBCredsSYSDBA -user=UCD - columns="sysDBAUserName:sys;sysDBAPassword:${ORA_PW_PREFIX}c${SID};sysDBARole:sysdba"
  • 23. Building Basic Deployment Workflows Create Proxy User ◦ Proxy Users and Auditing Proxy Users (Doc ID 782078.1) CREATE USER UCD IDENTIFIED BY *********; GRANT CREATE SESSION TO UCD; ALTER USER DBSNMP GRANT CONNECT through UCD; AUDIT SESSION; AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY UCD ON BEHALF OF DBSNMP; AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY DBSNMP BY ACCESS; CONNECT UCD[DBSNMP]/*********; CREATE TABLE test (id NUMBER); INSERT INTO test VALUES(1); commit;
  • 24. Building Basic Deployment Workflows Target Properties ◦ Add emcli add_target_property -target_type="oracle_database" -property="JDBC_CONNECTION_STRING" emcli set_target_property_value -property_records="GRMAN01_GRMAN01_1:oracle_database:JDBC_CONNECTION_STRING:$host GRMAN01_1 1568" emcli remove_target_property -target_type="oracle_database" -property="JDBC_CONNECTION_STRING« ◦ Use
  • 26. Building Basic Deployment Workflows Use our Multi-Exec Template
  • 27. Building Basic Deployment Workflows Fancy: Generate Delphix CLI Template ◦ Create a Multi-Exec Job in the Cloud Control Library ◦ Source0: https://community.delphix.com/delphix/topics/tip_of_the_day_using_the_cli_to_provision_an_oracle_vdb ◦ Integrate VDB Creation into your testing ◦ We use Delphix to create an ad-hoc VDB or a set, if changes span multiple databases (db-links) ◦ Workflow ◦ Checkout Nightly Build from IBM UCD ◦ Create VDB Env ◦ Test Script in VDB ◦ Check Result ◦ Approve/Reject Deployment
  • 28. Building Basic Deployment Workflows WIP: Liquidbase ◦ Not all database types are supported ◦ Used for quality assurance ◦ Deploy to Dev ◦ Deploy to Test ◦ Run Liquidbase diff for QAS ◦ Generate Changelog file, if needed to correct the delta ;-)
  • 29. Conclusion Database Deployment Automation ◦ Is doable ◦ Still requires efforts from multiple teams ◦ Release management ◦ Development ◦ Dba ◦ Comes with no OOTB-Solution for all you individual Application needs ◦ There will always be a slight amount of code required ◦ Can be simplified using Automation Tools ◦ Oracle Cloud Control provides a very good job schedulder, CMDB facilicy and overall good Warehouse ◦ Wheither you script yourself or buy the management pack, it’s there: USE IT ;-) ◦ A Synthax Checker would be very welcome in future releases or generally more Developer-Friendly features like a Code Versioning Plugin or SQL Script Repository
  • 30. Q&A