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.
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
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)
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
Test
Developer 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
Test
Developer
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”
21. DevOps
Development 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 environment
Development Staging Production
23. Continuous Deployment
PaaS
Automatically configures each environment
Development Staging Production
One Button Press
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 Data
Drawbacks
• Expensive to Manage
• Not flexible
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
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.
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
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.