Designing, developing and deploying business capabilities and being able to go-to-market quickly gives businesses a competitive edge. With digital transformation, no company can any longer afford to differentiate between “business” and “IT”. They have to become technology companies themselves because software plays a key role in becoming a digital business and is responsible for running the business. This introduces a broad set of challenges that range from technology acquisition to changes in mindset on how you approach and solve business problems.
This session will explore how to build a platform that allows rapid development of applications through quick prototyping and iterative improvements to application architecture. It also examines how WSO2 can help build such a platform and empower developers to create better customer experiences.
SQL Database Design For Developers at php[tek] 2024
WSO2Con USA 2017: Building Platforms for Rapid Application Development
1. Building Platforms for Rapid
Application Development
Chintana Wilamuna
Solutions Architect
WSO2
2. Agenda
• Existing landscape and why we need a better approach?
• A platform for developing applications
• Platform characteristics
• Creating a platform
5. 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?!
7. 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
9. 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
10. 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
11. 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
12. 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 audience
Why you probably don’t need an API strategy -
https://thenextweb.com/entrepreneur/2013/09/15/why-you-probably-dont-need-an-api-strategy/
13. A platform - Driven through APIs
Business Enablement Platform
API
Management
Tactical
Decisions
14. 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/
15. 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
16. 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
17. A platform - integrated to existing systems
Business Enablement Platform
API
Management
Integration
Tactical
Decisions
Tactical
Decisions
18. 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
19. A platform - unified identity - Example
Wednesday 22nd
Security Track
20. A platform - with unified identity and access mgt.
Business Enablement Platform
API
Management
Integration
Identity &
access
management
Tactical
Decisions
Tactical
Decisions
Tactical
Decisions
21. 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
22. A platform - mobile and IoT - Example
Wednesday 22nd
IoT Track
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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?
30. Come and Talk to Solutions Architecture team! :)
(shameless plug)