62
Microservices + DevOps + Oracle Cloud = A Bright Future Sai Janakiram Penumuru Chief Technologist, Oracle ACE Director

Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Embed Size (px)

Citation preview

Page 1: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Microservices + DevOps + Oracle Cloud = A Bright Future

Sai Janakiram PenumuruChief Technologist, Oracle ACE Director

Page 2: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Introduction

Sai Janakiram Penumuruo Chief Technologist – Apps Transformations - DXC Technologyo Co-Fonder, Vice President - All India Oracle Users Group (AIOUG)o Oracle ACE Director, Oracle Developer Championo Oracle VM SIG Leader www.oracl evmsig.orgo Blog: www.oadba.com; www.oracle12c.infoo Contacts – [email protected] ; twitter - @sai_penumuru

Page 3: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

AgendaFor 45 Minutes

–Microservices

–DevOps

–Oracle Cloud

Page 4: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Microservices

Page 5: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

What is Microservices

5

• The first one, Microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs.

• The second one describes Microservices Architecture as a style of architecture that promotes business alignment by developing applications as set of small independent and self-contained services that directly caters to an atomic business activity.

Martin Fowler: Microservices

Page 6: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Same Concept, Different DecadeMicroservices are Analogous to Unix Utilities

6

Page 7: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Monolithic versus Microservices

7

A monolithic application puts all its functionality into a single module

… and scales by replicating the module on multiple servers

A microservices architecture puts each element of business functionality into a separate service

… and scales by distributing these services, in parallel, across servers, replicating as needed.

Page 8: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

8

• Single, Monolithic App• Must Deploy Entire App• One Database for Entire App• Organized around Technology Layers• One Technology Stack for Entire App

• Many, smaller minimal function Microservices• Can deploy Each Microservices independently• Each Microservices often has its own Data store• Organized around Business capabilities• Choice of Technology for each Microservices

Page 9: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Fundamentally

9

Page 10: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Microservices Apps Are Developed/Deployed Independently

10

Page 11: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Conway's Law in Action

11

Any piece of software reflects the organizational structure that produce it

Page 12: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

12

Successful Teams Structure their teams around ProductsBuild Small vertical teams

Page 13: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

What is the right levelLet’s make breakfast - objective of the use of Microservices is to increase re-use

13

Make Breakfast

Prepare Ingredients

Cook Ingredients Serve Ingredients

Cook Bacon Cook eggs Toast Bread Fry Potatoes

Heat PanPour

MixtureStir Mixture Add Pepper

Remove Eggs

INPUTS: eggs, milk, bread, butter, bacon, plates, utensils, cookware, potatoes

OUTPUTS: scrambled eggs, toast, crisp bacon, pan-fried potatoes

3

12

60

1

No Services

The right level of decomposition is Business and Organization dependent. What that entity executes as an atomic business function.

Page 14: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Characteristics of MicroservicesOrganized around business capabilities

14

Traditional Approach Microservices Approach

Presentation Layer

Application Layer

Database Layer

Services are organized around business capabilities, including user interface, persistent storage and external collaboration

Siloed functional Teams Cross-functional Teams

Page 15: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Traditional TransactionLet’s go to the pub

15

Tab

Open Close

A session remains open during your presence at the pub.

Page 16: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Transaction less coordination between servicesThe Starbucks model

16

JohnJimRoseEric

Short Real-time Transaction Message Queue Second, asynchronous Transaction

If something goes wrong compensating operations are used to address the issue. Failure does not result in loss of state as Microservices are stateless.

Failure is imminent, graceful recovery is paramount.

By making the link between Microservices asynchronous, having one service going down does not affect the operation of the other. Synchronous calls are considered harmful. If one service no longer respond, the other keeps hanging for a response and becomes unavailable.

Page 17: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Characteristics of MicroservicesDesign for Failure

17

Traditional Approach Microservices Approach

500 Internal Server Error

Unfortunately the XYZ service is currently down,

we apologize for the inconvenience. However

our remaining services are operating normally.

1. Service down, recognize the failure, spin up a new parallel instance or do graceful degradation.

2. If the service is slow, timeout, either act (spawn a new parallel instance to compensate for extra workload) or report to the user the unavailability and potentially allow him to retry.

3. Service responds with unexpected content, is your service capable of recognizing and handling this? Microservices must have a stable and published contract.

4. When-ever possible, use caching mechanisms so the service can still respond if the back-end is down.

Graceful recovery and process resilience are mandatory in the architecture and design of Microservices based solutions.

Page 18: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

What is required for Microservices?

19

Rapid ProvisioningMonitoringRapid Application DeploymentDevOps Culture

Page 19: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

DevOps

Page 20: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

DevOps seeks to solve thisFamiliar?

22

Page 21: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Code is written… it’s your problem nowDev and Ops Constantly Argue

23

Page 22: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Business + Dev + Ops + Test

TestDev

Shift in priorities is demanding DevOps

24

Wat

erfa

llA

gile

Dev

Op

s

Dev Test OpsBusinessRequiremen

ts

Design, Build and Unit Test

Quality Assurance

Staging and Production

Business

Design, Build and Unit Test

Quality Assurance

0 1 2 3 4 5 6 7 Iterations

OpsStaging and Production

One product team!- Shared objectives, Shared customer-oriented goals, Shared accountability

Page 23: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Building a continuous application development supply chainCreate “BizDevOps”

BizAgile

development fixes this

DevOps fixes this

OpsDev

Per “What is Devops” by dev2ops.org

Page 24: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

DEV OPS

It worked fine in dev… it’s ops’ problem now

$^(#)*&%$^*

!Culture Clash

Page 25: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Siloed Teams, Lack of end to end visibility

Error prone manual hand-offs and processes

Manual and error prone app deployments

Long waiting time to setup and test environments

Today’s application delivery is full of obstacles and challenges

Lack of effective customer insight and high latency drives “kitchen

sink” requirementsRapidly increasing

WIP

Poor confidence in test data

fosters “release aversion” driving

more WIP

Isolated build and integration

processes

Manual Testing

increases latency or

drives limited

test coverage

“patch in production”

leads to snowflake

systems

InfoSec & compliance

engaged late driving

vulnerabilities & re-work

High # defects

One way flow

App Testing

Internal Customers

External customers

PlanningApp

DevelopmentApp release Deployed App

Business Demand

Release decision

The Market

$

Revenue$

Costs

Poor user

experience

27

Page 26: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

– Technology Stack - Tools

Page 27: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

32

Page 28: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Change in Culture

33

Tra

dit

ion

al I

T

Dev

elo

pm

ent

Lif

e C

ycle

Agi

le/D

evO

ps

Dev

elo

pm

ent

Lif

e C

ycle

Directive

Long and rigid planning process related to current and historical needs

Task Focused

Step-by-step delivery in a waterfall or production line approach

Dedicated Roles

Departmentalized roles working in silos and throwing jobs over the wall

Resistance to Change

Changes are problematic as they need re-defining, re-scheduling and re-working, leading to delays and increased costs

Manual

Slow and costly manual deployments and implementations

Project Focused

Working in silos leads to a narrow view aligned with limited or initial requirements

Define

Build

Test

Release

Run

Adaptive

React and responds to changing needs constantly

Goal Focused

A business oriented approach and attitude which sees “the bigger picture”

Teamwork

Collaborative and integrated methods to empower teams across the business and the client

Responsive to Change

Agile methods quickly identify areas for change or improvements

Automated

Automated deployment tools and virtualized environments to accelerate releases

Business Focused

Working in teams leads to a holistic view in line with todays business needs

ReleaseRun Release Release Release Release

Define Build Test Define Build Test Define Build Test Define Build Test Define Build Test

Run RunRun Run

Page 29: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Why Do DevOps?

– enabling faster feature time to market

– increased customer satisfaction & market share

– employee productivity and happiness

– organizations to win in the marketplace

34

In contrast, organizations that require weeks or months to deploy software are at a significant disadvantage in the marketplace.

Page 30: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

PaaS/IaaS Now Allows Resources to be Easily Provisioned

35

Page 31: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Cultural movement enabled by technologyDevOps Principles

36

Page 32: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Principles have been around for decadesCharacteristics of DevOps Movement

37

Page 33: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Culture is what’s behind DevOps; Technology is the enablerDevOps = Culture + Technology Movement

38

Page 34: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

DevOps Tenet #1: Culture

39

Page 35: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Build Respect

40

Page 36: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Discuss

41

Page 37: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Avoid Blaming

42

Page 38: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Trust is the #1 ingredient to a successful DevOps cultureActively Build Trust

43

Page 39: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

DevOps Tenet #2: Technology

44

Page 40: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Manage it as you would any other source codeInfrastructure as Code

45

Page 41: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Surprisingly not well adoptedShared Version Control

46

Page 42: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Set it and forget itOne Step Build/Deploy

47

Page 43: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Automated Testing using Robot

48

Page 44: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Core Tools required

49

Page 45: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Analyze your portfolioWhere to use DevOps

50

Page 46: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Oracle Cloud

Page 47: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Oracle can help you Lead change in your Organization

53

Page 48: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Oracle Products support DevOps

54

Page 49: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Oracle Developer Cloud Service – What’s In It

55

Page 50: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Oracle Developer Cloud ServiceDevelopment Experience

56

• Effortless Project Management • Teamwork Through Integrated Tools • What You Need, Before You Need It• From Just an Idea, to Product Release

Page 51: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Project Management

57

• Team members• Activity stream• Usage tracking• Repositories• Custom attributes

Page 52: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Requirements/Issue Tracking

58

• Create Requirements/Bugs/ERs • Assign to team members and sprints • Custom attributes

Page 53: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Agile Process Management

59

• Create dashboard • Manage issues backlog • Manage development sprints • View team/tasks status • Reports

Page 54: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Source Code Management

60

• Git repositories• Branch, tag, merge• Web interface• View changes online• Accessible from any Git client• External repositories integration

(for example GitHub)• Snippets – for reusable code

Page 55: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Code Reviews

61

• Request code review• Invite team members• Comment on Code• Accept / Reject / Iterate Reviews• Merge Code• Merge Conflict Resolution

Page 56: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Project Builds

62

•Maven•Ant•Gradle•Node.JS – npm, grunt, bower, gulp•Dashboard•Logs and Audit

Page 57: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Deployment Automation

63

•Create deployment configurations•Start/Stop a deployment•Redeploy/Un-deploy applications•In the cloud or on premise deployment

Page 58: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Continuous Integration

64

•Hudson•Automate–Triggers–Schedule•Dashboard

Page 59: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Wikis

65

• Share information• Attachment support• Wiki markup of choice

Page 60: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Iterative Planning, Development and ReleaseMerger of disciplines

66

Page 61: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Q & A

Page 62: Microservices + DevOps + Oracle Cloud = A Bright Future · What is Microservices 5 • The first one, Microservices is a software architecture style in which complex applications

Thank youSai Penumuru

Contacts – [email protected] ; twitter - @sai_penumuru