PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to...

28
PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager Product Marketing Manager [email protected] [email protected] @tqvarnst @cesar_saavedr June 2018

Transcript of PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to...

Page 1: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

PATH TO CLOUD-NATIVE APP DEV

8 steps to cloud-native app dev

Thomas Qvarnstrom Cesar SaavedraTechnical Marketing Manager Product Marketing [email protected] [email protected]@tqvarnst @cesar_saavedr

June 2018

Page 2: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

2

VANs (EDI)

‘70’S ‘80

EVOLUTION OF CLOUD APPS/SVCS/FMWKSOff-premise services and applications have been around in different forms

‘90’S ‘10’S

Manifesto for Agile Software

Dev (2001)

‘00

Colocation popularized

(1990’s)

Containers popularized

(2018)

AWS EC2 (2006)

Compaq coins

“Cloud computing”

(1996)

DropWizard (2011)

Salesforce SaaS

launched (1999)

Heroku Twelve-factor app manifesto

(2011)

Microservices Assess

Thoughtworks (2012)

Spring Boot v1.0 GA (2014)

Netflix streaming

(2007) Netflix coins “cloud-native”

(2010)Microservices defined Fowler

(2014)RosettaNet

(1998)

Uber founded (2009)

iPhone introduced

(2007)

Docker (2013)

Kubernetes (2014)

Java EE 6 (2009)

Amazon founded (1994)

Page 3: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

3

IT needs to adapt

Existing IT processes New IT agility processes

EXISTING AND NEW APPS MUST CO-EXISTThe Digital Economy has brought new demands

Page 4: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

4

DIGITAL LEADER PAYOFFDigital leaders enjoy significant advantage

26% 12% 9%

Higher market valuation

More revenue with existing capacity

and products

More profitable than their average industry

competitors

Capgemini and MIT Center Research: The Digital Advantage - How Digital Leaders Outperform their Peers in Every Industry

Page 5: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

5

● Application services speed up the development of a cloud-native application

● Infrastructure services speed up the delivery/deployment of a cloud-native application

SPEEDING UP DEVELOPMENT & DELIVERY

Application Services

Infrastructure Services

"Yin and yang can be thought of as complementary (rather than opposing) forces that interact to form a dynamic system in which the whole is greater than the assembled parts"https://en.wikipedia.org/wiki/Yin_and_yang

Page 6: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

WHAT IS CLOUD-NATIVE APP DEVELOPMENTA modern approach to building and running applications

Service-based Containers DevOpsAPI-driven

Architecture Communication Infrastructure Process

Delivery/deployment concerns

Development concerns

Page 7: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

TRADITIONAL CLOUD-NATIVE

FOCUS Longevity and stability Speed to market

DEV METHODOLOGY Waterfall, semi-agile development Agile development, DevOps

TEAMS Isolated dev, operations, QA, and security teams Collaborative DevOps teams

DELIVERY CYCLE Long Short and continuous

APPLICATION ARCHITECTURE

Tightly-coupled Monolithic

Loosely coupled Service-basedAPI-based communication

INFRASTRUCTURE Server-centric Designed for on-premiseInfrastructure-dependentScales vertically Pre-provisioned for peak capacity

Container-centricDesigned for on-premise & cloudPortable across infrastructureScales horizontallyOn-demand capacity

7

TRADITIONAL VS. CLOUD-NATIVE APP DEV

Page 8: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

PATH TO CLOUD-NATIVE APP DEV:8 STEPS

Page 9: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

9

More than half (51%) of large organizations have already adopted DevOps

IDC PaaS View for the Developer Survey, November 2017

1: EVOLVE A DEVOPS CULTURE & PRACTICES

51%However, most currently use DevOps for only 10-40% of apps (20% typical)20%

To take advantage of new tech, faster approaches and tighter collaboration

Page 10: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

10

DEVOPS CULTURE BRINGS ABOUT

INTEGRATED & COLLABORATIVE

APPROACH

ENCOURAGES EXPERIMENTATION

FAST FAILURE TRANSPARENT DECISION-MAKING

BOOST TRUST AND COOPERATION

CATALYZES INNOVATION

TEAMS RAPIDLY BUILD

PROTOTYPES

ADOPT AGILE WORKFLOWS

The culture of open source software projects - a good guide to building DevOps culture

Page 11: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

11

2: SPEED UP EXISTING APPLICATIONSFast monoliths - migrate app server to container-based platform

JAVA EE

EXISTING APPLICATION LOGIC

CONTAINER-BASED PLATFORM

JBOSS EAP

EXISTING APPLICATION LOGIC

Page 12: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

12

2: SPEED UP EXISTING APPLICATIONS● Expose old components using API’s● Strangulation pattern: replace an existing app piece by piece instead of rewriting the whole● Add new services● Using a router (OpenShift|3scale|Istio) we can send incoming traffic to new services

JBoss EAP

HTML Javascript

Web CartCatalogInventoryPromo RatingsOrders

Data Access

OPENSHIFT | RHOAR

WildFly Swarm

Inventory

Data Access

Spring Boot

Inventory

Data Access

Ideally use 3scale and/or Fuse

Page 13: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

13

2: SPEED UP EXISTING APPLICATIONSRetire your monolith as microservices take over

HTML Javascript

OPENSHIFT | RHOAR

Spring Boot

Catalog

Data Access

WildFly Swarm

Inventory

Data Store

Spring Boot

Cart

Data Grid

Vert.x

Ratings

Data Grid

WildFlySwarm

Promo

JBoss EAP

Web

JBoss EAP

Order

Data Store

Page 14: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

14

3: USE APPLICATION SERVICESTo speed up development - application services optimized for cloud and containers

package com.example.demo.rest;

import javax.enterprise.context.ApplicationScoped;import javax.ws.rs.Path;import javax.ws.rs.core.Response;import javax.ws.rs.GET;import javax.ws.rs.Produces;

@ApplicationScoped@Path("/hello")public class HelloWorldEndpoint {

@GET@Produces("text/plain")public Response doGet() { return Response.ok(

"Hello from MicroProfile!").build();}

}

IMDG

Messaging

API Mgmt

Data Virtualization

BRMS BPM

Integration Connectors

Mobile ServicesServerless

Page 15: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

15

4: CHOOSE RIGHT TOOL FOR RIGHT TASKMultiple runtimes and frameworks

“Most applications today are being constructed by teams of developers employing multiple languages.”

Jakarta EE Developer Survey - April 2018

“87% of respondents are using or considering multiple technologies for microservices.”

Red Hat 2017 Microservices Survey.Conducted by TechValidate, Nov. 2017.

Page 16: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

16

DEMO - RIGHT TOOL FOR RIGHT TASK

Page 17: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

COOLSTORE SERVICES

Page 18: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

CHAINING OF SERVICE

inventory

Inventorymicroservice

Inventorydatabase

gateway

catalog

Catalogmicroservice

Catalogdatabase

App

web

Web

Browser

1

1 8

Page 19: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

19

5: SELF-SERVICE ON-DEMAND INFRATo allow developers to access infra when they need it with IT Ops control & visibility

Page 20: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

20

AUTOMATION SANDBOXES

For learning the automation language and process

COLLABORATIVE DIALOG

Across organizations for defining service requirements

SELF-SERVICE CATALOGS

That empower users and speed delivery

6: AUTOMATE IT TO ACCELERATE DELIVERYIntegrated full-scale enterprise-wide automation

POLICIES AND PROCESSES

For metering, monitoring, and chargeback

Page 21: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

21

7: IMPLEMENT CI/CD & ADV DEPLOY TECHCI/CD deployment pipelines - to provide updates w/o operational capacity & reduced risk

SourceRepository

CI/CDEngine

Dev Container

Physical

Virtual

Private cloud

Public cloud

Page 22: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

22

Rolling upgrades Blue/Green deployment

A/B testingCanary releases

7: IMPLEMENT CI/CD & ADV DEPLOY TECHAdvanced deployment techniques

Page 23: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

23

MICROSERVICES MONOLITHFIRST MINISERVICES

8: EVOLVE A MORE MODULAR ARCHMicroservices Architecture and its alternatives

Page 24: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

24

CUSTOMER SUCCESSES

Page 25: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

25

ACCELERATE APPLICATION DELIVERYContainers, container orchestration, DevOps, CI/CD, automation

Reduction in deployment time:

12 to 1 weeks

Page 26: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

26

MODERNIZE EXISTING APPSMigrate, evolve solutions - app svcs integrated & optimized to underlying container platform

60x faster application restart speeds

DECREASED platform support costs and time, freeing resources

for innovative service development

Page 27: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

27

Page 28: PATH TO CLOUD-NATIVE APP DEV - EclipseCon Europe 2019 · PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat