Dan Crawford of Klashwerks presents at the Canadian Executive Cloud & DevOps Summit on June 9, 2017 in Toronto, ON on the topic of "Transforming Ideas Into Reality Using Serverless Technologies"
2. Intro
• Early stage startup leveraging many AWS services
• Building consumer device for the connected car market (IoT + Cloud +
Mobile)
• Been using AWS since 2008
• Leveraging serverless
http://raven.is
3. This talk
• Compare AWS from 5 years ago to now
• Two high-level architectures for an app idea
• Division of development time
• Challenges
• Future trends
6. Easiest - Mobile App for Team Captain
Features:
1. Enter team’s contact info
2. Schedule messages
3. Automate the ‘bring beer’ SMS
4. Track who bought beer
Problems:
• What happens when someone cancels
• Low user count (only team captains)
• Low Engagement
• No easy way to get responses back
Potential to monetize = VERY LOW
7. Implementation in 2012
• Access contacts from phone
• Server and database to schedule
messages & track who’s next
• AWS SNS to send SMS messages
Challenges:
Quality => Automated testing
Secure => A lot of work
Performant => Monitoring & alerting
High availability => Redundancy
Repeatable => Deployment process
8. 2012 Challenges
• Multiple instances required for availability & staging
• Upgrade and resize instances
• Fixed costs incurred for each instance
• Monitoring instances
• Monitor security alerts regarding OS, runtime environment AND patch
• Monitor RDS database and manually upgrade + resize
• Implement your own security
• Manage your own code repositories
• Implement mobile-server interface (REST api)
• Implement core features
9. Technology Treadmill
• Maintenance, upgrades & obsolescence
of dependencies/technologies
• Security patches
• Bug fixes (scheduled & emergency)
• New features & releases
• Need to be fit & ready when jumping on
10. Developer Time
• Competing priorities
• Open-ended tasks
• Always on call
• Putting out fires (system hacked)
• Tough environment to schedule & plan
12. Idea in 2017
Problems:
Exposes the least reliable
teammates
Benefits:
• High number of users (entire
team)
• High engagement
Potential to monetize = HIGH
Features:
• Team messaging
• Interactive scheduling
• Attendance tracking
• Game notifications (including
bring beer)
• Advertisements & Promos
• Data synchronization across
devices
• Team captain administration
13. 2017 Implementation
• Cognito & User pools (User Accounts)
• Push notifications (SNS)
• RDS Aurora (auto-scaling and
updates)
• Pinpoint (targeted messaging)
• 3rd party SDK for interstitial ads
• Cloudwatch scheduled events
• Cloudwatch logging & monitoring
• Cloudwatch alarms
• API Gateway (mobile-lambda
interface)
• S3 Persistent storage
• Security: IAM + VPC
• CodeCommit
14. AWS Lambda
• Events cause code to run
• Amazon manages the resources
to run the code
• Charged only when code is
executed
• Logging & monitoring built-in
with Cloudwatch
• Security managed by AWS
Benefits:
• No fixed costs
• AWS owns server uptime, upgrades &
management
• No additional servers required to do
monitoring, log aggregation or staging
• Cloudwatch alerts
• Can glue AWS services together quickly
& easily
• Deployment process supports stages and
rollbacks
Lambda = BUILD VALUE LOGIC
15. Cognito & User Pools
• Scaleable user management solution
• User signup, log in, change password
• Data synchronization across devices
• User verification (SMS token)
• User groups (team captain + teammates)
• Security for accessing AWS resources (Cognito ID)
• User attributes (name, age, phone number, email, address, etc)
16. Technology Treadmill
• Serverless & the new cloud-made
services (aurora) remove pain-points
from building software solutions
• Maintenance, upgrades & obsolescence
of dependencies/technologies
• Security patches
• Bug fixes (scheduled & emergency)
• New features & releases
17. Developer’s Time - hitting home runs
Focuses on the fun value logic instead of
mundane common services (user signup, api
boilerplate) or resizing databases.
18. 2018 Cloud Service Integrators
Amazon is positioning lambda as the glue
between their services and the way to add
customizations.
Cloud development = Cloud service
integrations
• Increased productivity of developers
• Quickly build cheap, secure & scaleable
solutions
• Focus on building value
• Less pain points = Happier developers
Examples:
• Aurora stored procedures as lambda
functions
• AWS Greengrass – lambda functions
pushed to devices
• Lambda@Edge – Cloudfront events run
lambda functions at AWS edge locations
• API Gateway and lambda integration
19. Challenges
• VPC setup & configuration is tough
• Subnets
• Security Groups
• NAT Gateways
• Internet Gateways
• Route tables
• Early days:
• Beta services
• Not fully featured (ex. binary support)
• Potential scaling issues (ex. lambda & database connections)
My advice - Hire a cloud consultant to help design VPC and security policies
20. Future Cloud Economics
• Developer’s time spent implementing value
logic
• Significantly lower up-front capital investments
• Shorter timelines to MVP
• Securely scales
• Motivated developers
Makes niche apps & services viable
Easily monetize using API Gateway & AWS
Marketplace