The Application Development Landscape - 2011

20,094 views
19,347 views

Published on

Presentation on the Application Development Landscape given as a keynote to the MassTLC CTO, developer and architect audience on December 15th in Cambridge, MA. Covers the key challenges and architectural decisions faced by developers. Topics include: Mobile, Cloud, SaaS, PaaS, Big Data, Analytics, etc.

Published in: Business, Technology

The Application Development Landscape - 2011

  1. APPLICATIONDEVELOPMENT - 2011A World of Change
  2. Broad Macro Changes• Mobile • Consumerization of IT• Social • HTML5• Local • Component reuse• Cloud • Open Source• PaaS • Security challenges• Big Data • Agile SCRUM
  3. The Dawn of the Post-PC Era Thanks to Mary Meeker and Matt Murphy
  4. Mobile Internet - 10x bigger Thanks to Mary Meeker and Matt Murphy
  5. Mobile Computing changes• Always with you. Always on. Always connected.• Social: Leverage Facebook, Twitter, etc.• Local: GPS = amazing new apps• New Device capabilities • Touch interaction • Camera & Camcorder • Voice input • Gyro + Accelerometer• Easy Integration with key apps • Maps, Phone, Contacts, Calendar, SMS messaging, etc.
  6. Mobile + Cloud = Exceptional Power• Access pretty much anything • Maps, music, photos, social, etc.• Apps can be made far more powerful • Social connections • Big data • Huge compute power• The cloud becomes your single storage point for stuff • Documents, music, photos, etc.
  7. Leads to a Wave of Innovation Unmet Need New Technology Entertainment Just passed 1 Million Mobile Apps (Doubled in the last year)
  8. Cross Platform Development Smartphone & Tablet screen size
  9. HTML5 versus Native Apps Or Hybrid to get at Device Functionality such as Camera, GPS…
  10. AppStores• New distribution model• Built in Billing and in-app commerce • Open up new opportunities: Free to Paid
  11. AppStore Revenue Projections $’s Billions 40 35 30 25 20 15 10 5 0 2011 2012 2015Source: Canalys
  12. CLOUD COMPUTINGA Major Revolution
  13. Three Flavors of Cloud SaaS Software (Applications) PaaS Platform IaaS Infrastructure (e.g. Amazon Web Services)
  14. Before PaaS Unit Test Functional Test Source Jenkins Code Continuous Load Managemnt Integration TestDeveloper IT • “Please provision the following servers” Integration • “Please install the following software” Test • “Please maintain and update the software” • “Please create copies of my test databases” • Etc.
  15. With PaaS: Automated Provisioning Unit Test Functional Test Source Jenkins Code Continuous Load Managemnt Integration TestDeveloper PaaS Portal • “Please provision the following servers” Integration • “Please install the following software” Test • “Please maintain and update the software” • “Please create copies of my test databases”
  16. PaaS • No Waiting • No Errors
  17. PaaS: Continuous Integration Integrate, Build & Test
  18. PaaS: Continuous Integration Fail!
  19. Continuous Integration Unit Test Functional Test Source Jenkins Code Continuous Load Management Integration Test Integration Test
  20. Test Workload: very spikey Perfect for the public cloud
  21. DevOpsDevelopment Operations • • ? “What’s the configuration?” “Wait while I get that set up” • “That didn’t work. Are you sure you gave me the right config?”
  22. Continuous Deployment PaaS Automatically configures each environmentDevelopment Staging Production
  23. Continuous Deployment PaaS Automatically configures each environmentDevelopment Staging Production One Button Press
  24. PaaS
  25. Other Benefits of PaaS• Automatic Scale-out • New machines added and removed to handle varying load• Fault tolerant: Session-level Failover • Customer sessions/transactions are not lost when servers fail • Not in all PaaS offerings
  26. PaaS Focus on the App, not the Plumbing PaaS becomes the new Operating System for Applications
  27. PaaS Focus on the App, not the Plumbing Impact: Much Faster Time-to-Market
  28. How Enterprises move to the Cloud SaaS Private Cloud (IaaS & PaaS)Private Cloud• Secure• Easy access to DataDrawbacks• Expensive to Manage• Not flexible
  29. Hybrid Cloud SaaS Private Public Cloud Cloud (IaaS & PaaS) (IaaS & PaaS)
  30. SAAS DEVELOPMENT
  31. SaaS versus Licensed Licensed Software Software as a Service• 9-18 months for a new version • New version every month• Support multiple old versions • Only one version to support• Hard to get usage feedback • Instant feedback on usage• Expensive to ship bug fixes • Fix bugs instantly
  32. SaaS versus Licensed Licensed Software Software as a Service• 9-18 months for a new version • New version every month• Support multiple old versions • Only one version to support• Hard to get usage feedback • Instant feedback on usage A Major Transition underway• Expensive to ship bug fixes • Fix bugs instantly
  33. SaaS: New Challenges• Multi-tenancy• Usage tracking, Billing• Big Data• Scaling and Fault Tolerance• Etc. Note: PaaS can help solve many of the above
  34. BIG DATA
  35. Big Data: Structured NoSQL NewSQL CassandraMySQL MongoDB Sharded Etc. MySQL
  36. Big Data: Unstructured
  37. Silo Problem Structured Unstructured SQL NoSQL NewSQL
  38. Analytics• What happened?• What is likely to happen going forward?
  39. Problem: • Limited SQL • Extremely Slow • Incompatible with today’s BI tools
  40. Analytics “Give Me Actionable Insights”
  41. COMPONENTSA huge gain in Productivity
  42. Component Assembly and Mash-up• Web Services • Google Maps, Twilio, Facebook, etc.• Open Source • Databases, algorithms, reporting, etc.• SaaS application APIs • Salesforce.com, Dropbox, Google Apps, etc.
  43. SOCIAL &GAMIFICATION
  44. Social Features add Power• Many applications benefit from Social features• Consumer • Photo sharing • Dating • Hiring • Finding new music, restaurants, etc.• Enterprise • Sales • HR • Marketing• Consumerization of the enterprise
  45. Gamification• Use to encourage engagement and usage
  46. SUMMARYA World of new Challenges
  47. Many Choices• Languages• Architecture• Components• Data Storage• Features• Security
  48. With Power comes Responsibility• A key part of the job of an Architect / Developer: Making architectural choices• Above all else: meet the business needs • Time to market • Flexibility • Scalability • Reliability • Security • Etc.

×