For enterprises trying to stay ahead of the game, having a robust and fast application development program can make or break their market presence. The challenge for developers, however, is to build responsive, devise-agnostic applications in days, not months.
5. 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
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
13. Decoupled UI Components.
Professional Template starting points.
14
Caution: Avoid lock-in and dead-end functionality.
Ensure: Open Standards and Extensibility.
15. Growth of APIs
Source : programmableweb
As of today, the number
of registered APIs on
ProgrammableWeb has
crossed 13000 APIs.
16. Why is API a 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 need to
• Be usable
• Optimize network traffic.
• Be simple to understand
• Provide finer resource level control.
• Be secure
19. 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
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.
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
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
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 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
31. 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
33. 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
34. 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
35. 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.
36. 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.
37. 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%
38. Optimized Resource Usage
… using container hibernation
Active and hibernated
containers with monitoring
statistics
41. Microservices further boosted by
• 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
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 be easy to publish and share APIs with other developers
in the enterprise.
Share APIs with other Developers
53. 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
54. 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
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.