Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OUG Ireland Meet-up 12th January

2,076 views

Published on

Slides from the OUG Ireland meet-up held on the 12th January 2017. Presentation topics covered DevOps and Oracle Cloud

Published in: Technology
  • Be the first to comment

OUG Ireland Meet-up 12th January

  1. 1. DevOps  and  Oracle  Cloud   Thursday  12th  January,  2017  
  2. 2. With  20  Oracle  ACEs  from  across  Europe   h7p://www.ukoug.org/2017-­‐events/oug-­‐ireland-­‐2017/  
  3. 3. DEV OPS AND PL/SQL DEVELOPMENT
  4. 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. 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. 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. 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. 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;
  9. 9. Build Phase Code UTs Code Quality Check Commit Pull Request Approval Launch Deploym ent
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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;
  19. 19. Deployment process Continuous Integration Suite Build Environment Deploy Code Deploy Unit Tests Run Unit Tests Run Code Quality Generate Scripts Package and store Rollback
  20. 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. 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. 22. Deployment Options •  For databases there are a number of options here: •  Manual scripts: •  Deployment tools: •  Liquibase; •  Datical; •  Flyway
  23. 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. 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. 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. 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. 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.
  28. 28. Integration process Continuous Integration Suite Deploy Code Run Integration Suite Rollback
  29. 29. Continuous Integration Suite •  Same tool as the delivery pipeline; •  Pipeline can be chained to the success of that pipeline;
  30. 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. 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. 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. 33. Simplifying your journey to Oracle Cloud Joe McGlynn Head of Oracle Solutions Capability, Version 1 /JoeMcGlynn @joemcglynn
  34. 34. OUR MISSION: To bring the most innovative, robust and cost effective Oracle solutions to our customers.
  35. 35. Enterprise Cloud Adoption Early Cloud Adopters 2009 2013 2014 2015 2020 Internal Systems
  36. 36. Simplifying your journey to Oracle Cloud
  37. 37. Call Oracle Journey to Cloud Video - https://www.youtube.com/watch?v=MQlffIaukvo
  38. 38. 6
  39. 39. Let’s take a use case
  40. 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. 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
  42. 42. 10 Cloud Reference Architecture Reference Architecture Candidate Selection Deployment Architecture Automation Tools Managed Services Reference Architecture • Covers 4 Over-arching areas for Cloud Assessment – Business Support Services – Management and Operations Services – Cloud Security Services – Product and Service Catalogue • Developed to answer key concerns of IT and Business Stakeholders – ~130 Questions and Answers for Oracle IaaS • Developed with Oracle for Oracle Cloud • Constantly evolving
  43. 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. 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
  45. 45. 13 Project Comparison: Cloud vs On-Premise (P-Series AIX)
  46. 46. 14 On-Going Cost Comparison: Cloud vs On-Premise
  47. 47. 15 5 Year – TCO Comparison
  48. 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. 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. 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. 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. 52. Simplifying your journey to Oracle Cloud Joe McGlynn Head of Oracle Solutions Capability, Version 1 /JoeMcGlynn @joemcglynn
  53. 53. Thursday 11th May

×