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 CLOUD APPS/SVCS/FMWKS Off-premise services and applications have been around in different forms Microservices Salesforce Assess Containers Colocation Netflix SaaS popularized Thoughtworks popularized streaming launched (2012) (2018) VANs (EDI) (1990’s) (2007) (1999) Netflix coins Microservices “cloud-native” RosettaNet AWS EC2 defined Fowler (2010) Java EE 6 (1998) (2006) (2014) (2009) ‘70’S ‘80 ‘90’S ‘00 ‘10’S Amazon Uber Spring Boot founded founded v1.0 GA DropWizard (1994) (2009) (2014) (2011) Docker Compaq Manifesto Heroku (2013) iPhone coins for Agile Twelve-factor introduced Kubernetes “Cloud Software app manifesto (2007) (2014) computing” Dev (2001) (2011) (1996) 2
EXISTING AND NEW APPS MUST CO-EXIST The Digital Economy has brought new demands Existing IT processes New IT agility processes IT needs to adapt 3
DIGITAL LEADER PAYOFF Digital leaders enjoy significant advantage 26% 12% 9% More profitable than their Higher market More revenue with average industry valuation existing capacity competitors and products 4 Capgemini and MIT Center Research: The Digital Advantage - How Digital Leaders Outperform their Peers in Every Industry
SPEEDING UP DEVELOPMENT & DELIVERY Application Application services speed up the Services ● development of a cloud-native application Infrastructure services speed up the ● delivery/deployment of a cloud-native application 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 5
WHAT IS CLOUD-NATIVE APP DEVELOPMENT A modern approach to building and running applications Development concerns Architecture Communication Infrastructure Process Service-based API-driven Containers DevOps Delivery/deployment concerns
TRADITIONAL VS. CLOUD-NATIVE APP DEV 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 Tightly-coupled Loosely coupled ARCHITECTURE Monolithic Service-based API-based communication INFRASTRUCTURE Server-centric Container-centric Designed for on-premise Designed for on-premise & cloud Infrastructure-dependent Portable across infrastructure Scales vertically Scales horizontally Pre-provisioned for peak capacity On-demand capacity 7
PATH TO CLOUD-NATIVE APP DEV: 8 STEPS
1: EVOLVE A DEVOPS CULTURE & PRACTICES To take advantage of new tech, faster approaches and tighter collaboration 51% More than half (51%) of large organizations have already adopted DevOps 20% However, most currently use DevOps for only 10-40% of apps (20% typical) IDC PaaS View for the Developer Survey, November 2017 9
DEVOPS CULTURE BRINGS ABOUT The culture of open source software projects - a good guide to building DevOps culture INTEGRATED & ENCOURAGES FAST FAILURE TRANSPARENT COLLABORATIVE EXPERIMENTATION DECISION-MAKING APPROACH BOOST TRUST AND CATALYZES TEAMS RAPIDLY ADOPT AGILE COOPERATION INNOVATION BUILD WORKFLOWS PROTOTYPES 10
2: SPEED UP EXISTING APPLICATIONS Fast monoliths - migrate app server to container-based platform EXISTING APPLICATION LOGIC EXISTING APPLICATION LOGIC JBOSS EAP JAVA EE CONTAINER-BASED PLATFORM 11
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 Ideally use 3scale and/or Fuse HTML Javascript Web Promo Orders Ratings Inventory Catalog Cart Inventory Inventory Data Access Data Access Data Access WildFly Spring JBoss EAP Swarm Boot 12 OPENSHIFT | RHOAR
2: SPEED UP EXISTING APPLICATIONS Retire your monolith as microservices take over HTML Javascript Order Web Promo Ratings Cart Inventory Catalog Data Store Data Grid Data Grid Data Store Data Access JBoss JBoss WildFly Spring WildFly Spring Vert.x EAP EAP Swarm Boot Swarm Boot OPENSHIFT | RHOAR 13
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; IMDG API Mgmt import javax.ws.rs.Path; import javax.ws.rs.core.Response; import javax.ws.rs.GET; import javax.ws.rs.Produces; @ApplicationScoped Data @Path("/hello") Messaging public class HelloWorldEndpoint { Virtualization @GET @Produces("text/plain") public Response doGet() { return Response.ok( "Hello from MicroProfile!").build(); BRMS } BPM } Integration Mobile Serverless Connectors Services 14
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 or considering multiple technologies for microservices.” Red Hat 2017 Microservices Survey. Conducted by TechValidate, Nov. 2017. 15
DEMO - RIGHT TOOL FOR RIGHT TASK 16
COOLSTORE SERVICES
CHAINING OF SERVICE Browser 1 Web App web gateway 1 8 Catalog Inventory microservice microservice Catalog Inventory database database catalog inventory
5: SELF-SERVICE ON-DEMAND INFRA To allow developers to access infra when they need it with IT Ops control & visibility 19
6: AUTOMATE IT TO ACCELERATE DELIVERY Integrated full-scale enterprise-wide automation AUTOMATION COLLABORATIVE SELF-SERVICE POLICIES AND SANDBOXES DIALOG CATALOGS PROCESSES For learning the automation Across organizations for That empower users and For metering, monitoring, and language and process defining service requirements speed delivery chargeback 20
7: IMPLEMENT CI/CD & ADV DEPLOY TECH CI/CD deployment pipelines - to provide updates w/o operational capacity & reduced risk Physical Virtual Source CI/CD Private cloud Container Dev Repository Engine Public cloud 21
7: IMPLEMENT CI/CD & ADV DEPLOY TECH Advanced deployment techniques Rolling upgrades Blue/Green deployment Canary releases A/B testing 22
8: EVOLVE A MORE MODULAR ARCH Microservices Architecture and its alternatives MICROSERVICES MONOLITHFIRST MINISERVICES 23
CUSTOMER SUCCESSES 24
ACCELERATE APPLICATION DELIVERY Containers, container orchestration, DevOps, CI/CD, automation Reduction in deployment time: 12 to 1 weeks 25
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 26
27
THANK YOU plus.google.com/+RedHat facebook.com/redhatinc linkedin.com/company/red-hat twitter.com/RedHat youtube.com/user/RedHatVideos
Recommend
More recommend