Upload
others
View
17
Download
0
Embed Size (px)
Citation preview
Support Your DevOps Process With a
Free Oracle Cloud Tool
Peter KoletzkeTechnical Director & Principal Instructor
Me• 35 yrs. database industry
• 31 yrs. consulting in Oracle arena– Since Oracle 5.1C, SQL*Forms 2.3
• 39 yrs. as trainer/presenter
• User groups– 360+ presentations, 12 awards
– 8+ yrs. total on boards of directors • IOUG(-A), NYOUG, UTOUG
• Oracle ACE Director – Since program inception in Aug. 2005
• Oracle Certified Master – Since program inception in Dec. 2001
• 8 Oracle Press books coauthored – 6262 pages total
DesignerHandbook,
Second Edition
DesignerHandbook,
Second Edition
DeveloperAdvancedForms &Reports
DeveloperAdvancedForms &Reports
JDeveloper 3Handbook
JDeveloper 3Handbook
ORACLEJDeveloper 10gHandbook
Designer/2000Handbook
Designer/2000Handbook
ORACLE9iJDeveloperHandbook
3
You• Job function
– DBA, developer, both, other
• Languages– JavaScript, Java, APEX, other PL/SQL
• Agile
• Using DevOps
• Using cloud?– Oracle PaaS
– Oracle IaaS
– Other vendor’s cloud
4
Both Sides Now
I've looked at clouds from both sides now
From up and down and still somehowIt's cloud illusions I recall.
I really don't know clouds at all—Joni Mitchell
5
Reason for This Session
• Confluence of two events1. Experience reinstallation of CVS (version control
software) at client site• Procurement, installation, configuration, local developer installs
and documentation, repository migration, support cases
2. Oracle Developer Cloud Service Hands-on Lab• At Oracle OpenWorld 2016
• Example of agile development of a Java application
6
Agenda
• Intro to DevOps, Agile, and DevCS
• Team Development in DevCS
• Review and Resources
Slides are available in the conference app.
7
Winner of 2017 Preakness Stakes
Cloud Computing13 to 1 odds
Photo: Adam Coglianese/NYRA
8
Promises of Cloud Computing• Scalability
– As your needs grow, you just increase service level• Classic example: website traffic from Super Bowl ads
• No extra resources needed on your side
• Reduction or elimination of onsite (“on prem”) infrastructure – Can you say “time-share” and “mainframe?”
• Someone else worries about compatibility, backup and recovery, upgrades
• Client access is “easy” and ubiquitous
9
Cloud Computing Concerns
• Security– Data– Accounts– Systems
• Loss of control, reliability of the internet and the vendor– Downtime
• Complexity, learning curve• Cost• Why change?
– The “earth-based” solution works fine.
10
On the Other Hand…
• Supporting the development life cycle can be challenging; example: CVS reinstall
• Many products to purchase/acquire, install, configure, train on
• Project tracking, file and information sharing (wikis)• Source code control system
– Software configuration management (SCM), file versioning
• Code review system• Testing system• Issue reporting system• Continuous integration (CI) – for example, nightly builds• Deployment tools
11
Cloud Computing Can Help• Oracle’s offering: Oracle Developer Cloud Service
– Free with any cloud account, including free trials
– Integrated DevOps environment that supports agiledevelopment methodology
– Supports “more than half of DevOps”
• But why use DevOps?
12
First: About Agile…an approach to software development under which requirements and solutions
evolve through the collaborative effort of self-organizing cross-functional teams and their customer(s)/end users(s). It advocates adaptive planning,
evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. (1)
(1) https://en.wikipedia.org/wiki/Agile_software_development
• Manifesto for Agile Software Development (2001)• Tasks collected into “sprints”
– A release with short development cycle like 2 weeks– Progress of sprints is tracked in “scrum boards”
• Very popular now• Agile approach led to need for DevOps
http://agilemanifesto.org/
Dilbert Definition
14
About DevOps• One definition:
• Merge of Software Development with Operations – Dev = development (analysis, design,
develop, test)– Ops = operations (deploy, monitor)
• Objective: faster delivery of application software solutions – Example: supporting agile sprints
• Phases (from Wikipedia)
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. (2)
(2) https://theagileadmin.com/what-is-devops/
15
More About DevOps
• Uses multiple tools– Development: code reviews, version control, bug tracking
– Continuous integration: frequent builds from version control• Grady Booch (UML “Gang of Three”) concept from 1991
• Popular products: Hudson (now Oracle’s), Jenkins (open source)– Hudson executes Maven, Ant, shell script, or Windows batch projects
– Continuous testing: automated tests
– Deployment: also automated
16
About Oracle Developer Cloud Service• A.k.a., “DevCS”
• A DevOps tool (“more than half of DevOps”)– Manage agile sprints
– Continuous anything: integration, test, build
• Supports multiple code disciplines– Java, JavaScript, PL/SQL (APEX, SQL)
– Others
• Can assist with project activities– Your choice – all or some
– Email notifications assist the work flow
17
DevCS Assists With These Activities• Plan and manage
– Issue tracking, team management, agile dashboard
• Code– Version management, code review, track changes
• Build and deliver– Continuous integration, orchestration, deployment
automation, Docker deployment
• Team collaboration– Activity stream, wiki, web dashboard
Not “free”
18
Getting Started• https://cloud.oracle.com/developer_service
• Obtain trial account– Click
“Try for Free”
– 300 USD credits or 30 days (whichever comes first)
19
Next• Welcome email with “Get Started” link
– Accesses your “Cloud My Services” site
• A “Core Technology Strategist” may call to find out if you need support
• You can work with most IaaS and PaaS services– Be careful to log out using the Sign Out page
• Conserve those trial credits
• Click “Ok” on the confirmation page
20
The “Free” Part• After 30 days or 300 USD credits have been used
– Notification of expiration– You will lose access if you don’t convert to paid
• So…– Convert to Paid
• DevCS is still free– It is a “foundation service” for Oracle Cloud– 20 Gb storage, git, issue tracking, team development
support, wiki– Build and deploy require for-cost compute and storage
instances
21
Important!• Be sure to convert to Upgrade to Paid after 30-day trial
OR else:
test12ghMtest12ghMWXYUGNoWXYUGNoWXYUgWXYUgbcdehkbcdehk February 14, 2019February 14, 2019
test12ghMWXYUGNoWXYUgbcdehk February 14, 2019
22
Starting Up DevCS• From the Dashboard - Create Instance
– Select “Developer”
– Follow the screens
• An email will notifywhen the instanceis ready
23
Starting Up DevCS• Follow the link in the email (Services…Developer)
• Select“AccessServiceInstance”from the instancemenu
24
DevCS Console
Project PageMenu
Activities / News
Search
Repositories
See Appendix A for screenshots of
tools’ pages.
26
Agenda
• Intro to DevOps, Agile, and DevCS
• Team Development in DevCS
• Review and Resources
27
Sample Uses
• JavaScript – JET, MAX
• Java– ADF applications
– JSP, etc.
• SQL and PL/SQL code– Database objects
– APEX
28
Development IDE Plugins• DevCS “Team” and code repository support
– Eclipse • Oracle Cloud Tools plugin (OEPE includes this)
– NetBeans • DevCS plugin
• JavaScript, Java, HTML5, PHP, C/C++
– JDeveloper (12.2.1 contains the plugin)
• DevCS code repository support– SQL Developer
– Any tool with Git connectivitySee Appendix B for some screenshots of JDeveloper’s DevCS team support.
29
DevCS Workflow Example - Setup
Harry
Sally
JDev
DevCS
JDev
DevCS
Create application
Create project
Add tasks issues, features
Monitor progress
Create project repository
Commit to local Git
Push to DevCS Git
30
DevCS Workflow Example – Part 1
Harry
Sally
JDev
DevCS
JDev
DevCS
Set up agile sprint Assign issues
Get code from Git repository
View issues
Create branch
Complete tasks
Finish coding
Mark tasks as completed
Wait for notification
Unit test code changes
Commit to local Git
Push to DevCS Git
Create merge request
Set up Team Server
31
DevCS Workflow Example – Part 2
Harry
Sally
JDev
DevCS
JDev
DevCS
Reject merge request
Fix code Test, commit, push
Approve merge request
Merge and delete branch Build
Demo
32
Demo Summary• Cloud code repository
– Clone into local Git, work within IDE, commit, push
• Cloud Agile sprint– Load tasks into sprint
– Assign tasks to developers
– Merge requests
• Team support in IDE– Team Server setup
– Task management
– Dashboard
33
… And Without the Plugin?• Still can run Git functions in your IDE
– Use DevCS Git repository as target/source
– Clone, add, commit, branch, check out, push
• Perform project functions in the web console– Dashboard
– Tasks and issues
– Builds
34
Agenda
• Intro to DevOps, Agile, and DevCS
• Team Development in DevCS
• Review and Resources
35
Review• DevCS = Solid features
– “Free” – just get a cloud account
– No software installation!• Nearly instantaneous environment setup
– Feature-rich, “limitless” variety in development flows• Team-oriented – high degree of project sharing
– Flexible – different types of code• Java, JavaScript, SQL and PL/SQL, others
– Plugins for multiple IDEs • Eclipse, NetBeans, JDeveloper, SQL Developer
36
DevOps and DevCS• Handles much of DevOps process
– Security for development code • Team member management and project assignments
• Project planning, metrics for progress tracking
– Code versioning, revision control (Git)
– Continuous integration (Maven)
– Build integration (Hudson)
– Continuous deployment to public cloud • Java CS, App Container CS, Docker
37
DevOps Resources – non-Oracle• Best practices
– https://techbeacon.com/dos-donts-9-effective-best-practices-devops-cloud
• Intro to DevOps– https://aws.amazon.com/devops/what-is-devops/
• DevOps and cloud– https://techbeacon.com/devops-dictates-new-approach-cloud-
development
• Agile– http://www.101ways.com/what-is-agile-10-key-
principles/
38
DevCS Resources - Oracle• Home
– https://cloud.oracle.com/developer_service
– Sign up for a trial account
– “Learn More” tab: tutorials, demos, FAQs, white papers
• Get Started– http://docs.oracle.com/cloud/latest/devcs_common
• Docs– https://docs.oracle.com/en/cloud/paas/developer-cloud/csdcs/
• More Tutorials– http://docs.oracle.com/en/cloud/paas/developer-cloud/tutorials.html
39
More DevCS Resources• Shay Shmeltzer’s blog – info and demos
– Director of Product Management for Oracle's Cloud Development Tools
– https://blogs.oracle.com/shay
• Dale Singleterry YouTube video– https://www.youtube.com/watch?v=XaB6TGWVghs
• W Brian Leonard’s blog– https://wbrianleonard.wordpress.com/
• Community forum– https://cloudcustomerconnect.oracle.com/resources/9553a4
c68d/summary
40
Summary• Agile methodology can speed up software delivery
• DevOps assists agile methodology
• Cloud can automate DevOps
• Oracle Developer Cloud Service is an option for DevOps
• DevCS supports different types of code: SQL, PL/SQL, JavaScript, Java
• DevCS is “free”
41
42
DesignerHandbookDesigner
Handbook
DeveloperAdvancedForms &Reports
DeveloperAdvancedForms &Reports
JDeveloper 3Handbook
JDeveloper 3Handbook
ORACLE9iJDeveloperHandbook
ORACLEJDeveloper 10g
Handbook
• Please fill out the session evaluations
• 7 of 8 books co-authored with Dr. Paul Dorsey, Avrom Roy-Faderman, & Duncan Mills
• Slides will be on utoug.org
43
Appendix A: Project Console Tools
44
Code
45
Source Code and Commiters
46
Maven Repositories
47
Releases
48
Snippets
49
Merge Requests
Code reviews
50
Track Issues
51
Agile
52
Builds
Project build jobs
53
Deploy
54
Docker Registry
55
Wiki
56
Administration - Administration
57
Appendix B: JDeveloper’sDevCS Tools
58
DevCS/FMW Resources• Dale Singleterry YouTube video
– Developer Cloud Service: Develop, Collaborate & Deploy in the Cloud
– https://www.youtube.com/watch?v=XaB6TGWVghs
– Older version, but includes examples of how Oracle uses DevCS to build DevCS (145 developers in 2015)
• Shay’s blog (quoted before)– For example:
• https://blogs.oracle.com/shay/agile-development-with-oracle-developer-cloud-service-and-jdeveloper-1221
59
DevCS in JDeveloper• Create a Team Server
• Log in
First part of project’s URL
60
DevCS in JDeveloper• Select the Git repository
• Get sources from Developer server
61
DevCS in JDeveloper• Clone from Git
62
DevCS in JDeveloper• Push app files to the repository
– Copy the files into the folder associated with the repository
– Git – Add All
63
DevCS in JDeveloper
• Git - Commit All
64
DevCS in JDeveloper• Git – Push
– Can specify SSH if needed
• Push status
65
DevCS – ADF Activity• In DevCS news/activities
66
DevCS in JDeveloper• Add Ant buildfiles
– New Ant buildfile from the New gallery
– Set up build.xml and build.properties to use DevCS• See sample code in tutorial
– Git – Add All
– Git – Commit All, Git - Push
67
DevCS Build• Configure DevCS project to
use Ant for build
• Build – New Job
• Specify JDK