PATH TO CLOUD-NATIVE APP DEV
8 steps to cloud-native app dev
Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager Product Marketing Manager tqvarnst@redhat.com csaavedr@redhat.com
@tqvarnst @cesar_saavedr
June 2018
PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas - - PowerPoint PPT Presentation
PATH TO CLOUD-NATIVE APP DEV 8 steps to cloud-native app dev Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager Product Marketing Manager tqvarnst@redhat.com csaavedr@redhat.com @ tqvarnst @cesar_saavedr June 2018 EVOLUTION OF
PATH TO CLOUD-NATIVE APP DEV
8 steps to cloud-native app dev
Thomas Qvarnstrom Cesar Saavedra Technical Marketing Manager Product Marketing Manager tqvarnst@redhat.com csaavedr@redhat.com
@tqvarnst @cesar_saavedr
June 2018
2
VANs (EDI)
‘70’S ‘80
EVOLUTION OF CLOUD APPS/SVCS/FMWKS
Off-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)
3
IT needs to adapt
Existing IT processes New IT agility processes
EXISTING AND NEW APPS MUST CO-EXIST
The Digital Economy has brought new demands
4
DIGITAL LEADER PAYOFF
Digital leaders enjoy significant advantage
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
5
development of a cloud-native application
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
the whole is greater than the assembled parts"
https://en.wikipedia.org/wiki/Yin_and_yang
WHAT IS CLOUD-NATIVE APP DEVELOPMENT
A modern approach to building and running applications
Service-based Containers DevOps API-driven
Architecture Communication Infrastructure Process Delivery/deployment concerns Development concerns
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-based API-based communication INFRASTRUCTURE Server-centric Designed for on-premise Infrastructure-dependent Scales vertically Pre-provisioned for peak capacity Container-centric Designed for on-premise & cloud Portable across infrastructure Scales horizontally On-demand capacity
7
TRADITIONAL VS. CLOUD-NATIVE APP DEV
PATH TO CLOUD-NATIVE APP DEV: 8 STEPS
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
However, most currently use DevOps for only 10-40% of apps (20% typical)
To take advantage of new tech, faster approaches and tighter collaboration
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
11
2: SPEED UP EXISTING APPLICATIONS
Fast monoliths - migrate app server to container-based platform JAVA EE
EXISTING APPLICATION LOGIC
CONTAINER-BASED PLATFORM JBOSS EAP
EXISTING APPLICATION LOGIC
12
2: SPEED UP EXISTING APPLICATIONS
JBoss EAP
HTML Javascript Web Cart Catalog Inventory Promo Ratings Orders Data Access
OPENSHIFT | RHOAR WildFly Swarm
Inventory Data Access
Spring Boot
Inventory Data Access
Ideally use 3scale and/or Fuse
13
2: SPEED UP EXISTING APPLICATIONS
Retire 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
WildFly Swarm
Promo
JBoss EAP
Web
JBoss EAP
Order Data Store
14
3: USE APPLICATION SERVICES
To 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 Services Serverless
15
4: CHOOSE RIGHT TOOL FOR RIGHT TASK
Multiple 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
technologies for microservices.”
Red Hat 2017 Microservices Survey. Conducted by TechValidate, Nov. 2017.
16
DEMO - RIGHT TOOL FOR RIGHT TASK
COOLSTORE SERVICES
CHAINING OF SERVICE
inventory
Inventory microservice
Inventory database
gateway catalog
Catalog microservice
Catalog database
App
web
Web Browser
1 1 8
19
5: SELF-SERVICE ON-DEMAND INFRA
To allow developers to access infra when they need it with IT Ops control & visibility
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 DELIVERY
Integrated full-scale enterprise-wide automation POLICIES AND PROCESSES
For metering, monitoring, and chargeback
21
7: IMPLEMENT CI/CD & ADV DEPLOY TECH
CI/CD deployment pipelines - to provide updates w/o operational capacity & reduced risk
Source Repository CI/CD Engine Dev Container
Physical Virtual Private cloud Public cloud
22
Rolling upgrades Blue/Green deployment A/B testing Canary releases
7: IMPLEMENT CI/CD & ADV DEPLOY TECH
Advanced deployment techniques
23
MICROSERVICES MONOLITHFIRST MINISERVICES
8: EVOLVE A MORE MODULAR ARCH
Microservices Architecture and its alternatives
24
CUSTOMER SUCCESSES
25
ACCELERATE APPLICATION DELIVERY
Containers, container orchestration, DevOps, CI/CD, automation
Reduction in deployment time: 12 to 1 weeks
26
MODERNIZE EXISTING APPS
Migrate, 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
27
plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat