Disruptive Trends in Application Development

57
Creating Apps at the Speed of Business Trends That Are Disrupting App Dev April 29, 2015

Transcript of Disruptive Trends in Application Development

Creating Apps at the

Speed of Business

Trends That Are Disrupting App Dev

April 29, 2015

Presenters

2

Technical Architect

Samir Ghosh

CEO

Anurag Parashar

WaveMaker, Inc.• Headquartered in Mountain View, CA• Enterprise Software Platform for Custom App Delivery

• Scarce, Expensive Resources

• Complex Supply Chains

• Social-media Empowered Customers

• Global Competition

• Demanding Consumerized Employees

• Disruptive Business Models

Enterprises Facing Increasing Challenges

• Governance and Compliance

3

Successful Enterprises

Enable Agility

Democratize Decision Making

Foster Innovation

IBM CIO Study – Successful Companies…

• Build a workplace strategy and roadmap that drives innovation and productivity

• Enable secure anytime, anywhere access instead of restricting usage

4

Apps are Key Enablers

Making informationmore broadly available

Capturing and refining competitive and innovative processes

Gather input and interaction from broader constituents

Improved accessibility = faster decision making

Automation for consistency and speed

Improved customer service

5

But there is a problem…

6

Trend: Build Once UI

7

Build Once UI Design

9

Adaptive Design

Responsive Design

Source: Google Trends

Increasing Diversity and

Importance of Devices

10

Apple Watch – already 3,500 apps! (4/28/15)

Consumerized Demand for

Great Looking Design

11

2009 2015

Challenges

• Responsive vs. Adaptive vs. RESS (Responsive + Server Side)?

– Server side or client side?

– Single URL or different URLs?

• Graphics Design

– Can require significant work & time

– Different skills: good graphics designers are scarce, expensive

12

April 21, 2015

Ideally, build once.

Smart, auto-responsiveness.

13

Decoupled UI Components.

Professional Template starting points.

14

Caution: Avoid lock-in and dead-end functionality.Ensure: Open Standards and Extensibility.

Trend: APIs

Growth of APIs

Source : programmableweb

As of today, the number of registered APIs on ProgrammableWeb has crossed 13000 APIs.

Why is API a trend?

• Increase in consumption of data/functionality from multiple devices.

• Need for easy, usable, secure and loosely standardized contracts

What is API?

• Application Programming Interface

• Way to expose data/functionality

– Operation, Input, Output and Types

• Not new

• SOA with SOAP/WSDL, REST services

Modern APIs need to

• Be usable

• Optimize network traffic.

• Be simple to understand

• Provide finer resource level control.

• Be secure

RESTful APIs meet modern needs

Fine Grained Access

• /v1/customers/[customer-id]

Simple to Understand

• CRUD operations map to HTTP method POST/GET/PUT/DELETE

Usable and Optimized

• JSON Response format is optimized as well as understandable.

Be Secure

• OAuth2.0 for finer grained security

Challenges implementing APIs

• Everything needs a representation / API

– Software services / data

– Things being connected with IoT (Internet of Things)

• Every “Thing” needs a representation / APIs to get connected in the ecosystem of IoT

• API Consumption still requires a lot of technology knowledge / investment.

• API should provide secure access.

API Driven Development

• API can no more be an afterthought

• API should be created/updated for every entity in the application, preferably automatically

API Driven development with easy testing of generated/created APIs.

Simplified API Consumption

Pre-fabricated application components providing the API usage can boost developer productivity tremendously.

Control API Access

API Access Configuration• Not exposed at all• Only for same application• Internally in organization• Public APIs

Trend: Continuous

Delivery

Continuous Delivery trend

Continuous Delivery Agile Application Process having a steady gain and being adopted more and more in past few years.

Continuous Delivery – Why?

• Move from software to SaaS means getting updates released is now only restricted by your own operations.

• More number of releases, ensure truly agile process

• React quickly and respond to change

QA Staging Production

Test Script

Release Script

Create Script

Lots of scripts

Test Script

Release Script

Create Script

Test Script

Release Script

Create Script

• Change in Configuration• Install new software• Add a new Component

Need to repeat the script cycle at all stages.

Even with Configuration Management tools.

Challenges with Continuous Delivery

Docker to Rescue - Portable Containers

Build QA Staging Production

Run Anywhere

Minimum ConfigurationContinuous Delivery

Developers / Operations want Continuous Delivery for consistent and quick turnaround.change to have consistnetdiagram

What is Docker?

Build, Ship, and Run Any App, Anywhere

VM Container

Each application in a VM consist of Guest OS, making a few MB application 10s of GB application.

Isolated process in same Host OS, lightweight and hence much more portable and efficient.

How is it different from VM?

• Lots of technologies to assemble

• Moving workloads to Docker

• Managing software stacks & configurations

• Automating deployment processes

• Migration of Data

• Orchestration of containers including– Scheduling and placement of containers

– Cluster Management

– Inter-container Communications

– Network configuration

– Discovery of services

Challenges of Implementing Docker

Enterprise IT also needs

• Role Based Access Control

• Snapshots, backup and recovery of data

• Monitoring of infrastructure, containers and workloads

• Easy and fine grained upgrades

• Optimized Resource Utilization

• Fault Tolerant Application

• Scalability as needed

• Uncompromised Security

Docker Accelerator

• Simplify implementation

• Meet enterprise IT’s unique needs

• Maximize the value of Docker

Dockerize Workload: Docker Images

Upload required files

Provide Commands to

1. Install Software2. One time

Configuration on launch of software

3. Startup scripts

Configurations required

1. Ports to be opened2. Environment

properties required /exposed

Application Stack

MonitoringDB

A P PS T A C K

Designs “App Stack”

comprising of multiple services

A r c h i t e c t

D e v O p s

Configures “App Stack” by

configuring one or more services.

Easily configures connections

amongst services by specifying environment variables, ports etc..

C o n f i g u r e d S e r v i c e s

1. Functional decomposition –Easier operations, upgrades and separation of stack

2. Horizontal Scaling – scale individual services by adding more capacity and without re-architecting

3. Isolation & data partitioning –fault isolation and partition data based on tenant

Micro Services architecture -Application is composed of multiple smaller micro services.

Web Server

New way of Continuous Delivery

QA Staging Production

Test Script

Release Script

Create Script

• Same Aplication Stack Deployed on all environments

• Provide Configuration Variables for each environment

A P PS T A C K

A P PS T A C K

A P PS T A C K

An Application Stack being a set of images working together to provide services.

New way of Continuous Delivery

Launching an existing Application Stack on a new Environment is a one click operation.

Environment Properties can be easily specified for each environment.

Resource utilization

App A

App B

Passivate an active container to free resources for another service

Activate requested service by provisioning a new container

Activation and Passivation of Containers enable effective resource utilization across the enterprise 80%

Optimized Resource Usage… using container hibernation

Active and hibernated containers with monitoring statistics

Trend: Microservices

Microservices

Source: Google Trends

Steep rise in recognition of MicroserviceArchitecture from 2014

Microservices further boosted by

• Availability of APIs for communications enables loosely coupled components

• Continuous Delivery enables better release management of multiple services / applications

Monolithic Traditional Architecture

Source: microservices.io

Source

Shortcomings• Updates and upgrades are difficult• One component update breaks another component• Less number of releases• Delayed releases• Unable to get truly agile

Microservice Architecture

Source: microservices.io Source

Advantages• Modular application• Easy maintenance, updates for application• More releases and agile processes• Independently scalable

Challenges Implementing Microservices

• Architecting multiple smaller services / applications

– With Microservices, services become synonymous to application.

• How to make services available for other applications?

– Multiple small services/application require a sophisticated system for communication.

• Technical cost to consume APIs

– Consuming APIs should be a piece of cake to realize value of microservices

It should be easy to publish and share APIs with other developers in the enterprise.

Share APIs with other Developers

Search and Find shared APIs

One Click App Deploy and Publish APIs

One Click App Deploy and Publish APIs

Import and Consume APIs

Easy Consumption of shared APIs

Easy Consumption of shared APIs

Aligning to Trends

Challenges in aligning to these Trends

• Requires a lot of research

• Initial setup is complicated

• The setup takes time to mature

• Configuration and setup of individual MSA components need to evolve

• Lots of boilerplate code

• Release management becomes nightmare

RAD new RAADD

Rapid API Application Development & Deployment

• Automatic Responsive Modern UI

• Easy for non-UI developers. Flexible for pro developers.

• API Driven Development with Micro Service Architecture

• Continuous Delivery leveraging Docker

– Simplify setup and management of Docker and all other requisite technologies.

– Maximize value from Docker

RAADD Cautions

• Open Technologies?

• Open Source?

• Extensible?

• Vendor-Lockin (e.g., proprietary runtime)?

• Delivery Options (On-Prem, SaaS)?

What if RAADD Platform provides

these benefits too?