Building Platforms for Rapid Application Development
Chintana WilamunaSolutions Architect
WSO2
Agenda
• Existing landscape and why we need a better approach?• A platform for developing applications• Platform characteristics• Creating a platform
Solving business problems
Business Problem
Statements
Technical Solutions
Customers
Partners
Business Objectives
Icon credit - Icon made by Freepik from www.flaticon.com
Technical solutions
Multiple Systems
Multiple systems
• Each system with a different–Architecture–Programming language–Database technology– Integration APIs–License–COTS/OSS/Bespoke etc…
• Configure to achieve overall business goals• Change business processes to match what’s doable with
the system?!
Challenges
• Consumers expect better/efficient experiences
Challenges cont.
• Increased pace of technology adoption–Cloud - nothing to maintain, pay as you go–Containers–Machine learning/AI–Bots
• Keep up and provide new user experiences• Become the first to execute - grab market share• Iterate quickly and add new business capabilities
New technology solutions for digitally transforming a business
Technical solution characteristics
• Develop MVP quickly (minimum viable product)• Iteratively improve
–Iterative development•Agile!–Iterative architecture
•Within the 1st month do you want to handle 10k TPS?•Geo distributed HA requirements?•0 - 3 - 6 - 12 month architecture
• Understand the audience• Platform for business solutions
Providing a business platform
• Driven through APIs–New and existing business capabilities
• Integrated into existing systems–ERP / CRM
• Composed of pieces - microservices–Implementation practice
• Unified user identity• Deployed on containers• Measured through real time analytics
–Can’t improve what you cannot measure
A platform - Driven through APIs
• API Management practice - services exposed through APIs
• API first approach to design services• Controlling granularity of APIs
–An API for each service?–High level APIs that wraps couple of services?
• Best practices and patterns?–Follow what’s most aligned with business–Evaluate, adopt and refine
Driven through APIs - Example
• Initially - Generic API targeting for app developers–Goal: use better/rich UIs and apps to get more subscribers
• Refactored–Concentrate on APIs optimized for devices–An API for each device - optimized for device devs–Now 1000+ devices (1000+ APIs!)
• Design the API for your audienceWhy you probably don’t need an API strategy - https://thenextweb.com/entrepreneur/2013/09/15/why-you-probably-dont-need-an-api-strategy/
A platform - Driven through APIs
Business Enablement Platform
API Management
Tactical Decisions
A platform - integrated into existing services
• Connectors to cloud and on-prem systems• Integration templates/recipes• Canonical model for
–Transformation–Logging–Data management - record, filter, push to other systems
• Integration first language - Ballerina - http://ballerinalang.org/
A platform - composed of pieces
• Microservices - “micro” = scope of functionality• One single business function• Easy to
–Deploy, test, and scale
• Short running–Boot up in 1 - 2 seconds
• No app server overhead• Recomposable services
Composed of pieces - Example
• Purposefully built for building middleware servers• OSGi programming model
–Not exposed to external developers
• Incredibly productive to mix and match components–Aggregate, remove features to a common runtime–Run several features on one JVM
• Unified services across different products–Security–Logging–Clustering and caching
A platform - integrated to existing systems
Business Enablement Platform
API Management Integration
Tactical Decisions
Tactical Decisions
A platform - unified identity
• Identity management–Internal/external users–Leveraging existing user identities (federation)
• Common identity framework for new apps/services• Leverage existing user repositories
–LDAP, Active Directory, DBs
• Leverage existing security mechanisms–Security gateways–Identity providers
A platform - unified identity - Example
Wednesday 22nd
Security Track
A platform - with unified identity and access mgt.
Business Enablement Platform
API Management Integration
Identity & access
management
TacticalDecisions
Tactical Decisions
Tactical Decisions
A platform - mobile and IoT
• Enterprise capabilities on mobile devices• Leverage existing devices• Existing user identities
–Login with Facebook, Google, phone number etc…• Rich, responsive UIs• Capture sensor data for better UX
–Context/location sensitive–Beacons–NFC
A platform - mobile and IoT - Example
Wednesday 22nd
IoT Track
A platform - mobile/IoT enhanced
Business Enablement Platform
API Management Integration
Identity & access
management
Mobile and IoT
Tactical Decisions
Tactical Decisions
Tactical Decisions
Tactical Decisions
A platform - analytics
• Monitor and measure–Existing services–Performance/load–Business KPIs
• Identify real time patterns–Real time notifications–Real time dashboards–Real time actions
• Being a more proactive business with predictive analytics
Enablement platform
Business Enablement Platform
API Management Integration
Identity & access
management
Mobile and IoT
Real time analytics
Tactical Decisions
Tactical Decisions
Tactical Decisions
Tactical Decisions
Tactical Decisions
Icon credit - Icon made by Freepik from www.flaticon.com
Business Enablement Platform for Digital Transformation
• Solve specific business problems• Conducive to rapid evolution of business requirements• High availability and scale out• Deployment / test automation for new services• Data APIs and governance / compliance• Location based responses• Maintenance and security updates
Creating a business enablement platform
• Do you need everything?–API, Integration, IAM, Mobile/IoT, Analytics? No–Right solution architecture based on requirements
• Your application/business goals–MVP–Iteratively develop product + architecture–Repeatable process from day 1
•Service creation / deployment / testing / API enable•Data services
Creating a business enablement platform cont.
• MVP to capture end-to-end functionality–Just the capabilities you need–No less, no more–Capture non functional requirements in the context of MVP
functionality
• Simple straightforward architectures–Don’t over engineer
• Demonstrate business value–Learn from failure
Creating a business enablement platform cont.
• Planning for HA–Availability requirements
•E.g. Gateways, KMs, internal/external publishing–Geo distributed–What’s required for 0 - 3 - 6 - 12 months
• Establish devops practices• Platform vs. standalone app? Does it apply to me?
–What’s your approach?–How can we help to improve?
Come and Talk to Solutions Architecture team! :) (shameless plug)
Questions?
Thank You!