both sides now: devops and agile in oracle … · 3 both sides now i've looked at clouds from...

35
Both Sides Now: DevOps and Agile in Oracle Developer Cloud Service for Fusion Middleware Developers Peter Koletzke Technical Director & Principal Instructor 2 Survey Job function – DBA, developer, both, other • Languages – JavaScript, Java, APEX, other PL/SQL Agile approach to methodology Using DevOps Using cloud? – Oracle PaaS – Oracle IaaS – Other vendor’s cloud

Upload: vothu

Post on 29-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Both Sides Now: DevOps and Agile in Oracle Developer Cloud Service for Fusion Middleware Developers

Peter KoletzkeTechnical Director & Principal Instructor

2

Survey• Job function

– DBA, developer, both, other

• Languages– JavaScript, Java, APEX, other PL/SQL

• Agile approach to methodology

• Using DevOps

• Using cloud?– Oracle PaaS

– Oracle IaaS

– Other vendor’s cloud

3

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

4

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

5

Agenda

Slides will be available on the RMOUG website.

• Intro to DevOps, Agile, and DevCS

• DevCS and FMW

• Both sides now

6

Winner of 2017 Preakness Stakes

Cloud Computing13 to 1 odds

7

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

8

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.

9

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

10

Cloud Computing Can Help• Oracle’s offering: Oracle Developer Cloud Service

– Free with a cloud account, also included with PaaS:

– Integrated DevOps environment supports agiledevelopment methodology

• Oracle Java Cloud Service

• Oracle Java Cloud Service-SaaS Extension

• Oracle Messaging Cloud Service

• Oracle Mobile Cloud Service

• Oracle SOA Cloud Service

• Oracle Application Container Cloud

• Oracle Container Cloud

• Oracle Database Cloud Service

• Oracle Application Builder Cloud Service

• Oracle Metered Compute

11

About Agile

• Tasks divided into “sprints” – A release with short development cycle like 2 weeks

– Progress of sprints is tracked in scrum boards

• Agile approach led to need for DevOps

…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. https://en.wikipedia.org/wiki/Agile_software_development

12

About DevOps• One definition:

• Merge of Software Development/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.

https://theagileadmin.com/what-is-devops/

13

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

14

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

15

DevCS Assists 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 support

• Team collaboration– Activity stream, wiki, web dashboard

16

Getting Started• Obtain trial account

– 300 USD credits or 30 days (whichever comes first)

• Welcome email with links to various services will arrive– Might take 2.5 weeks – ordering ABCS may be faster

• A “Core Technology Strategist” may call to find out if you need support

• Sign out page– Conserve those trial credits

– Click “Ok” on the confirmation page

17

Find “Standard Developer Service” URLIn the Welcome email

Login details also in the Welcome email

18

DevCS Console

Project PageMenu

Activities / News

Search

Repositories

See Appendix A for screenshots of

tools’ pages.

20

Agenda

• Intro to DevOps, Agile, and DevCS

• DevCS and FMW

• Both sides now

21

Sample Uses

• JavaScript – JET, MAX

• Java– ADF applications

– JSP, etc.

• SQL and PL/SQL code– Database objects

– APEX Earlier today: Shay Smeltzer

Agile Methodology and DevOps for Database Developers and Admins

22

Development IDE Plugins• DevCS “Team” 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 repository support– SQL Developer

– Any tool with Git connectivitySee Appendix B for some screenshots of JDeveloper’s DevCS team support.

23

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

Set up Team Server

24

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

25

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

See Appendix C for screenshots of Build process.

26

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

27

… 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

28

Agenda

• Intro to DevOps, Agile, and DevCS

• DevCS and FMW

• Both sides now

29

From Up• DevCS = Solid features

– “Free” – with a cloud account, included with PaaS

– 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

– Plugins for multiple IDEs • Eclipse, NetBeans, JDeveloper, SQL Developer

30

More Up• 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

31

Still More Up• Wikis

– Organize project information – requirements, specifications

• Code review and approval

• Code test tracking, issue tracking

• Project templates – code and documentation

• Agile methodology support – Promise of faster delivery, more accurate system

32

And Down• Need to license Oracle PaaS

• May cause you to re-examine your development methodology– Or not

• Your existing methodology may not benefit from cloud– Small shop, no cloud products

– Only interested in source code control

• You may be better with “roll your own”

33

When to “Roll Your Own”• Overhead of DevOps (cost, learning curve, training)

may not provide an advantage– Manual steps may be quicker and more productive

– Use a test cloud account to try this

• You can work with part manual/part automated– You stitch together the automated parts, Jenkins perhaps,

Subversion or Git

– Cost, learning curve, training may be worse than cloud

• You are doing very well now, thank you– There is no room for improvement

34

When to Think About DevOps/DevCS

• Worth a serious test drive if:– … you have PaaS now, you have DevCS

– … you are using or want to use the agile approach to development methodology• Get a test account and try the agile features

• Be sure to allow time for activation (order ABCS?)

• Tutorials let you “try before you buy”

• Worth using if:– … you have PaaS and need one feature at least (SCM, wiki)

– … you do agile work but need automated assistance

35

DevOps Resources• 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/

36

DevCS Resources• 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/oracle-

developer-cloud-service.html

• More Tutorials– http://docs.oracle.com/en/cloud/paas/developer-cloud/tutorials.html

37

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

• W Brian Leonard’s blog– https://wbrianleonard.wordpress.com/

• Community forum– https://community.oracle.com/community/cloud_computing/

platform-as-a-service-paas/oracle-developer-cloud-service

38

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

39

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

• If you have PaaS, do a test drive

• If you need or have agile, do a test drive

• You may not need agile or DevOps

40

DesignerHandbookDesigner

Handbook

DeveloperAdvancedForms &Reports

DeveloperAdvancedForms &Reports

JDeveloper 3Handbook

JDeveloper 3Handbook

ORACLE9iJDeveloperHandbook

ORACLEJDeveloper 10g

Handbook

• Please fill out the session evaluation

• 7 of 8 books co-authored with Dr. Paul Dorsey, Avrom Roy-Faderman, & Duncan Mills

• Slides will be available on the RMOUG website

41

Appendix A: Project Console Tools

42

Code

43

Source Code and Commiters

44

Maven Repositories

45

Releases

46

Snippets

47

Merge Requests

Code reviews

48

Track Issues

49

Agile

50

Builds

Project build jobs

51

Deploy

52

Docker Registry

53

Wiki

54

Administration - Administration

55

Appendix B: JDeveloper’sDevCS Tools

56

DevCS in JDeveloper• Create a Team Server

• Log in

First part of project’s URL

57

DevCS in JDeveloper• Select the Git repository

• Get sources from Developer server

58

DevCS in JDeveloper• Clone from Git

59

DevCS in JDeveloper• Push app files to the repository

– Copy the files into the folder associated with the repository

– Git – Add All

60

DevCS in JDeveloper

• Git - Commit All

61

DevCS in JDeveloper• Git – Push

– Can specify SSH if needed

• Push status

62

DevCS – ADF Activity• In DevCS news/activities

63

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

64

DevCS Build• Configure DevCS project to

use Ant for build

• Build – New Job

• Specify JDK

65

Appendix C: Build Process

66

Build 2

• Source control – Git

• Select the repository

67

Build 3• Build Steps –

Add Build Step –Invoke Ant

• Targets, – Target as “deploy”

• Already in build.xml

– Path to the build.xml

68

Build 4• Post Build – files to archive

• Build now

69

Build 5• “working”

• Check the console for errors

• “Artifacts of Last Successful Build”

• Next step would be Deploy