You are on page 1of 138

Oracle Cloud Project

Management for Partners


Module 11: Implementation Approach: Cloud
Applications & Extensions Development with
DevOps

Student Guide
S105465GC10
Learn more from Oracle University at education.oracle.com
Copyright © 2020, Oracle and/or its affiliates.
Disclaimer

This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training
course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display,
perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization of Oracle.

The information contained in this document is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of
such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software
documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure,
modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered
hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable
contract. The terms governing the U.S. Government's use of Oracle cloud services are defined by the applicable contract for such services. No other rights are granted to the U.S. Government.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc.
AMD, Epyc, and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

Third-Party Content, Products, and Services Disclaimer

This documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not
be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.
Implementation Approach: Cloud
Applications & Extensions Development with
DevOps
Oracle Cloud Project Management Training for Partner

Oracle Alliances & Channels


Safe harbor statement

The following is intended to outline our general product direction. It is intended for information
purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, timing, and pricing of any features or functionality described for Oracle’s
products may change and remains at the sole discretion of Oracle Corporation.
Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and
prospects are “forward-looking statements” and are subject to material risks and uncertainties. A
detailed discussion of these factors and other risks that affect our business is contained in Oracle’s
Securities and Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and
Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or on
Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of
September 2019 and Oracle undertakes no duty to update any statement in light of new information or
future events.

2 Copyright © 2020, Oracle and/or its affiliates.


Costin Chirculescu, PMP, TOGAF

ISV/OEM Sales Consultant


Oracle Corporation

3 Copyright © 2020, Oracle and/or its affiliates.


Learning Objectives
Cloud Applications & Extensions Development in DevOps

By the end of this Module you should be able to:


• Describe the evolution of the Applications development in Cloud
• Select & decide the appropriate cloud development frameworks for project in scope
• Understand the key concepts of Cloud Native Development & Use cases
• Explain the core concepts and deployment of serverless Functions
• Understand the Low code development difference from traditional coding
• Explain the usage and difference of Visual Builder and APEX
• Elaborate on the monolithic development approach using Java
• Plan deployment of Mobile HUB & Digital Assistant services
• Depict the key considerations of deploying Blockchain services
• Understand the core concepts and tools of Oracle Developer Cloud Services - ODCS
• Depicts the steps of developing new cloud applications leveraging ODCS
• Monitor and manage the development lifecycle in a CI/CD model (Agile / Scrum)

4 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Delivery Framework
Analyze & Plan & Configure & Validate & Transition & Sustain &
Prepare Design Build Test Go Live Realize

Project Management & Governance


Cloud Provisioning & Cloud Security,
Environments Identity & User Continuous Testing Sustainment Plan &
Knowledge Areas

Management Management Strategy & Plan Adoption Strategy

Project Management Implementation


Cloud Architecture Data Management
Plan & Delivery Approach for Cloud
Envisioning & Planning & Migration Plan
Approach Solutions in Scope

Training & Knowledge


Aligning Business Goals Cloud Risk Organizational Change &
Transfer Strategy &
& Project Objectives Management Communication Mgmt.
Plan

Project Artifacts, Deliverables & Milestones

SaaS PaaS OCI


5 Copyright © 2020, Oracle and/or its affiliates.
Oracle Cloud Delivery Framework
Knowledge Area - Implementation Approach for Cloud Apps & Extensions Development

Analyze & Plan & Configure & Validate & Transition & Sustain &
Prepare Design Build Test Go Live Realize

Project Management & Governance

Implementation • Identify and define the appropriate development


Approach for Cloud framework and approach for applications and
Applications & extensions development leveraging native cloud
Extensions development concepts and Manage full development
Development lifecycle leveraging DevOps tools in a CI/CD approach

Project Artifacts, Deliverables & Milestones

SaaS PaaS OCI


6 Copyright © 2020, Oracle and/or its affiliates.
Part 1- Implementation Approach: Cloud
Applications & Extensions Development with
DevOps

7 Copyright © 2020, Oracle and/or its affiliates.


New Application Development Demands

Container Native Digital Assistants


Microservices & and Chatbots
php
Serverless

DevSecOps AI / ML Data
Science Platform

Open Source Blockchain


Software Platform

8 Copyright © 2020, Oracle and/or its affiliates.


Application Development Patterns

Container Native Enterprise Java/DB


Serverless
f(x)

Cloud Native PaaS Visual/Low Code

9 Copyright © 2020, Oracle and/or its affiliates.


</>
Choice of Technology
Stack Programming Databases Tools
Languages MySQL, Apollo
Java SE, Java EE, Ruby, Cassandra, Angular,
Python, PHP, Go, Mongo,… Ionic,…
JavaScipt,…

Cloud Services using


Open Source AppDev Big Data Blockchain AI/Deep
Docker, Hadoop, Hyperledger Learning
Oracle Kubernetes,
Node.js Eclipse,...
Spark,
Kafka,...
Fabric TensorFlow,
Caffe, DL4J
Cloud is
OPEN
Support for a Broad
Set of Technologies 3rd Party Security Systems Channels
Applications OAuth 2.0, Management Amazon
Salesforce, SAML, SCIM, Cisco, Dell, Alexa,
Microsoft, SAP, OpenID Connect F5, LAMP,… Facebook
ServiceNow,… Messenger,
Slack,…

Contributions to
Open Source Supporting Open Source
NetBeans, Eclipse, Spark, Hadoop, OpenJDK,…

10 Copyright © 2020, Oracle and/or its affiliates.


Oracle Application Development Platform
Openness & Modernity & Ease of Use

Developer Container Digital Assistants, Blockchain AI / ML


CI/CD for Apps Native Mobile Apps

Any Framework Management &


Data Management API Platform Security
SQL No SQL Big Data
Design
APM Logs
Catalog
CASB
Gateway IDCS

OCI Regions
Infra as a Code
(Global Availability LBaaS API / CLI (TF, Chef, Puppet)
Networkin Compute Storag Edge Key
Key Mgmt
IaaS)
IAM
IAM Mgmt
Domains g e

11 Copyright © 2020, Oracle and/or its affiliates.


Evolution of Application Development

12 Copyright © 2020, Oracle and/or its affiliates.


Provide Guidance to the Developers
Different types of developers requiring direction

Enterprise API Developer Mobile Low-code Blockchain


Applications Applications “Citizen” Developer Cloud Native
Developer Develoepr Developer Developer

Apps & Services Application Developer


Deployment Development Productivity

Java Mobile Hub


API Platform
Compute Visual Builder
DevCS
Blockchain
Containers
Digital Assistant
13 Copyright © 2020, Oracle and/or its affiliates.
Spectrum of Users & Needs

Serverless
f(x)

High Control/Productivity vs Prescriptive/Productivity

Container Native PaaS Enterprise Java/DB Visual/Low Code

User: DevOps / SRE User: Web/Mobile Dev User: Operations User: Line of
Business

granular control limited control tightly controlled for


prescriptive consistency no exposure to
highly scriptable uniform tooling controls
limited introspection
deep introspection designed for intuitive / UI based
short/efficient onramp
open seamlessness integrated into a suite
affixed to environment
cloud neutral low/no complexity
14 Copyright © 2020, Oracle and/or its affiliates.
Identify the Development Framework Technology
Select the correct approach

Defining the Application Development SoW is essential to be able


to select the correct development framework technology:
- Develop a “classic” client-server monolithically application → choose Java
development
- Develop an “elastic” deployment based on microservices → choose Container
architecture
- Develop low-code applications (WYSIWYG) → choose Visual Builder or
Functions tools
- Embed cloud emerging technologies to enhance your application functionalities
→ choose Blockchain, Digital Assistant , ML, AI
- Design and manage the full Application Development Lifecycle → choose
DevOps tools

15 Copyright © 2020, Oracle and/or its affiliates.


Characteristics of
the use case

Development Effort Low Code High Code / Low Code High Code

Degree of Control on UI Medium High High

Data Access Drag and Drop APIs + Database REST APIs only

Business Logic + UI Metadata SaaS inherited + Custom Custom SaaS inherited

Security SSO for UI + OAuth for API SSO for UI + OAuth for API SSO for UI + OAuth for API

Operational Control Low – Fully Oracle Managed Medium – Partially Managed Low – Fully Oracle managed

16 Copyright © 2020, Oracle and/or its affiliates.


PaaS Choices

Development Effort Low Code High Code / Low Code High Code

Degree of Control on UI Medium High High

Data Access Drag and Drop APIs + Database REST APIs only

Business Logic + UI Metadata SaaS inherited + Custom Custom SaaS inherited

Security SSO for UI + OAuth for API SSO for UI + OAuth for API SSO for UI + OAuth for API

Operational Control Low – Fully Oracle Managed Medium – Partially Managed Low – Fully Oracle managed

Content and
SaaS Native Tooling* Visual Builder Cloud OIC (Process) Java Cloud Oracle JET Mobile Cloud
Experience Cloud
VBCS / JET / APEX OKE *Not PaaS

17 Copyright © 2020, Oracle and/or its affiliates.


Cloud Native
Development

18 Copyright © 2020, Oracle and/or its affiliates.


Oracle Container Native Strategy
Deliver a container native suite that is complete, integrated, open

• Container Native Developer Experience


• Deep investment in open source communities and foundations (Kubernetes,
Docker, CNCF) via engineering resources, code contributions & sponsorship
• Deployed Oracle Cloud Infrastructure
• Enterprise grade security, HA and governance
• CI/CD, Orchestration/Scheduling, Management/Operations,
Analytics/Introspection
• Cloud neutral application development platform for microservices and serverless
• Optimized for Java workloads -Deep diagnostics and built in performance tuning
• Best cloud for running Oracle Database workloads - Optimized for Oracle DB RAC
and Exadata

19 Copyright © 2020, Oracle and/or its affiliates.


Benefits of Cloud Native Development
How Are Containers and Cloud Native Used and Why?

Top Use Cases Benefits


⇧ Agility: Faster to spin-up / tear-down,
⚙ Develop new, more scalable, applications
compared to VMs and bare metal
⚙ Re-factor / re-write existing apps ⇧ Developer Productivity: Packages entire
⚙ Move apps to cloud in portable manner runtime environment, allowing apps to
run on dev’s laptop, on-premises or in
⚙ Develop multiple microservices instead any cloud
of monolithic apps
⇧ Portability: No lock-in
⚙ Develop serverless apps which require ⇧ Cost Effectiveness: More efficient
containers to be spun up / down rapidly
resource utilization, more containers per
server

20 Copyright © 2020, Oracle and/or its affiliates.


Understand the different Cloud Native Development Services
Lift & Shift vs move & Improve

Containers Cloud Native


Next-generation virtualization Technologies “to build and run scalable apps
in public, private and hybrid clouds”
Lighter weight ✔️ Packaged as containers
More efficient ✔️ Choice of languages/frameworks
Faster to spin up/down ✔️ Efficient to scale

Docker is the de-facto Fn Project is an Oracle-led


technology to create, manage serverless framework that can run
and run containers anywhere (for Java, Python, Go &
Ruby languages)
Kubernetes is the leading Terraform is a solution to provision,
solution for container update and deprovision
orchestration * CNCF.org
infrastructure

21 Copyright © 2020, Oracle and/or its affiliates.


The Container Native Journey Integrated
Developer
Engineering Hub
Managed
Kubernetes
Oracle

Agility
Container
Cloud Service

Efficiency

Phase III
Business Focus

Phase II
DevOps Focus
Phase I
Developer Focus
Speed

Container Adoption Application Deployment Business Integration


Focus Developer adoption DevOps deployment Broad integration
Applications Dev/Test apps Production apps Business apps
Automation Simple orchestration Advanced orchestration Self management
Community Individual developers Teams & lines of business Enterprises

22 Copyright © 2020, Oracle and/or its affiliates.


When to Use Container – Docker?

When Running
For fast consistent more workloads on
delivery of your the same hardware
application

For responsive
deployment
and scaling

23 Copyright © 2020, Oracle and/or its affiliates.


Kubernetes

• Microservices that are running in Features of Kubernetes


containers must be able to interact and • Managing Multiple Containers
integrate to provide the required
• Container Placement
application functionalities. This
• Container Replication
integration can be achieved through
• Container Auto – scaling
container orchestration.
• Volume Management
• Kubernetes is an open source and • Resource Monitoring
portable container orchestration • Health Checking
platform
• Networking
• It is a container orchestration tool, which • Service Discovery
automates scaling of workloads • Loading Balancing
• Kubernetes groups containers into • Rolling Update
logical units an enables to start stop and • Logging
group containers in clusters

24 Copyright © 2020, Oracle and/or its affiliates.


Kubernetes and Docker

Container 1
Containers communicate
with each other via
Container 2 Kubernetes

Container 3

Docker Kubernetes

Container n-1
Docker is used to manage Kubernetes link containers
and build the containers Container n running on multiple hosts
and orchestrates

25 Copyright © 2020, Oracle and/or its affiliates.


Differentiation between VMs and Containers

VMs Containers using Docker

App1 App2 App3


Bins/libs Bins/libs Bins/libs App1 App2 App3
Guest OS Guest OS Guest OS Bins/libs Bins/libs Bins/libs
Hypervisor Docker Engine
Hosting Operating System Operating System
Infrastructure Infrastructure
(Public Cloud Servers Cloud) (Public Cloud Servers Cloud)

Each VM runs its All the containers share


own OS the same of the host
26 Copyright © 2020, Oracle and/or its affiliates.
Kubernetes Architecture
Image Registry

NODE DOCKER
POD POD POD
UI
Container Container Container
Kubernetes
API Masters
NODE DOCKER
POD POD POD
CLI
Container Container Container

27 Copyright © 2020, Oracle and/or its affiliates.


Deploying Microservices in Containers

• A container is a standardized unit of


software used to develop, ship and deploy App1 App2 App3
applications
Bins/libs Bins/libs Bins/libs
• After building a microservice it must be
Docker Engine
containerized
Operating System
• A microservice running in its own
container doesn’t affect the microservices Infrastructure
deployed in other containers. (Public Cloud Servers Cloud)

• Containers are managed using a container


engine such as DOCKER. The container
engine provides the tools that are
necessary to bundle all the application
dependencies as a container.
28 Copyright © 2020, Oracle and/or its affiliates.
Oracle Container Native Microservices Architecture

Foo1 Foo2

Event
API Registry Open Service Broker
Management

Managed Kubernetes

29 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Native Services Are Open

OKE OCIR
Unmodified Codebase 3rd Party 3rd Party
Kubernetes Registry

Portable Interoperable
• No Lock-In – Move containers from one • Use Oracle Infrastructure Cloud Registry
Kubernetes environment to another or any other external Docker registry
• Ensures Portability – Built on • Leverage Container Pipelines or any other
unmodified open source codebase continuous integration / delivery system

30 Copyright © 2020, Oracle and/or its affiliates.


Leveraging Oracle Cloud Native Services

Base Oracle Cloud


Infrastructure Registry
Container (OCIR)
Messaging, 1 Manage containers
Monitoring, Telemetry, from base image
Notifications Alarms to app build
2 to production
5 to monitoring and
CI / CD Oracle Container
Pipelines* notifications
System
Repeat the cycle
Oracle Container Orchestration 3
Engine (OKE) to Production 4

App Oracle Cloud


Container Infrastructure
Registry (OCIR)
* Leverage Container Pipelines or use your own, e.g. Jenkins

31 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Native Services Are Managed Services

IaaS Customer Managed Cloud Native Managed Service


App Management App Management
App Deployment App Deployment
High Availability and Scaling
Monitoring and Notifications High Availability and Scaling
Benefits
Platform Backup and Recovery Faster Time-to-Deploy
You Monitoring and Notifications
(in black)
Upgrades and Patching Platform Backup and Recovery Lower Risk
Software Installation Upgrades and Patching Accelerate Innovation
Software Installation
Server Provisioning Server Provisioning
Rack and Stack (in red) Rack and Stack
Power, HVAC Power, HVAC

32 Copyright © 2020, Oracle and/or its affiliates.


Build, Deploy, Operate Container Based Applications
Container Native Application Development Capabilities

ORACLE CLOUD NATIVE SERVICES


Container Cloud Container
Engine for Infrastructure Pipelines Functions Resource Application
Kubernetes Registry (OCIR) (Wercker) Manager Development +
(OKE) Operations

Monitoring Notifications Streaming Events


Observability +
Messaging

Oracle Cloud Infrastructure

33 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Native Services: App Dev + Operations

Container Cloud Container


Engine for Infrastructure Pipelines Functions
Resource Application
Manager
Kubernetes Registry (OCIR) (Wercker) Development +
(OKE)
Operations

Highly available service to Provision infrastructure


store, share container images as code, reducing errors

Provision and manage Continuous integration + delivery Multitenant serverless service


containers for enterprise apps pipeline to build and test code for faster code development
faster

34 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Native Services: Observability + Messaging

Reports metrics Broadcasts messages Data collection Uses infrastructure


from resources to many subscribers at scale for apps changes to trigger
and services (email, pagerduty) (IoT, supply chain, etc.) notifications, functions, etc.

Monitoring Notifications Streaming Events Observability +


Messaging

35 Copyright © 2020, Oracle and/or its affiliates.


Containers Use Case: Lift & Shift WebLogic Application in cloud containers
Sample architecture

WebLogic Pull WebLogic


Application Push Docker
Build and Operator
image to images from
WebLogic Server Define build Registry
for CI/CD
Test
Registry
toolchain Container Push Cloud Container
Dockerfile
Pipelines, Infrastructure Engine for
Jenkins, etc. Registry Kubernetes

Containerize
WebLogic Deploy images
to production

WebLogic Application
WebLogic WebLogic
Application Operator
WebLogic Server
+ Server managing
Migrate WebLogic
WebLogic data store Domains
Autonomous Kubernetes
Transaction worker nodes
Processing
Data Store
(ex. Oracle Database)

ORACLE CLOUD INFRASTRUCTURE


36 Copyright © 2020, Oracle and/or its affiliates.
Containers Use Case: Refactor an Existing Application
Sample architecture
Push Docker
Build
images to Pull images
User Interface
Test
Registry from Registry

App Server + Push Code


to CI/CD Container Push Cloud Container
Data Access
toolchain Pipelines, Infrastructure Engine for
Jenkins, etc. Registry Kubernetes
Data Store

Microservices
Deploy
Containers images to
Re-factor app running production
microservices
Kubernetes
User Interface worker nodes

App Server +
Data Access

Monolith
Application ORACLE CLOUD INFRASTRUCTURE

Data Store

37 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Native Framework: Open Solution for Application Portability

Dev / Test Production

Production Dev / Test


Application Application

Oracle Cloud • Bi-directional cloud native app portability


(on-prem to cloud and cloud to on-prem) Oracle Linux
Native • Lift and shift migrations Cloud Native
Services • Open and consistent environments Environment

Public Cloud On-Premises

38 Copyright © 2020, Oracle and/or its affiliates.


Vision: An End-to-End Container Native Suite
Build, Deploy, Operate – An Open, Standards Based, Cloud Neutral AppDev Platform

39 Copyright © 2020, Oracle and/or its affiliates.


Part 2 - Implementation Approach: Cloud
Applications & Extensions Development with
DevOps

40 Copyright © 2020, Oracle and/or its affiliates.


Functions

41 Copyright © 2020, Oracle and/or its affiliates.


Serverless – Oracle Functions
Definition

• Open Source
• Native Docker: use any Docker container as your Function
• Supports all languages
• Run anywhere What Can We Build With
o Public, private and hybrid cloud Serverless?
o Import Lambda functions and run them anywhere
• Web & Mobile Backends
• Simple yet powerful extensibility
• Can significantly reduce costs, given proper planning and • Any other API
implementations
implementation
• An Architecture which allows developers to focus on just • Real-time processing of
Files, Streams
developing code and business logic
• There are servers in serverless • Batch processing
• An architectural trend that tries to “reduce all notion of • Gluing up SaaS Apps
Infrastructure”
• Polyglot function platform with Java Optimizations
42 Copyright © 2020, Oracle and/or its affiliates.
Oracle Functions
Benefits
Pay Per Use
Pay for execution, not for idle
time
Functions-as-a-Service

Oracle Cloud Integrated Autonomous


Platform auto-scales functions
Container Native No servers to provision,
manage
Open Source Engine

Secure
No Lock-in
Built on open-source Fn
Project and Docker

43 Copyright © 2020, Oracle and/or its affiliates.


How Does it Work?

Push Configure Code runs Pay for code


container to function only when execution time
registry trigger triggered only

44 Copyright © 2020, Oracle and/or its affiliates.


Key Features
Functions

Open Source Engine Container Native Function Dev Kits

HTTP
Events
Streams
Timer

Oracle Cloud Triggers Fine-grained Billing Advanced Diagnostics

45 Copyright © 2020, Oracle and/or its affiliates.


Functions – Serverless Applications Programming Model

• Short execution
• Stateless
• Triggered from user code or cloud events
• Self contained
• Scale automatically
• Container-Native – packed in container with Inherit a rich
ecosystem of container tools
• Function Developers – OCI users who create, deploy
functions
• Application is a logical group of functions
• When a function is deployed to Oracle functions, function is
built as Docker Image and pushed to Docker registry
• Definition of Function describes how function is executed
and also includes
o Docker Image to pull when function is invoked
o Maximum length of time the function is invoked for
o Maximum memory the function is allowed to consume

46 Copyright © 2020, Oracle and/or its affiliates.


Serverless – Function as a Service
Event Execution Flow
Function Execution
Local Function
Event Sources Develop CI/CD Backend Services

Fn Flow

Polyglot Function Engine


fn fn fn fn

Triggers
Managed Kubernetes

47 Copyright © 2020, Oracle and/or its affiliates.


Deploying Oracle Functions
Oracle Functions

• Build a Docker Image from function


• Provide Definition in func.yaml (max
time out, memory)
• Push image to Docker registry
• Uploading function Metadata to fn
Server
• Adding functions to list of fn shown in
console

48 Copyright © 2020, Oracle and/or its affiliates.


Cloud Native - Functions

Uses
Identity
Cloud Associated
Oracle
Access
Manager
Key
AuthN Management Oracle
Fusion
SaaS
Business
Visual Logic
API Gateway
Builder

Business
Logic
Other Services
Oracle Functions

OCI
49 Copyright © 2020, Oracle and/or its affiliates.
Common Use Cases – “Run Code in Response to Events”

Glue Cloud Services, Web, Mobile, IoT Real-time File, DevOps, Batch
Event-driven Backends Stream Processing Processing

50 Copyright © 2020, Oracle and/or its affiliates.


Functions as a Glue for Oracle Cloud Services

Cloud Applications (SaaS) Cloud Platform (PaaS)

ERP HCM Supply Chain Mobile Data Mgmt Custom Apps

Functions

Business
Data Analytics CX Integration Insight Collaboration

Cloud Infrastructure (IaaS) Network Compute Storage Audit Events

51 Copyright © 2020, Oracle and/or its affiliates.


Cloud Infrastructure
Event Driven Architectures

ORACLE CLOUD

Network DB / DW DB / DW

Audit OCI Events Functions

Trigger Storage
functions
Compute Storage Functions can use DB, Storage, and
other services

52 Copyright © 2020, Oracle and/or its affiliates.


Use Case: Build an Audit Trail

ORACLE CLOUD

Network DB / DW
Log
Destination
Audit OCI Events Functions

Trigger Functions logs audit


functions events
Compute Storage

53 Copyright © 2020, Oracle and/or its affiliates.


Serverless Use Case: Real-Time File Processing
Sample architecture

ORACLE CLOUD

DB / DW

Object Store OCI Events


Functions
Storage
High resolution product Trigger Generate images Images saved Generated images
image uploaded to functions of different in Storage, displayed on various
storage resolutions metadata in pages and devices
and sizes Database

54 Copyright © 2020, Oracle and/or its affiliates.


Low Code
Development
• Visual Builder Cloud Services
• APEX

55 Copyright © 2020, Oracle and/or its affiliates.


Low Code vs Traditional Coding

• Faster to design anddevelop Reduces Application Backlog


• Faster to iterate enhancements Delivers more value to users
• Non professional developers cancontribute Broadens resource pool
• Abstracts complexity (JavaScript,CSS…) Greater consistency

However
• Higher level frameworks reducecontrol Extensibility is important
• Applications are tied to a specific framework Also true of JS frameworks
• May not be suited to every screen in every app Use for apps thatmake sense
• Every low code tool caters to a specific need Know what your lookingfor

56 Copyright © 2020, Oracle and/or its affiliates.


Low Code vs Traditional Coding

Low Code Traditional Coding

High Productivity High Control

57 Copyright © 2020, Oracle and/or its affiliates.


Oracle Visual Cloud Builder
Key Principles

Nothing to install or configure, runs in the browser.


Cloud Based Applications accessible from any device

Drag and drop visual development with live WYSIWYG


Easy to Use designer Using Declarative Development approach

Easy access to SaaS data and processes via REST


SaaS Integrated catalog. Enrich SaaS with engaging custom UI

More complex behavior can be implemented in


Extensible standard JavaScript and HTML, REST, CSS

Complete Life Cycle Agile driven team development platform with


complete CI/CD chain

58 Copyright © 2020, Oracle and/or its affiliates.


Extend SaaS Applications with VBCS
Leverage the Visual Productivity

Productivity Through Visualization


• Visual Page Layout
• Visual Page Flow Diagram
• Visual Action Flow Definition
• Visual CI/CD Pipelines
• Visual REST Connection
• Visual Business Object Creation
• New Fusion Apps Module Developed with VBCS • Visual Business Objects Logic
• Configure, Customize and extend SaaS
• Visual Builder invoked directly from SaaS UI
• Build in CI/CD for Configurations

59 Copyright © 2020, Oracle and/or its affiliates.


Oracle Visual Builder High Level Architecture

Development

Tasks Agile Wiki


Visual
Development Team Development
Git CI/CD Code REST
Review

Runtime

Oracle JET
HTTPS / REST
App Hosting Business Objects Data

60 Copyright © 2020, Oracle and/or its affiliates.


When to choose Visual Builder or APEX

When to chose Visual Builder?


REST, On-Device Mobile, SaaS Extensions
• Applications require various and flexible
data sources and cloud applications
• Pixel-perfect UI is required on any type of
devices (Web & Mobile)
• Development team wants to customize
generated UI directly in JavaScript

When to chose APEX?


• On-premise Web application that can be Oracle Database and SQL, LOBApps
exposed to external users
• Straight forward application with data
primarily in ATP
• Developers do not master UI development

61 Copyright © 2020, Oracle and/or its affiliates.


Use Cases
APEX and Visual Builder Cloud Services

Visual Builder Cloud Services Oracle APEX


• Inter – departmental opportunistic • Opportunistic Apps/Point Solutions
applications • SaaS /EBS Extensions
• Replace spreadsheets with modern web • Oracle Forms Modernization
applications
• AppDev as a Service
• Custom UI (Extensions) for Oracle SaaS
• External Data Sharing
Services
• Datamart Reporting
• Mash up rest services with custom data
• Spreadsheet Replacement
• Full Application Development
• Enterprise Applications

62 Copyright © 2020, Oracle and/or its affiliates.


VBCS APEX
• Professional Devs (Forms, ADF, backend developers) • Database Developers
Target Audience • Low Code • Low Code
• High Productivity • High Productivity
• API First • Data First
• Visual dev via browser • Visual dev via browser
Approach • Full access to code • SQL-centric
• REST-centric
• OOTB Fusion SaaS look-n-feel • Custom look-n-feel
• Auto PaaS-SaaS association for SSO • No SSO with PaaS-SaaS users
SaaS Integration • Pre-populated Oracle SaaS catalog
• Declarative API consumption
• Custom Business Objects saved to ATP • Oracle SQL
Data & SaaS • REST to ORDS/ATP • SOAP/REST connectivity via SQL
Access • REST to any other REST API • Custom data in ATP
• SOAP-to-REST through Integration Cloud
• Primarily client-side in JavaScript • Executed in Database
Logic • Simple triggers and validations in Groovy on Business Objects • SQL and PL/SQL
• More complicated in OIC or custom code on K8

Availability • Cloud only • On-Prem & Cloud

Developer Skills • Visual Development or Javascript/HTML/CSS • PL/SQL

Architecture • HTML/JavaScript/REST in a multi-layer architecture • All inside the DB

• Full two-way editing between code and declarative designers • Code is not readable in a
Code accessibility • Built-in Git integration with Developer Cloud Service meaningful way

On-device mobile • Supported • Not supported

63 Copyright © 2020, Oracle and/or its affiliates.


Oracle
Low CodeLow CodeComponents
Development Stack
VBCS Low Code
• Rapid Visual Development
• Integrate any Rest enablement data source
• Automatic code generation
• Oracle Cloud infrastructure and deployment

REST (Oracle REST Data Services) Visual Builder Business Objects


• Easily REST-enable existing databases • Declaratively build out new database objects
• Maps https request to database call • SSO and data security with PaaS/SaaS identity
• No cost, supported with database • Server-side triggers, validations, and functions in
• Swagger / Pagination / Jersey / Oracle Standard Groovy
• Users and roles maintained in database • Save to free internal DB or to your ATP

Oracle ATP Database


• Provides access to data via SQL
• Built in support for JSON and XML (multi model)
• Built in analytics, text, spatial, and graph capabilities
• MVRC, In Memory, RAC, Data Guard, Flashback, PL/SQL

64 Copyright © 2020, Oracle and/or its affiliates.


Mapping Platforms to Capabilities

Platform Framework ATP Database Language Complex Managed By SOAP REST IDCS Dev Style
/ Library Access Business Support Support Integration/
Logic Propagation

OIC REST via Adaptor Declarative Medium Oracle Yes Yes Yes* Declarative
Integration
WLCS JAXRS JDBC / REST Java Yes Customer Yes Yes Declarative Code

WLCS ADFBC Declarative / Java Java/XML Yes Customer Yes Yes Declarative Declarative

OKE* HELIDON JDBC / REST Java Yes Oracle/ Yes Yes Yes Code
Customer
ATP ORnS Native PLSQL Yes Oracle No* Yes No only Code
ORDS
security*

Functions* Java REST Java Yes Oracle Yes Yes Yes via Code
APIGW
Visual Business REST Declarative Medium Oracle No Yes Yes Declarative
Builder Objects

- OKE and Functions have the ability to use any docker container created by the user
65 Copyright © 2020, Oracle and/or its affiliates.
Monolithic
Development
Java

66 Copyright © 2020, Oracle and/or its affiliates.


Java Cloud Service

• A complete platform and infrastructure cloud solution for building,


deploying, and managing Java EE applications
• Powered by the industry’s #1 java EE application server - Oracle
Weblogic Server
• Self service application platform with advanced cloud tools
• Saves time and cost with simplified provisioning
• Reduced down time using automated patching, backup and recovery
• Increases data and processing capacity on demand to scale for new
business needs
• Optionally supports Oracle Coherence for caching and data grid
functions and Oracle Traffic Director for load balancing
• Preconfigured for Oracle Database and Developer Cloud Services for
complete cloud application management

67 Copyright © 2020, Oracle and/or its affiliates.


Java Cloud Service: Use Cases

Java Cloud Service – Java Cloud Service Java Cloud Service


SaaS Extension Virtual Image

Use Case: Full Development/Test


Use Case: Extend Oracle SaaS Use Case: Simple Java EE and Deployment
Applications Development
Example: Dev/Test/Deploy for just-
Example: Adding trade promotion Example: Dev/Test for fan portal in-time vendor inventory update
to Oracle CX Cloud Services for a famous football club
Includes: WebLogic Server,
Includes: Tailored WebLogic Server Includes: WebLogic Server, Coherence, Developer Service, Fully
and ADF, Developer Service Coherence, Developer Service automated lifecycle management
68 Copyright © 2020, Oracle and/or its affiliates.
Java Cloud Service: Use Cases
Use cases

On-Premise,
On-Premise, Private Cloud,
Private Cloud Other Clouds
Java Apps
Dev and Test In Cloud Migrate Apps to Cloud New App Development In Cloud
• Faster spin-up of dev/test • Lower overall cost – no data • Simplified Java infrastructure for
instances centers building cloud-native
• Easy standardization • Reduce ongoing management applications
enforcement cost with OOTB tooling for • Broad cloud service portfolio to
• Integrated developer production class operations – meet all technical needs
environment with DevCS backup, restore, manage, • Integrated dev environment with
• Consolidate with monitor, scale, patch DevCS
standardization • Standardization and • Lower overall cost
• Faster time to market consolidation
• Lower cost • Ability to move back to on-
premise with Exalogic
69 Copyright © 2020, Oracle and/or its affiliates.
Oracle Mobile
Services
Mobile HUB
Digital Assistant

70 Copyright © 2020, Oracle and/or its affiliates.


Evolution from Mobile Apps to Digital Assistant

Digital Customer Oracle Oracle


Assistant Analytics Mobile Hub Digital Assistant

Client
Mobile
Development
Core
Line of Tools
Business

Developers Architects and Cloud Platform Digital Assistant


and DevOps IT Ops for Oracle SaaS for Oracle SaaS

Oracle Cloud Platform

71
71 Copyright ©
Copyright © 2020,
2020, Oracle
Oracle and/or
and/or its
its affiliates.
affiliates.
Oracle Multi-Channel Cloud

Web Mobile Messaging Voice Auto Immersive

Oracle App Development Tools 3rd Party App Development Tools

Client SDK / API


Customer Experience Mobile Services Digital Assistant Augmented Reality
Analytics (Push, Sync, LBS…) Conversational AI Platform (Object Rec, WebRTC,..)
Cross Channel Insights
MOBILE APP INTEGRATION
AI / ML Mobile API Catalog API Shaping Connectors

ORACLE APPS 3RD PARTY APPS CUSTOMER APPS

72 Copyright © 2020, Oracle and/or its affiliates.


Mobile Services Using Oracle Cloud Infrastructure
Built on OCI

UI Console
API, Backend Lifecycle Security Diagnostics

Mobile App Insights Mobile Runtime Services


Mobile Client
Development App Usage Crash Engagement Notification Token Exchange

Hybrid Built-in
APIs / Other SaaS
SDKs Platform
APIs
Database
Connect
User Mgmt
Custom or Oracle SaaS
REST
Nativ Notifications Code
Object Container SOAP
e Data Shaping
APIs / Storage ICS
SDKs
Location Mash-up
Orchestrate On-Premise
Offline Sync Packaged
Applications
Mob Analytics
Other Oracle Client
tools Customer
APIs / APIsAPI
Custom OCI Shared services
SDKs Custom
BOTS VBCS JET 3rd Party API Obj Storage DB Identity Applications

73 Copyright © 2020, Oracle and/or its affiliates.


Application Development on OCI with Oracle Mobile Hub
One stop development platform for mobile apps developers

Use a browser to design, create, implement, test


and register mobile applications.

• Choice of Development Tools: supports native,


hybrid, and no code development and includes SDKs
for native apps Cordova, JavaScript Extension Toolkit Multi-Channel
or JET Instant
Development
Voice
Platform
• Notifications: User – Configurable, multi-channel Apps Enabled
push notifications (native, SMS, email, Voice) are Devices

supported for the iOS , Android and Microsoft


Platforms. Microsoft
HoloLense
• Offline data Sync: manage offline data persistence Messaging Image
an 2 way sync. With enterprise systems, which Platforms ODG smart
glasses
Recognition

enables conflict detection and customizable


resolution rules. Augmented
reality
Cognitive
Services
• API catalog: search browse, and consume services
and APIs or create interfaces to backend systems
• Extend: with node.js modules for advanced
implementations.

74 Copyright © 2020, Oracle and/or its affiliates.


Oracle Digital Assistance
Key Features to enrich implementations

• Build a DA going beyond chatbots by initiating interactions


from updated data
• Connect to any of your enterprise back-end systems to give
your digital assistant the power to transform your business
• Support multiple clients and popular conversational
interfaces
• Real time insight into performances of DA for continued
analysis and improvement

Bot – Initiated Digital Assistant


Multi – Purpose No Code
Interactions Insights
Skills Development
• Proactive
Engagement • Automate Analytics
• Visual •
Live agent multiple apps Self Learning
• Development •
handoff • Instant apps
• Q&A Builder

75 Copyright © 2020, Oracle and/or its affiliates.


Chatbots vs. Digital Assistant

Chatbots Digital Assistants


• A computer program designed to • A digital assistant recommends or
simulate conversation with completes tasks beyond simple
human users conversations
• Single purpose • Multi purpose (bots = skills)
• User initiated • Bot initiated
• Uses AI for understanding • Uses AI for predictions and
conversations recommendations

76 Copyright © 2020, Oracle and/or its affiliates.


Digital Assistants Use Cases

Use case Details and what is required


Automated approvals Learn approval patterns by user and recommend automated approvals
of certain categories
Employee referral email Auto create record in recruitment system of record with referring
employee and rank prospect based on group requirements
Competitive Information emails Auto create records looking for specific information in emails related to
competition in sales CRM to help with competitive deals
Auto generated expenses Auto create expenses based on location, calendar, receipts emailed
Automated hiring and Auto generate job requisitions, find candidates, schedule interviews,
onboarding perform follow ups, generate offers and set up onboarding

77 Copyright © 2020, Oracle and/or its affiliates.


Key components
Oracle Digital Assistant

Custom
Dialog State machine that
Channel
Target Flow executes context &
multiple clients Configurator memory driven
Execution
conversations

Connectivity to Enterprise Machine learning,


backend systems
Conversational cognitive services and
Data AI context management
Integration Engine

78 Copyright © 2020, Oracle and/or its affiliates.


Identify the Enterprise Skills
From any application to create conversation channels through digital assistant

Any application Digital assistant skills Conversational channels

SCM Inventory
SCM skills
Purchase Manufacturing
Orders
ERP
ERP skills
Procurement
Selected
Submit skills Submit
HCM Expense Expenses

HCM skills approval expenses


Employee
Goals

Absence Inventory

CX manager
CX skills Sales

Employee Sales
goals
3rd Party
3rd party skills Location
services

79 Copyright © 2020, Oracle and/or its affiliates.


Blockchain

80 Copyright © 2020, Oracle and/or its affiliates.


Characteristics of Blockchain

Tamper-proof data Shared and transparent Consensus based


Security and privacy
Records written to the Distributed ledger ▪ Updates to distributed
▪ ▪ ▪ Only those authorized with
blockchain cannot easily enables single shared ledger are made after
keys can view the data
be changed or deleted source of truth distributed consensus among
across all nodes network peers ▪ Blockchain stores
▪ Enhances trust in auditable historic records
decentralized single Enables transparency, ▪ Protects against fraud
▪ that can be encrypted for
source of truth reduced delays and cost among participants and
privacy
of 3rd party intermediaries maintains trust in the
ledger

Enables trust

81 Copyright © 2020, Oracle and/or its affiliates.


Two types of Blockchain

Permissionless (or public) Permissioned


• Anyone on Internet may join and have access • Members in business network are invited to
to the ledger information join network
• Examples: Bitcoin, Ethereum • Examples: manufacturer and its suppliers,
cargo shipper and its broker network, etc.
• Less secure and poorer governance – parties
not known in advance • More secure and better governance – parties
are known in advance
• Better suited for the enterprise

Oracle Offers a Permissioned Enterprise Blockchain Platform

82 Copyright © 2020, Oracle and/or its affiliates.


Implementation Challenges of Blockchain Projects

Difficult to setup open source software, along with required


Complex to setup security, and infra. dependencies

Integration challenges Expensive and complex to integrate diverse data sources with
enterprise business applications

Requires enterprise-grade capabilities Blockchain requires enterprise-grade resilience, scalability,


security, and performance

Keeping up with open-source evolution Open source software such as Hyperledger innovates rapidly,
keeping platform up to date is challenging

Operational challenges Disaster recovery, backups, restores, patching, monitoring


can get expensive for ops

To address these challenges, enterprises need a managed Blockchain Solution

83 Copyright © 2020, Oracle and/or its affiliates.


Oracle Blockchain Platform Cloud Service
Hardened for enterprise applications

Oracle SaaS Custom


3rd Party
Cloud On-Premises
SaaS
CRM ERP HCM CX SCM Apps Apps Hyperledger fabric peers
In customer data centers or
3rd party clouds
Pre-assembled
Oracle Blockchain Platform Cloud Service
REST APIs SDKs for Go, Java, and Node.js Enterprise Adapters (OIC )
Open Confidentiality
Smart Contracts
Fine-grained access control (Channels, Collections)
(Go, Node.js, Java)
Membership Governance
Plug and play Distributed Ledger Consensus
integrations
Open Source Hyperledger Fabric

Enterprise-grade
Container Identity Event Administration & Off-chain
Management Management Management DevOps Services Data Sync

Oracle Cloud Infrastructure and PaaS Services


Automated DevOps
OBP Enterprise
Oracle-Managed PaaS Edition (on-premises
deployment)

84 Copyright © 2020, Oracle and/or its affiliates.


Oracle Blockchain Cloud Platform
Implementation activities to plan

Peer nodes

Distributed ledger
(single version of truth) Applications
Smart contract (REST API)
REST proxy
(aka chaincode) Membership
service

Ordering service

Membership
service
Applications Ordering service
REST proxy (SDK based)

Admin UI
Admin UI

Applications

Managed PaaS
85 Copyright © 2020, Oracle and/or its affiliates.
Part 3 - Implementation Approach: Cloud
Applications & Extensions Development with
DevOps

86 Copyright © 2020, Oracle and/or its affiliates.


Oracle Developer
Cloud Service

87 Copyright © 2020, Oracle and/or its affiliates.


Introduction to Oracle Developer Cloud Service

• Cloud-based development platform that


enables agile development methodology and
DevOps automation
• A hosted environment for application
development infrastructure
• An open source standards-based solution to
develop, collaborate, and deploy applications
within Oracle Cloud without Development cloud costs:
• Acquire hardware and software
• Better Applications Development Process • Set up and install components
• Quicker and cheaper development cycle • Configure IDEs
• Maintain and Upgrade versions
• Connect to Deployment platform
Provisioned for every Oracle Cloud Customer – for FREE

88 Copyright © 2020, Oracle and/or its affiliates.


Keys to Application Development Project Management Success
Through Cloud DevOps

• Achieving build process agility


• Producing better application
• Streamlining Deployment
• Managing Teams and Developers
Development/Build
• Tracking and reporting CLOUD SERVICES
• Team Communication
• Workaround management and prioritization
• Manage development project
• Manage your source code
• Automate build and deployment of extensions
• Great for managing outsourced projects
Management Runtime/Deployment
CLOUD SERVICES CLOUD SERVICES

89 Copyright © 2020, Oracle and/or its affiliates.


Oracle Developer Cloud Service
Features

Java
• Task tracking System Database
Application
Container
• Agile and Sprint Planning
• Code Versioning and Repositories
• Code Review Process Visual Mobile
Builder
• Build Servers
Developer
• Test Automation
• Continuous Integration Engine
SOA Containers
• Deployment Automation

Compute Storage

90 Copyright © 2020, Oracle and/or its affiliates.


Oracle Developer Cloud Service
What’s Inside
• Code/CI Management
• Version Management – Git
• Build Automation
• Ant, Maven, Gradle, npm, Grunt, Bower, Gulp,
SQLcl, Shell, Hudson
• Built-in IDE Integration
• Eclipse, NetBeans, JDeveloper
• Test Automation
• Selenium, JUnit, Findbugs, Sonar, others
• Deployment & Provisioning Automation
• Docker, K8S, Terraform, PSM, OCICLI
• Continuous Integration Engine with Pipelines
• Team/Agile Management
• Issues Tracking
• Agile Process Management
• Peer Code Review
• Wiki
• Activity stream
• Choice of Deployment Target
• JCS, Java SE or Node Cloud Service, Moblie Hub
91 Copyright © 2020, Oracle and/or its affiliates.
Many Ways to Interact with Developer Cloud Service

JDeveloper,
REST
NetBeans Mylyn
Interface
and Eclipse

Web
Dashboard SSH to GIT
Partners

Developer Cloud Service

92 Copyright © 2020, Oracle and/or its affiliates.


Architecture
Oracle Developer Cloud Service
Build

Developer Cloud Oracle Compute Oracle Compute


Tasks/Agile Build Server Build Server
Git
Code review
Build
Pipeline

Deploy
WebHooks

External Tools Oracle PaaS Oracle IaaS Non Oracle IaaS


GitHub
Jenkins/Hudson
Slack/Hipchat

93 Copyright © 2020, Oracle and/or its affiliates.


Oracle Cloud Developer Service
Oracle Developer Cloud Service
Eclipse
Oracle Developer Cloud Service Project Java Cloud
Service
Docker
Maven
JDeveloper Git Repository Dependency Kubernetes

Issue Tracking Server


Tracking

Deployment Server
Build Server
Wiki Server
NetBeans Agile JCS – SaaS
Development Extensions
Environment
Web Interface
Merger On-
Requests Premise
Command Weblogic
Line Others

94 Copyright © 2020, Oracle and/or its affiliates.


Software Platform for Agile Development

Development Infrastructure Team Infrastructure


Version Management Issue & Task Tracking
Automated Build/Test Team/Sprint Management
Continuous Integration Peer Code Review
Continuous Delivery Documentation / Wiki
Continuous Provisioning Team activity channel

95 Copyright © 2020, Oracle and/or its affiliates.


Comprehensive Project Management & Administration
ODCS Section available to Project Owners

• Project Properties
• Build Environments
• Analyze Usage Metrics & Data
• Issue Tracking
• Customize Issue Tracking
• Configure Git Repositories
• Manage Branches
• Create Webhook Connections to
External System
• Connect to Syndication Services
• Import/Export Projects

96 Copyright © 2020, Oracle and/or its affiliates.


Developer Cloud Service Features

Simplify Development Collaborate & Manage


▪ Integrated team source repository
▪ Automatically provisioned
▪ Continuous integration with
▪ Preconfigured and integrated
breakage notifications
▪ Automated builds and ▪ Task/defect tracking with activity
deployments stream and notifications
▪ Web based administration

Deploy Automatically Integrated With IDEs


▪ Deploy into Oracle Java Cloud ▪ JDeveloper
Service automatically
▪ Eclipse
▪ Workflow ensures proper build and
▪ NetBeans
test

97 Copyright © 2020, Oracle and/or its affiliates.


Developer Cloud Service: Main Menu

• Organization: DevCs instance main page for all projects


• Project Home: Project overview page for recent activities, repositories, statistics, etc
• Git: Access to all Git repositories and source code
• Merge Requests: Create and Approve merge requests from Git branches
• Maven: Maven repositories artifacts for project
• Docker: Access to externally linked Docker registries
• Releases: A release is a collection of specific tags or branches of Git repositories,
specific binary artifacts of project Maven repository, specific archived build artifacts,
and pointers to documentation wiki pages
• Builds: Configure Hudson build jobs that will compile and package source code
• Deployments: Define configurations to deploy build artifacts to JCS or Kubernetes
• Environments: Define and manage PaaS or OCI services instances as a single entity
• Issues: Create and track issues, define searches for grouping issues
• Boards: Incorporate agile Methodology with agile boards and spirits
• Wiki: Create wiki documentation pages for team collaboration
• Snippets: Small pieces of reusable code that can be shared, if desired
• Project Administration: Set project properties, customize issues, manage Git branch
security, specify rules for creating links, import Hudson jobs

98 Copyright © 2020, Oracle and/or its affiliates.


ODCS and The DevOps Cycle

• Plan
• Task tracking, Agile planning, wiki Plan
• Code Monitor Code
• Git– version management
• Code review, snippets
• Build
• CI + Build Tools & Utilities
Operate Build
• Test
• JUnit & Selenium, Findbugs, Sonar deploy
to QA
• Release & Deploy
Deploy Test
• Deploy Plans, Provisioning, and configuring
• Operate & Monitor Release

99 Copyright © 2020, Oracle and/or its affiliates.


What a Project Manager can DO with ODCS

• Project creation, configuration


• User management and adding Team members Plan
• Version control and source code management with Git Monitor Code
• Set up and monitor Agile Development Platform to track
sprints
• Perform code reviews Project
• Track, monitor, and administer the Project Activities Operate
Manager Build

• Storage of applications dependencies and libraries with


Maven
• Continuous Integration and Continuous Deployment (CI/CD) Deploy Test
• Set up and create Wiki Components for documentation and
Release
collaboration
• Issue tracking system to track tasks, defects and features
• Perform project Builds
• Code Review with Merge
100 Copyright © 2020, Oracle and/or its affiliates.
The DevOps Cycle – Enabling Agility
Mapping to the Cloud Delivery Framework
Analyze & Plan & Configure & Validate & Transition & Sustain &
Prepare Design Build Test Go Live Realize

Plan &
Plan Design

Monitor Code
Sustain &
Realize

Configure
Operate Build
& Build

Validate
Deploy Test
& Test
Release
Transition &
Go Live

101 Copyright © 2020, Oracle and/or its affiliates.


Analyze &
Implementation Approach – Cloud Apps & Extensions Development Prepare

Analyze & Prepare phase Implementation


Approach – Cloud Apps &
Extensions Development
Major Activities:
• Define the Application or Extension scope of work and high level
business requirements Main Artifacts of Development &
• Depict the high level architecture design (monolithic, microservices, or Extension Deliverables
serverless) • Scope of work (SoW)
• Identify the appropriate development framework – Cloud Native, • Plan schedule
Functions, Java, Apex, VBCS, etc…) • Deployment plan
• Analyze the current programming languages leveraged and the current • Continuous test plan
skillsets available. • Risk & issue management plan
• Orient the customer on Oracle Cloud Developer Services tools and • Change management plan
features to be used in the project (Git, Maven, Hudson, Selenium, etc…)
• Identify and size the appropriate cloud services (VMs, Dockers,
Kubernetes, containers, baremetal, etc…)
• Identify deployment environments (Dev & Test & UAT)
• Orient / Onboard project team on selected development cloud services
• Train the team on the 12 –factor development methodology principles
for project governance

102 Copyright © 2020, Oracle and/or its affiliates.


12-Factor Methodology
• A methodology for developing, building and
deploying web applications, specifically software-
as-a-service apps.

• Best practices to enable applications to be built with


portability and resilience when deployed to the web

• It provide a solid framework for organizing your


project in order to maintain a healthy and scalable
application.

12-Factor App

103 Copyright © 2020, Oracle and/or its affiliates.


12-Factor Methodology
Key Principles
No Factor Description
There should be exactly one codebase for a deployed service with the codebase being used for many
1 Codebase
deployments.
2 Dependencies All dependencies should be declared, with no implicit reliance on system tools or libraries.
3 Configuration Configuration that varies between deployments should be stored in the environment.
All backing services are treated as attached resources and attached and detached by the execution
4 Backing Services
environment.
5 Build, release, run The delivery pipeline should strictly consist of build, release, run.
Applications should be deployed as one or more stateless processes with persisted data stored on a
6 Processes
backing service.
7 Port Binding Self-contained services should make themselves available to other services by specified ports.
8 Concurrency Concurrency is advocated by scaling individual processes.
9 Disposability Fast startup and shutdown are advocated for a more robust and resilient system.
10 Dev/Prod parity All environments should be as similar as possible.
11 Logs Applications should produce logs as event streams and leave the execution environment to aggregate.
12 Admin Processes Any needed admin tasks should be kept in source control and packaged with the application.

104 Copyright © 2020, Oracle and/or its affiliates.


AppDev lifecycle completely automated with Oracle cloud PaaS tools

105 Copyright © 2020, Oracle and/or its affiliates.


Plan &
Implementation Approach – Cloud Apps & Extensions Development Design
Plan & Design Lifecycle Implementation
Approach – Cloud Apps &
Extensions Development
Major Activities:
• Identify solution Gaps for SaaS extensions development
Main Artifacts of Development &
• Develop Requirement Specification (Use case diagrams, Extension Deliverables
personas, wireframes, story boards) • Project plan & sprints
• Create Software and Security Architecture design • Development specification
• Software and security
• Deployment Architecture diagrams (Cloud Services) & architecture design
DR/HA Policies • Deployment architecture
• Provision and create development instances diagrams & DR/HA
• Create project in Oracle Developer Cloud Policies
• Development cloud
• Form Agile teams, sprints, backlogs, dashboards services documentation
• Commence source code development & management
• Start tracking issues, releases, components etc…
• Version Control & Management

106 Copyright © 2020, Oracle and/or its affiliates.


Environments Management
Applications Development In the context of Cloud

An environment lets you define and manage Oracle cloud Paas and OCI service
1 instances as a single entity

Environment is created by a QA team with an Oracle Database Cloud Service


2 instance to host data

Example: An Oracle Java Cloud Service instance is being used to deploy the
3 application to and run Selenium tests.

User can create a stage environment that uses the same Oracle Database Cloud
4 service instance as the QA environment, but a different Oracle Java Cloud Service
instance to deploy the application to.

User can view the health of at service instances comprising each environment on the
5 project page or on the environments page

107 Copyright © 2020, Oracle and/or its affiliates.


Environments Management
Applications Development In the context of Cloud

Any project member can create an environment and add service instances to it.
6 Other project members can use the service instances of the environment to run, test
and deploy applications

User can access and manage the project’s environments from the
7 environments page

User can create, update, and delete environments, and add or remove service
8 instances from existing environments

User can capture information in a single place about health status of service
9 instances, their account names, tags, and service IDs. The details tab displays
its details such as name description, and tags of the selected environments

Tags associate a service instance to an environment. When you add a service


10 instance to an environment a new tag is created. A tag is used in multiple
environments of the same project or other projects.

108 Copyright © 2020, Oracle and/or its affiliates.


Team Collaboration for Planning

• Issue Tracking
Plan • Agile project Management and Dashboard
• Create dashboard
Monitor Code • Scrum & Kanban
• Manage issues backlog
• Manage development sprints
• Track team/tasks status
• Progress Charts
Operate Build • Team Reports
• Wikis Share information, Attachment
support, Wiki markup of choice
• Agile and sprint execution Team
collaboration features
Deploy Test
• Git source version management CI/CD
Pipelines
Release

109 Copyright © 2020, Oracle and/or its affiliates.


Agile Components
in Developer Cloud Service

Assign
Story Track and
Task List Board Sprint Resource &
Points Monitor
Timeline

Define and Create a Create one or Explain Assign Create


Manage board & more Sprints work as resources backlog
Issues include an & map stories & timeline issues &
issue issues/tasks to a task in monitor
the sprint
• Task
• Defect – Default
• Feature
• Epic
• Story

Refer to: https://www.agilemethodology.org/


110 Copyright © 2020, Oracle and/or its affiliates.
Coding

• Git Repositories
• Private or shared
Plan
• Protected branches
• Online Peer Code Review in the Cloud
Monitor Code
• Manage merge requests
• Built as a part of review
• Large utilities on build servers
• Java, Node.js, Python, Groovy, C++, Ruby,
Operate Build SQL
• Code Review
• IDE Integration
• Create Requirements/Bugs/ERs
• Assign to team members
Deploy Test • Assign to sprints
• Customize attributes values
Release • Access from IDE

111 Copyright © 2020, Oracle and/or its affiliates.


Issue Tracking: Oracle Developer Cloud Service

Oracle Developer Cloud Service Support an Issue Tracking system


for each project.
Define the following elements with this system:
Focuses on:
1. Issues
• Tracking changes
2. Products • Version Control
3. Components • Speed
4. Releases • Data Integrity
5. Search Tags • Distributed, asynchronous
workflows
6. Assignment of Issues to Project Members • Coordinating work
7. Cost Metrics
8. Priority, Severity, Type of Issues

https://git-scm.com/
112 Copyright © 2020, Oracle and/or its affiliates.
Source Code Management

• Git repositories • Request code review


• Branch, tag, merge • Invite team members
• Branch visualization • Integrate build jobs into review
• Web interface + in place branch/editing • Comment on Code
• Compare changes • Accept / Reject / Iterate Reviews
• Advanced code search • Merge Code
• Accessible from any Git client • Merge Conflict Resolution
• External repositories integration (for
example GitHub)
• Snippets – for reusable code

113 Copyright © 2020, Oracle and/or its affiliates.


Version Control & Management

• Collaborative Development on the Source


Working Staging .git Directory
code Directory Area (Repository)
• Record changes to a file (local, Centralized,
Disbributed)
• Tracking of Changes Checkout the Project
• Clone the remote Git repository
• Take snapshots of versions are properly Stage Fixes
documented and stored
• Managing branches and releases
Commit
• Allowing rollback of changes
• Take backup for the working copy
Sections of a Git Project

114 Copyright © 2020, Oracle and/or its affiliates.


Configure &
Implementation Approach – Cloud Apps & Extensions Development Build
Configure & Built Phase Implementation
Approach – Cloud Apps &
Extensions Development
Major Activities:
• Provision and install development environment & cloud services
• Setting Up OCI – VCN, IAM policy, Kubernetes, Dockers and Main Artifacts of Development &
Extension Deliverables:
other cloud native set up • Software Releases
• Develop & Build Applications and extension • Builds/Jobs – package source
codes
• Create project in Maven to manage (builds, documentation, • Deployments & Environments
reporting, dependencies, source code mgmt., releases, • List of Issues
Distribution) • Agile boards, Sprints, burn out
charts, dashboards
• Implement Security Policies
• Documentation in Wiki
• Manage development change management requests
• Manage development risks and issues
• Manage Application Release candidates & gold release versions
(in a CI/CD methodology)

115 Copyright © 2020, Oracle and/or its affiliates.


Build Automation

• Support Popular Build Frameworks:Maven, Gradle,


Plan
Ant, npm, Bower, Gulp, SQlcl, Oracle SOA, Oracle J
Developer, Oracle Forms, Project Fn, Shell
Monitor Code
• Orchestration and Dependencies
• Automate Provisioning
• Docker, Kubernets, Terraform, OCIcli
• Build Reports and Notifications
Operate Build • CI/CD Pipelines
• Create deployment configurations
• Start/Stop a deployment
• Redeploy/Un-deploy applications
• Visually create build pipelines
Deploy Test • Reuse build jobs
• Orchestrate execution: Flow, forks, joins
Release • Automate execution
• Easily manage and monitor

116 Copyright © 2020, Oracle and/or its affiliates.


What is Maven?

• Apache Maven is a software project management Maven project Life Cycle:


comprehension tool • Creation
• Maven is based on the concept of a Project Object Model • Compile
(POM) and can manage a project’s built reporting and • Test
documentation from a central piece of information • Package
• Provides a complete build life-cycle framework to
manage:
• Builds
Main Features:
• Documentation • Easy build process
• Reporting • Uniform build system
• Dependencies • Quality project information
• Source Code Management (SCM) • Guidelines for best practice
development
• Releases • Transparent migration to
• Distribution new features

117 Copyright © 2020, Oracle and/or its affiliates.


What is Continuous Integration?

Continuous Integration (CI) is a software Purpose of a CI Server


engineering practice that attempts to improve
quality and reduce time taken to deliver • Watches over control system
software by applying small and frequent quality • Monitors source code for any
control efforts. It is characterized by these key updates
practices: • Runs the automated build process
• Stores the binaries of the filesystem
• The build runs on the merged (integrated)
where they are accessible to the
code, generating artifacts and running tests team
to ensure that nothing has been broken • Reduces risk by providing faster
• To automate the process a CI server is usually feedback
employed to compile package, test and report • Identifies and fixes integration and
on each build as it occurs regression issues faster

118 Copyright © 2020, Oracle and/or its affiliates.


Continuous Integration: Code Build Test & Deploy
In Developer Cloud Continuous Integration Server
Common CI Environments
IDE
• Development Environments
- Unit Tests
- Smoke Tests
• Acceptance Testing Environment
- Cucumber and specification Tests Continuous Task/
- UI/End-to-End Tests Integration
Server Oracle Issues
• Acceptance Testing Environment
- Manual Tests Developer
Cloud
- Exploratory Tests
Service
• Acceptance Testing Environment
- A separate production like server
- Configuration mimics production
• Production Environment
- One or more clustered production Build Source Code
environments Automation Management
- Should work in a similar manner as in the
staging environment

119 Copyright © 2020, Oracle and/or its affiliates.


Build, deploy and publish services and APIs
Leverage your preferred toolchain
Service API Catalog
CI-CD/DevOps Pipelines

Developer
Cloud

Command Line tools or curl


>curl -i -X GET -H
>psm setup "Authorization:joe
>psm list services @example.com:joePa
Oracle Container Native
>psm push app …
ssword" \ -H ...

Automation Tools REST APIS

Hashicorp

120 Copyright © 2020, Oracle and/or its affiliates.


Provide a Leading CI/CD and Container Lifecycle Solution
Container Pipelines (Wercker) - easy to assemble and automated builds to registries and
production-grade clusters
Registry Deploy to
Build Push to Registry Orchestration Scheduler

Git
Test Push Deploy

OSS CLI Pipeline/Build Console Chatbot Integration Oracle, Pivotal,


Workflow Automation with Slack (Walterbot) Amazon, Google …

121 Copyright © 2020, Oracle and/or its affiliates.


What is a Job and a Build?

A build is a process by which source code is converted into a deployable artifact

No. Job /Projects Build


1 A Job is a configuration that defines A build is a result of a job’s run
the builds of your application.
2 A Job defines where to find the When a Build runs, it creates packaged
source code files, how and when to archives of the applications that you can
run builds, and the software and the deploy to a web server
environment required to run builds
3 A Job can have hundreds of builds Each build would’ve it’s artifacts logs
and reports

A job is a recipe (or build configuration) of how Hudson is going to build your project

122 Copyright © 2020, Oracle and/or its affiliates.


Code Review in Developer Cloud Service

Target
A Request is sent to one or more
reviewers to review code on a branch Branch
and upon approval, that branch is
merged with the master branch.

Master

Merge Source
Create a new
branch Code approved Build test Review
Branch
Review code
1. Create a branch
2. Download the branch
3. Review code
A merge request can be closed without
4. Fix and enhance code
merging. Also, the “fix” branch can be
5. Upload the branch
Iterate, fix, merged without approval
and review
123 Copyright © 2020, Oracle and/or its affiliates.
Validate &
Implementation Approach – Cloud Apps & Extensions Development Test

Validate & Test phase Implementation


Approach – Cloud Apps &
Extensions Development

Major Activities:
• Continuously validate code developments Main Artifacts of Development &
• Conduct source code auditing and QA Extension Deliverables:
• Validate security • Development specification
• Continuously manage change requests and rework orders • Code Repository
• Continuously compile application package • User Roles & Responsibilities
• Continuously deploy the compiled application package • End-User Test Plan & Test
Results
• Continuously test the application package functionalities
• Issue Tracking
• All necessary Test / Validation Scripts have been • Development cloud services
developed to conduct comprehensive testing of the documentation and training
desired custom build applications, extensions, materials
functionality, business processes, security, mobile apps,
data loaded, reports, dashboards

124 Copyright © 2020, Oracle and/or its affiliates.


Testing Automation
Oracle Developer Cloud Service

Plan
• Part of CI/CDPipelines Testing
Monitor Code
• Selenium, Junit, Others
• Code Auditing
• SonarQube, findbugs
Operate Build
• QA Deployment
• Security Validation
• NVD review of code
Deploy Test

Release

125 Copyright © 2020, Oracle and/or its affiliates.


Implementation Approach – Cloud Apps & Extensions Development Transition &
Go Live
Transition & Go Live Implementation
Approach – Cloud Apps &
Extensions Development
Major Activities:
• Deploy application package in production Environment Main Artifacts of Development &
Extension Deliverables:
• Deploy Software Environment management
• Application package
• Create packages installation kit
• Manage & Document software releases • Application development
code repository
• Choose repositories and artifacts to be included
• Application deployment
• Perform end-user functionality and performance tests architecture diagram
• Manage change requests and rework orders • Support and Issue
Management process
• Obtain end-user final acceptance
• Deployment documentation
• Deploy in final production/HA/DR environments and and training materials for
achieve Go Live status application package and
supporting cloud services

126 Copyright © 2020, Oracle and/or its affiliates.


Deployment Automation
Oracle Developer Cloud Services

Plan
• Easily provision deployment platforms as part of
Monitor Code Ci/CD pipeline
• Terraform & Packer Docker & Kubernetes
• Leverage in built Docker commands
• Publish to any registry and Enable other
builds
Operate Build
• Automate IaaS tasks
• Orchestrate OCI and OCI classic as part of the
build pipeline
• Leverage Terraform build VM image
Deploy Test • Configure Services (OCIcli, PSM)

Release

127 Copyright © 2020, Oracle and/or its affiliates.


Sustain &
Implementation Approach – Cloud Apps & Extensions Development Realize
Sustain & Realize Phase Implementation
Approach – Cloud Apps &
Extensions Development

Major Activities:
Main Artifacts of Development &
• Transfer to end-user the knowledge base and perform Extension Deliverables:
application trainings • Final test results
• Save end-user functionality and performance tests • Support and Issue
• Implement & Run Support and Issue management activities Management process
• Maintain application cloud environment in a hosted/delivered • Deployment documentation
distribution model and training materials for
• Scale up and down the pipeline application package and
• Modify & deploy configuration scripts (YAML) supporting cloud services
• Monitor Kubernetes pods
• Stop and Start OCI infra & Kubernetes (OKE)
• Monitor Dashboards & Metrics

128 Copyright © 2020, Oracle and/or its affiliates.


Operating the Cloud
Oracle Cloud Services

Plan

Monitor Code
• Automatic Scaling
• Easy Patching/Upgrade
• Live Reporting
Operate Build

Deploy Test

Release

129 Copyright © 2020, Oracle and/or its affiliates.


Oracle Management Cloud

Plan
Intelligent management for heterogeneous environments
Monitor Code Unified cross-stack operational data
01100100 01100001 01110100 01100001 01100100011
01100100 01100001 01110100 01100001 01100
END USER
EXPERIENCE 110000101100100 01100001 01110100 1100001011001
Real Users
0110010001100001 01110100 110000101100100
Synthetic Users
APPLICATION
110000101100100 01100001 01110100 01100001 0110
Operate Build 01100001
App metrics
0110010001100001 01110100 01001 011000
01100001
Transactions 0110010001100001 01001 01110100 011000
MIDDLE TIER 01100001 0100101001 001 0110010001100001 011101
Server metrics
01110100 010011 01100001 0110010001100001 011101
Diagnostics
01001
Logs 01110100 01100001 0110010001100001 01110100
DATA TIER 01110100 01100001 0110010001100001 01110100 0
Host metrics
01100001
VM metrics 01110100 110000101100100 01100001 01110
Deploy Test VIRTUALIZATION Container metrics
01110100 110000101100100 01100001 010001 01110
VM CONTAINER
TIER VM CONTAINER 01110100 01100001 01000100 010011 01100100
CMDB
Release INFRASTRUCTURE
0110010001100001
Tickets
Alerts
01110100 01000 01110100 11000
Unified Platform
01100001 01000100 010011 0110010001100001 01110
TIER
01110100 010011

130 Copyright © 2020, Oracle and/or its affiliates.


Powered by Machine Learning
01100100 01100001 01110100 01100001 0110010001100001 01110100 0100 01100001
END USER
01100100 01100001 01110100 01100001 0110010001100001 01011 01110100
EXPERIENCE 110000101100100 01100001 01110100 110000101100100 01100001 01110100 01100001
Real Users
0110010001100001 01110100 110000101100100 0100111 01100001 01110100
Synthetic Users ANOMALY DETECTION
APPLICATION
110000101100100 01100001 01110100 01100001 011010 0110010001100001 01110100
01100001
App metrics0110010001100001 01110100 01001 01100001 0110010001100001 01110100
01100001
Transactions0110010001100001 01001 01110100 01100001 0110010001100001 01110100
MIDDLE TIER 01100001 0100101001 001 0110010001100001 01110100 01100001 CLUSTERING
0110010001100001
Server
01110100metrics
010011 01100001 0110010001100001 01110100 01100001 01100100 01100001
Diagnostics
01001
Logs 01110100 01100001 0110010001100001 01110100 01100001 01100100 0100
DATA TIER
01100001 01110100 01100001 0110010001100001 01110100 01000100 0100
PREDICTION
Host metrics
110000101100100
VM metrics 01100001 01110100 110000101100100 01100001 01110100 01100001
VIRTUALIZATION VM CONTAINE
R
0110010001100001
Container metrics 01110100 110000101100100 01100001 010001 01110100
TIER VM CONTAINE
110000101100100
CMDB 01100001 01110100 01100001 01000100 010011 0110010001100001
Unified CORRELATION
R

01110100
Tickets 01100001 0110010001100001
Platform 01110100 01000 01110100 110000101100100
Alerts
INFRASTRUCTURE
TIER
01100001 01110100 01100001 01000100 010011 0110010001100001 01110100 01100001
0110010001100001 01110100 010011

131 Copyright © 2020, Oracle and/or its affiliates.


Oracle Development Environment
Example of cloud services used in application development process

132 Copyright © 2020, Oracle and/or its affiliates.


Reference and Links
Main page: Oracle Application Development

Cloud Native Services websites: Digital Assistant enablement material


• Oracle Cloud Native Services • Platform Enablement
• Oracle Container Engine for Kubernetes (OKE) • Compose Digital Assistant for Oracle Applications with
SaaS skills
• Oracle Container Registry (OCIR)
• Getting hands on with Oracle Digital Assistant
• Oracle Container Pipelines
Conversation Designer
• Fn Project
• From Zero to Chatbot and Digital Assistant in Under Two
• Containers on developer.oracle.com Hours
VBCS • Digital Assistant PM Site
• The Cloud Native Approach to Extending your SaaS Functions:
Applications
• What you should know when extending SaaS with VBCS - • FN Project
Introduction • FN Project Documentation
• Oracle Visual Builder Cloud Service Blog • What is Kubernetes?
• Secure storage of confidential configuration data in
Oracle Functions using Oracle OCI KMS • Kubernetes Documentation
• Introduction to HELM

133 Copyright © 2020, Oracle and/or its affiliates.


Conclusion
Cloud Applications & Extensions Development in DevOps

Now that you have completed this module, you should be able to :
• Describe the evolution of the Applications development in Cloud
• Select & decide the appropriate cloud development frameworks for project in scope
• Understand the key concepts of Cloud Native Development & Use cases
• Explain the core concepts and deployment of serverless Functions
• Understand the Low code development difference from traditional coding
• Explain the usage and difference of Visual Builder and APEX
• Elaborate on the monolithic development approach using Java
• Plan deployment of Mobile HUB & Digital Assistant services
• Depict the key considerations of deploying Blockchain services
• Understand the core concepts and tools of Oracle Developer Cloud Services - ODCS
• Depicts the steps of developing new cloud applications leveraging ODCS
• Monitor and manage the development lifecycle in a CI/CD model (Agile / Scrum)

134 Copyright © 2020, Oracle and/or its affiliates.


Thank you!

Oracle Cloud Project Management Training


Oracle Partner Network

135 Copyright © 2020, Oracle and/or its affiliates.

You might also like