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 information
more 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 consistnet
diagram
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 Software
2. One time
Configuration on
launch of software
3. Startup scripts
Configurations required
1. Ports to be opened
2. Environment
properties required
/exposed
Application Stack
MonitoringDB
A P P
S 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 P
S T A C K
A P P
S T A C K
A P P
S 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 Microservice
Architecture 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?
Q&A
Samir Ghosh, samir.ghosh@wavemaker.com
Anurag Parashar, anurag.parashar@wavemaker.com
Free trial: WaveMakerOnline.com

Disruptive Trends in Application Development

  • 1.
    Creating Apps atthe Speed of Business Trends That Are Disrupting App Dev April 29, 2015
  • 2.
    Presenters 2 Technical Architect Samir Ghosh CEO AnuragParashar WaveMaker, Inc. • Headquartered in Mountain View, CA • Enterprise Software Platform for Custom App Delivery
  • 3.
    • Scarce, ExpensiveResources • Complex Supply Chains • Social-media Empowered Customers • Global Competition • Demanding Consumerized Employees • Disruptive Business Models Enterprises Facing Increasing Challenges • Governance and Compliance 3
  • 4.
    Successful Enterprises Enable Agility Democratize Decision Making Foster Innovation IBMCIO Study – Successful Companies… • Build a workplace strategy and roadmap that drives innovation and productivity • Enable secure anytime, anywhere access instead of restricting usage 4
  • 5.
    Apps are KeyEnablers Making information more 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
  • 6.
    But there isa problem… 6
  • 7.
  • 8.
    Build Once UIDesign 9 Adaptive Design Responsive Design Source: Google Trends
  • 9.
    Increasing Diversity and Importanceof Devices 10 Apple Watch – already 3,500 apps! (4/28/15)
  • 10.
    Consumerized Demand for GreatLooking Design 11 2009 2015
  • 11.
    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
  • 12.
    Ideally, build once. Smart,auto-responsiveness. 13
  • 13.
    Decoupled UI Components. ProfessionalTemplate starting points. 14 Caution: Avoid lock-in and dead-end functionality. Ensure: Open Standards and Extensibility.
  • 14.
  • 15.
    Growth of APIs Source: programmableweb As of today, the number of registered APIs on ProgrammableWeb has crossed 13000 APIs.
  • 16.
    Why is APIa trend? • Increase in consumption of data/functionality from multiple devices. • Need for easy, usable, secure and loosely standardized contracts
  • 17.
    What is API? •Application Programming Interface • Way to expose data/functionality – Operation, Input, Output and Types • Not new • SOA with SOAP/WSDL, REST services
  • 18.
    Modern APIs needto • Be usable • Optimize network traffic. • Be simple to understand • Provide finer resource level control. • Be secure
  • 19.
    RESTful APIs meetmodern 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
  • 20.
    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.
  • 21.
    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.
  • 22.
    Simplified API Consumption Pre-fabricatedapplication components providing the API usage can boost developer productivity tremendously.
  • 23.
    Control API Access APIAccess Configuration • Not exposed at all • Only for same application • Internally in organization • Public APIs
  • 24.
  • 25.
    Continuous Delivery trend Continuous DeliveryAgile Application Process having a steady gain and being adopted more and more in past few years.
  • 26.
    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
  • 27.
    QA Staging Production Test Script Release Script Create Script Lotsof 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
  • 28.
    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 consistnet diagram
  • 29.
    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?
  • 30.
    • Lots oftechnologies 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
  • 31.
    Enterprise IT alsoneeds • 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
  • 32.
    Docker Accelerator • Simplifyimplementation • Meet enterprise IT’s unique needs • Maximize the value of Docker
  • 33.
    Dockerize Workload: DockerImages Upload required files Provide Commands to 1. Install Software 2. One time Configuration on launch of software 3. Startup scripts Configurations required 1. Ports to be opened 2. Environment properties required /exposed
  • 34.
    Application Stack MonitoringDB A PP S 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
  • 35.
    New way ofContinuous 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 P S T A C K A P P S T A C K A P P S T A C K An Application Stack being a set of images working together to provide services.
  • 36.
    New way ofContinuous Delivery Launching an existing Application Stack on a new Environment is a one click operation. Environment Properties can be easily specified for each environment.
  • 37.
    Resource utilization App A AppB 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%
  • 38.
    Optimized Resource Usage …using container hibernation Active and hibernated containers with monitoring statistics
  • 39.
  • 40.
    Microservices Source: Google Trends Steeprise in recognition of Microservice Architecture from 2014
  • 41.
    Microservices further boostedby • Availability of APIs for communications enables loosely coupled components • Continuous Delivery enables better release management of multiple services / applications
  • 42.
    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
  • 43.
    Microservice Architecture Source: microservices.ioSource Advantages • Modular application • Easy maintenance, updates for application • More releases and agile processes • Independently scalable
  • 44.
    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
  • 45.
    It should beeasy to publish and share APIs with other developers in the enterprise. Share APIs with other Developers
  • 46.
    Search and Findshared APIs
  • 47.
    One Click AppDeploy and Publish APIs
  • 48.
    One Click AppDeploy and Publish APIs
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
    Challenges in aligningto 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
  • 54.
    RAD  newRAADD 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
  • 55.
    RAADD Cautions • OpenTechnologies? • Open Source? • Extensible? • Vendor-Lockin (e.g., proprietary runtime)? • Delivery Options (On-Prem, SaaS)?
  • 56.
    What if RAADDPlatform provides these benefits too?
  • 57.
    Q&A Samir Ghosh, [email protected] AnuragParashar, [email protected] Free trial: WaveMakerOnline.com

Editor's Notes

  • #4 3
  • #11 http://www.latinpost.com/articles/50375/20150428/apple-watch-release-3-500-apps-already-available-download-the-top-8-apps.htm
  • #19 What is API? ===================== - Application Programming Interface : Way to expose data/functionality. - There since the age of software. - Service Oriented Architecture was popular from B-2-B integration age. Both SOAP/WSDL and RESTful services in use.