path to cloud-native app dev - eclipsecon europe 2019 · path to cloud-native app dev 8 steps to...
TRANSCRIPT
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
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)
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
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
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
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
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
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
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
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 APPLICATIONSFast 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● 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
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
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
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.
16
DEMO - RIGHT TOOL FOR RIGHT TASK
COOLSTORE SERVICES
CHAINING OF SERVICE
inventory
Inventorymicroservice
Inventorydatabase
gateway
catalog
Catalogmicroservice
Catalogdatabase
App
web
Web
Browser
1
1 8
19
5: SELF-SERVICE ON-DEMAND INFRATo 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 DELIVERYIntegrated full-scale enterprise-wide automation
POLICIES AND PROCESSES
For metering, monitoring, and chargeback
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
22
Rolling upgrades Blue/Green deployment
A/B testingCanary releases
7: IMPLEMENT CI/CD & ADV DEPLOY TECHAdvanced deployment techniques
23
MICROSERVICES MONOLITHFIRST MINISERVICES
8: EVOLVE A MORE MODULAR ARCHMicroservices Architecture and its alternatives
24
CUSTOMER SUCCESSES
25
ACCELERATE APPLICATION DELIVERYContainers, container orchestration, DevOps, CI/CD, automation
Reduction in deployment time:
12 to 1 weeks
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
27
THANK YOUplus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat