4. Agenda
• What is DevOps?
• Issues DevOps and database development;
• Traditional approach;
• Current approach;
• Build Phase;
• Delivery Phase;
• Integration Phase;
• Other areas to focus on.
5. What is DevOps
• Definition
• DevOps is the practice of operations and development engineers
participating together in the entire service lifecycle, from design
through the development process to production support;
• Focus
• This presentation focuses on Continuous Delivery and Continuous
Integration
6. Issues for DB
• Database must maintain state:
• Libraries can be deleted and replaced;
• Can’t simply drop a table and replace it with new structure;
• Must update the structure and maintain the data;
• Industry wide standards not adapted:
• Different standards in different organizations;
• Coding standards in other languages are more mature;
• Tool space not consistent:
• Toad;
• SQL Developer;
• Tends to be IDE that developer prefers – if company will pay for it;
7. Traditional Approach
• Developer creates/modifies packages and DDL directly on
the development box;
• Developer tests the package using manual scripts;
• Scripts are saved locally, possibly added to a source
repository;
• DBA and development team code review;
• Deployed manually to a higher environments.
8. Issues
• Lots of delays:
• Wait for scripts to be deployed manually by a DBA team, who are
not in a position to act immediately;
• Can happen for each environment;
• Low Quality
• Unit testing not repeatable, so impact of a change is not assessed;
• Code reviews get squeezed out of the delivery due to time
constraints;
• Environments are not maintained in a consistent state;
• Not capturing metrics for development;
10. Test Driven Development
• Test scenarios are outlined first:
• Packages and DDL changes are developed on developer
owned box – Oracle XE;
• Code is run through code quality checker;
• Developer commits when unit tests are run successfully.
11. Unit test framework
• Use existing framework:
• UTPLSQL;
• SQL Developer Unit Test framework;
• Toad - Code Tester for Oracle;
• PLUTO;
• DBUnit;
• Unit Test Scenarios:
• Scenarios in the form Should do x when given y;
• Scenarios need to be isolated and repeatable;
• Unit test code is first class citizen:
• Logging;
• Stored in the source repository;
• Ideally want to run at compile time (for changes) and full suite
(for integration).
12. UT Code Coverage
• Not part of existing framework;
• Use DBMS_PROFILE in conjunction with UTPLSQL
• Created a wrapper JAR calling
• Clear DBMS_PROFILE tables;
• DBMS_PROFILE start;
• Run unit tests;
• Stop DBMS_PROFILE;
• Extract the content to file;
• Line coverage not complete code coverage
• Does not cover multi-clause logic
• e.g. if (l_var1 = ‘X’ OR l_var2 = ‘Y’) ;
• Does not cover logic included in views;
• This can give a false sense of security;
• Code Coverage is a new feature of Oracle 12c.
13. Code Quality
• Scan of your PLSQL code to see does it meet expected
level of quality;
• Supports the scan of entire code base or just changed
objects;
• Captures metrics and can be used to stop build if quality
level is not met;
• Can check:
• Naming conventions;
• Use of antiquated types;
• Ensure use of ANSI sql;
• Commenting convention;
• Poorly written code;
• Code quality rules should tie in with your DB Standards;
14. Code Quality Tools
• SonarQube:
• Comes with an add in for PLSQL;
• No support for Unit test results and coverage in add-in;
• Supplement PLSQL with Generic test plug-in:
• Extra results fro unit testing into specific file format;
• Push files to scan location;
• Results displayed in PLSQL;
• SQL Developer:
• Enable PLSQL_Warnings in the IDE.
• Warnings will be displayed at run time;
• Not archived for progress;
• Toad:
• Code Analyzer – checks against its own xPath rules.
15. Commit to repository
• The following items are committed to code repository:
• DDL changes;
• Migration Scripts;
• Unit Tests;
• Change log updates for deployment tool.
16. Code Review
• Pull requests are used to review code:
• Unit Tests;
• DDL scripts;
• Package scripts;
• Code quality results;
• Any design documentation;
• Having a code quality check does not negate need for
code reviews;
• Not the main source of knowledge transfer
• have separate sessions with wider team
• Build cannot proceed without approval;
• Approval leads to a merge on the feature branch;
• Merge automatically initiates the next step.
17. Build Phase Improvements
• On commit runs:
• Run unit tests for code that has changed – not entire suite;
• Run code quality checks on commit;
• Socialize code reviews – looking at using Crucible;
• Imbed quality rules into code editors:
• This is possible with SQL Developer and Toad;
• Don’t have commitment to single tool which makes the problem
more difficult to solve;
• Capture code xPlans and run through DBA ruleset;
• Better integration with DB modelling process;
18. Delivery
• Purpose of delivery phase is to package up the feature
change;
• This package is stored in artefact repository;
• It can then be deployed across many environments;
20. Continuous Integration Suite
• Setting these up as pipeline;
• Look to build groovy library of pipeline components`:
• Treat the pipeline as code;
• Encapsulate the repeatable elements, modify only project specifics;
• Build metrics/reporting into code;
• Pipeline elements for DB component, but similar also for Java and
other code bases.
21. Build Environment
• Instantiate an Oracle environment:
• Tried to create the an Oracle environment on demand in a Docker
container;
• Found starting up Oracle to slow;
• Workaround: Use a running instance instead and re-instantiated
the environment;
• Instantiate an environment using Delphix:
• Again found it slow;
• Done where necessary for testing requirements;
• Amount of data required for testing is deciding factor;
22. Deployment Options
• For databases there are a number of options here:
• Manual scripts:
• Deployment tools:
• Liquibase;
• Datical;
• Flyway
23. Manual Scripts
• Approach taken is to make scripts repeatable:
• If table does not exist
• Create table
• If column does not exist
• Alter table add column X
• This is manageable if the number of changes is small,
however:
• Script can become unwieldy;
• Some scenario’s hard to script for – column re-added;
24. Deployment Tools
Liquibase Datical Flyway
Open Source Enterprise extension of
Liquibase
Open Source
Use of change log
versions written in XML
As Liquibase Version in file name
Support for rollback Support for rollback No Support for rollback
Considered better than
Flyway for larger code
bases.
Datical position this as
for full CI/CD to
production – not just
continuous development.
Considered more
lightweight, used for
smaller distributions
Extra features; rules
based code checks and
forecasting deployments
25. Deployment Summary
• Environment is temporary – teardown at the end;
• Testing both the deployment and the rollback;
• Output is data in a binary repository manager;
• Options include Artifactory and Nexus;
26. Deployment Phase Improvements
• Plan analysis:
• Quality check on the plans generated by the code;
• Performance improvements in environment provisioning;
• Performance testing;
• May also have to introduce security testing;
27. Integration Phase
• Used to deploy to higher environments:
• Dev Integration;
• SIT;
• UAT;
• Aim is to deploy the code and run the integration test
suite.
29. Continuous Integration Suite
• Same tool as the delivery pipeline;
• Pipeline can be chained to the success of that pipeline;
30. Deployment of Code
• Scripts taken from binary repository;
• Use a deployment tool:
• uDeploy;
• CA Release Automation;
• ThoughtWorks Go;
• Can be configured to be automatic or require manual
approval;
• Manual approval allows reviews of changes by DBA group
• But can slow the release process.
31. Integration Suite
• Owned by QA
• Some of the suite may be same tests as unit testing;
• Some of the suite may be developed by development team;
• QA is responsible for setting the stanard of the testing;
• Not just DB code
• Testing features of the application;
• Can use frameworks such as fitnesse and cucumber;
32. What issues are outstanding
• How better to integrate with other code delivery
• Need to manage the versions which go together across
deliverables;
• What version of the database works with version X of the service;
• Support for multiple versions of services in production
environment:
• A common method to scaffold our code when we have multiple
versions of a service in use;
• Look at PLDoc – Javadoc for PLSQL;
• Continuous Improvement
• What’s new in Oracle that can improve our delivery – code
coverage in 12c;
• New technologies in space;
• Componentize the existing approach.
33. Simplifying your journey to Oracle
Cloud
Joe McGlynn
Head of Oracle Solutions Capability, Version 1
/JoeMcGlynn @joemcglynn
34. OUR MISSION:
To bring the most innovative, robust and
cost effective Oracle solutions to our customers.
40. Large Global Financial Services Organisation
Overview Competition Outcomes
• Oracle E-Business
Suite upgrade and
migration
• Do we go On-Premise
or Oracle Cloud?
• From R11i on HP-UX
• Oracle Cloud
• On-Premise AIX/R12
• Azure or AWS/R12
• The organisations’ first
enterprise-wide
infrastructure and
platform migration to the
Cloud
• Managed Services
provided by Version 1
41. 9
Feasibility Assessment
• Reassess Reference Architecture vs project requirements
• Deployment architecture for Oracle e-Business Suite (R12) on
Oracle Cloud (IaaS)
• Detailed Upgrade and Migration plan for R12 to Oracle Cloud
(IaaS)
• Detailed Comparative TCO of Oracle Cloud vs On-Premise
• Considering both Project & Support Costs
• Internal and External IT Costs
• Hardware, OS & Licensing
43. 11
Findings – Cloud Candidate Selection
The Oracle Cloud Candidate Selection Tool details the
following;
• Key integrations that will be required between
Oracle e-Business Suite and On-Premise
Applications
• Used to assess
– Component Affinity
– Volume of Data Transfers/Latency.
– Requirements for Oracle Fast Connect.
– VPN requirements / solution - Corente
• Key areas for Testing
– Performance, Security and Bandwidth requirements.
Reference
Architecture
Candidate
Selection
Deployment
Architecture
Automation
Tools
Managed
Services
Candidate
Selection
44. 12
Customer - Deployment Architecture
• Oracle R12 high-level design for
the Deployment Architecture.
• The Feasibility Report provided
information on the key features of
the proposed architecture in
greater detail.
• HA/DR
• Networking & Connectivity
• Optimise TCO
Reference
Architecture
Candidate
Selection
Deployment
Architecture
Automation
Tools
Managed
Services
Deployment
Architecture
48. 16
Local DB Details
Cloud DB
Requirements DBaaS Provisioning RMAN Backup
Migration &
Upgrade
The Power of Automation & Tools
Reference
Architecture
Candidate
Selection
Deployment
Architecture
Automation
Tools
Managed
Services
Automation
Tools
49. 17
Oracle IaaS CalculatorOracle Apps Unlimited IaaS Calculator
Instructions:
Please populated details in each cell highlighted in 'GREY'
Note that following price details have been obtained from Oracle's Cloud and Licencsing pricing lists.
Price Details are accurate as of Oct 5th 2016.
LAST UPDATED: 21/10/2016
Production
Non Metered
Storage Requirements in TB ? 2
Estimated Database Growth Annually 10%
Estimated Database Size in TB one year from now. 2.2
Low or High Memory Shape ( Low 7.5 GB per OCPU High 15 GB per OCPU) Low Memory
VPN Required ? Yes No. OCPU's Shape GB RAM Per OCPU Price Per OCPU Monthly Annually
£ £ £
The Number of Cores In Your Database Server ?
B85643 2 OC4 15 £55.00 £110.00 £1,320.00
The Number of Cores In Your Application Server ?
B85643 2 OC4 15 £55.00 £110.00 £1,320.00
Opsview Oracle Monitoring B85643 1 OC3 7.5 £55.00 £55.00 £660.00
VPN - Oracle Cloud B85643 1 OC3 7.5 £55.00 £55.00 £660.00
No GB Price Per GB Monthly Annually
What Size Is Your Database ? £ £ £
How many GB ? ( 1000GB = 1TB)
No of GB required to Store data B83456 Storage Cloud 1000 £22.00 £22.00 £264.00
No GB of 'Block Storage' required to host the services. B83455 Block Storage 1000 £37.00 £37.00 £444.00
Production Total £389.00 £4,668.00
DR
Non Metered
Storage Requirements in TB ? 2
Estimated Database Growth Annually 0%
Estimated Database Size in TB one year from now ? 2
Low or High Memory Shape ( Low 7.5 GB per OCPU High 15 GB per OCPU) Low Memory
VPN Required ? Yes No. OCPU's Shape GB RAM Per OCPU Price Per OCPU Monthly Annually
£ £ £
The Number of Core In Your Database Server ? B85643 2 OC4 15 £55.00 £110.00 £1,320.00
The Number of Core In Your Application Server ? B85643 2 OC4 15 £55.00 £110.00 £1,320.00
Opsview Oracle Monitoring B85643 1 OC3 7.5 £55.00 £55.00 £660.00
VPN - Oracle Cloud B85643 1 OC3 7.5 £55.00 £55.00 £660.00
No GB Price Per GB Monthly Annually
What Size Is Your Database ? £ £ £
How many GB ? ( 1TB = 1000GB)
No of GB required to Store data B83456 Storage Cloud 1000 £22.00 £22.00 £264.00
No GB of 'Block Storage' required to host the services. B83455 Block Storage 1000 £37.00 £37.00 £444.00
DR Total £389.00 £4,668.00
Test/Dev
Metered -
Storage Requirements in TB ?
Estimated Database Growth Annually 0%
Estimated Database Size in TB one year from now ? 0
Low or High Memory Shape ( Low 7.5 GB per OCPU, High 15 GB per OCPU) Low Memory
VPN Required ? Yes
Availability
How many hours each day will Test/Dev environment run for ?
NUMBER OF HOURS AVAILABILITY PER WEEK 0 No OCPU Shape GB RAM per OCPU
£ £ £
The Number of Core In Your Database Server ?
B85644 8 OC6 60 £0.07 £0.00 £0.00
The Number of Core In Your Application Server ? B85644 4 OC5 30 £0.07 £0.00 £0.00
Opsview Oracle Monitoring B85644 1 OC3 7.5 £0.07 £0.00 £0.00
VPN - Oracle Cloud B85644 1 OC3 7.5 £0.07 £0.00 £0.00
What Size Is Your Database ? No GB
How many GB ? ( 1TB = 1000GB) £ £ £
No of GB required to Store data B77078 Storage Cloud 0 £0.0176 £0.00 £0.00
No GB of 'Block Storage' required to host the services. B78519 Block Storage 0 £0.0366 £0.00 £0.00
Test/Dev Total £0.00 £0.00
Total Indicative Price £778.00 £9,336.00
Number of Hours?
Reference
Architecture
Candidate
Selection
Deployment
Architecture
Automation
Tools
Managed
Services
Automation
Tools
50. 18
Solution Cloud End State
‘Applications Unlimited’ - ‘as a Service’
Managed Oracle Cloud
Features
Full ITIL & ISO27001
Complete Application Support, Patching
and Upgrades – ‘as a Service’
Deployed on Oracle Cloud – IaaS & PaaS
Full SLA including:
– Oracle IaaS – Provided by Oracle
– Oracle PaaS – Provided by Oracle and Version 1
– Oracle e-Business Suite ‘Quasi-SaaS’ – Provided
by Version 1
Reference
Architecture
Candidate
Selection
Deployment
Architecture
Automation
Tools
Managed
Services
Managed
Services
51. 19
Tips & Gotchas
• What does and does not come with services.
– The small print
• Understand the subscription metrics and special use licences.
– More small print
• You may have Oracle Cloud products and not realise it.
• Not all Oracle Cloud services are in all regions – yet.
• Ensure compliance with information security officers
• Listen intently to your customers / stakeholders.
• Go to cloud.oracle.com and get a free trial account.
52. Simplifying your journey to Oracle
Cloud
Joe McGlynn
Head of Oracle Solutions Capability, Version 1
/JoeMcGlynn @joemcglynn