Más contenido relacionado

Similar a Disruptive Trends in Application Development(20)


Disruptive Trends in Application Development

  1. Creating Apps at the Speed of Business Trends That Are Disrupting App Dev April 29, 2015
  2. Presenters 2 Technical Architect Samir Ghosh CEO Anurag Parashar WaveMaker, Inc. • Headquartered in Mountain View, CA • Enterprise Software Platform for Custom App Delivery
  3. • 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
  4. 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
  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
  6. But there is a problem… 6
  7. Trend: Build Once UI 7
  8. Build Once UI Design 9 Adaptive Design Responsive Design Source: Google Trends
  9. Increasing Diversity and Importance of Devices 10 Apple Watch – already 3,500 apps! (4/28/15)
  10. Consumerized Demand for Great Looking 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. Professional Template starting points. 14 Caution: Avoid lock-in and dead-end functionality. Ensure: Open Standards and Extensibility.
  14. Trend: APIs
  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.
  22. Simplified API Consumption Pre-fabricated application components providing the API usage can boost developer productivity tremendously.
  23. Control API Access API Access Configuration • Not exposed at all • Only for same application • Internally in organization • Public APIs
  24. Trend: Continuous Delivery
  25. Continuous Delivery trend Continuous Delivery Agile 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 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
  32. Docker Accelerator • Simplify implementation • Meet enterprise IT’s unique needs • Maximize the value of Docker
  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
  39. Trend: Microservices
  40. Microservices Source: Google Trends Steep rise in recognition of Microservice Architecture from 2014
  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: 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: Source 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 be easy to publish and share APIs with other developers in the enterprise. Share APIs with other Developers
  46. Search and Find shared APIs
  47. One Click App Deploy and Publish APIs
  48. One Click App Deploy and Publish APIs
  49. Import and Consume APIs
  50. Easy Consumption of shared APIs
  51. Easy Consumption of shared APIs
  52. Aligning to Trends
  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
  55. RAADD Cautions • Open Technologies? • Open Source? • Extensible? • Vendor-Lockin (e.g., proprietary runtime)? • Delivery Options (On-Prem, SaaS)?
  56. What if RAADD Platform provides these benefits too?
  57. Q&A Samir Ghosh, Anurag Parashar, Free trial:

Hinweis der Redaktion

  1. 3
  3. 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.