alejandro saucedo presentation on iwmc 2015
TRANSCRIPT
Technology Infrastructure for a successful startup
Alejandro Saucedo
Interna0onal exhibi0on center of university of Shahid Behesh0
3rd Iran Web and Mobile Conference
Technology infrastructure for a successful startup
Hacka { Global }
1
3
Hacka { Isfahan }
Hacka { Mashhad }
Hacka { Tehran }
Hacka { Zanjan }
Hacka { Arak }
Hacka { ? }
• Fast paced – Might be overwhelming, let me know • Links – contains useful links to ar0cles and short explana0ons • Introduc6on -‐ Only the 0p of the iceberg • Q&A – At the end (Hopefully), or any 0me throughout the day
• Presenta6on at: hOp://bit.ly/hackainfrastructure
Today
5
What defines success in a Startup?
From a technology
perspec6ve
Success and Failure
Who’s this guy?
7
Tech Startup Success
Cloud Infrastructure
Con0nuous Deployment
Technology Stack
Success in three simple steps
8
Approach the problem
Analyze your problem Research available technologies Choose by maximizing for the
Leanest, Fastest, Affordable Solu6on
Without sacrificing quality
No overengineering No underegineering 9
Fully tested
Communty driven
Documenta0on Rich
Readily available
FREE
Leverage the readily available Open Source op6ons
Use the right tools
10
Infrastructure
“OMG they just men0oned us in TechCrunch – BUY AND SETUP NEW SERVERS!”
“What!? Website crashed because the versions of Python are not the same?!”
“Why are is everything so slow with new computers? BUY MORE SERVERS!”
“Why worry about infrastructure, if I only have 1000 clients?”
12
Cloud Infrastructure
• One click to deploy servers
• Simple network configura0on
• Ability to save/load images
Simple case:
What if I need more?! • Mul0ple servers on demand
• Elas0c compu0ng
• Private cloud 15
Cloud Infrastructure How do I cloud?
Open source soiware for crea0ng private and public clouds.
Define and maintain a consistent state for all (virtual) machines
Build, ship and run in consistent, lightweight environments.
16
Continuous Integration How many of you…
…use version control?
…use Jekins or Travis?
…deploy once at least once a week?
…write tests?
17
Continuous Integration
“The last change broke everything, but we NEED to deploy this change!!”
“Alright, try running it again. Ah I see the error now, try again. Right I’ve changed the variable – try running it again.”
“Who let him add that!? The whole system is down!!”
“Tes0ng? My customers want it now – I don’t have 0me for that!”
18
Code Reviews
Continuous Integration
Automated Building
Automated Tes0ng
Automated Deployment
“Con%nuous Integra%on (CI) is a development prac%ce that requires developers to integrate code into a shared repository several %mes a day. Each check-‐in is then verified by an automated build, allowing teams to detect problems early.”
Version Management
19
Review code, manage progress
Continuous Integration
Automated Building
(Yeoman, Grunt, Bower)
Automated Tes0ng
(Protractor, Phantom, Karma)
Version Management
(Promise that you’ll use this in your startup)
Jenkins (Open source)
Travis (Cloud hosted)
20
No excuses
YOU are responsible to deliver, without sacrificing quality.
Customers will always want the product delivered by yesterday.
Investors/Business will always push towards reaching the deadlines, ASAP.
25
Technology Stack
“Why are there ten CSS classes called ‘.content’ !?”
“Undefined variable!? Which of the 24 javascript files is this coming from?! ”
“SQL INJECTIONS EVERYWHERE!!”
“PHP, HTML, JS and CSS in the same file can’t be that bad, right?”
26
Technology Stack
Node (JS) #
Python#
PHP
Ruby C#
Flask BoOle Express Sinatra
Django# Meteor
Ruby on Rails
Angular# Ember#
React#
Backbone Knockout
Bootswatch# Material# JQuery
Mongo# Redis#
RabbitMQ# Elas0c Srch# Apache Solr#
28
Solving a Problem Failures in following these principals
is what makes corporates fail and allows startups to take over
with a well engineered infrastructure, efficient tests, fast deployment process
10x FASTER 10x BETTER 10x CHEAPER
29
Admirable Success Stories
Real0me Datamining At 120,000 Tweets Per Second
Shazam spectogram algorithm Jason.TV (Twitch successor)
infrastructure
30
After this talk…
• Learn and play with these technologies • Integrate them in your day-‐to-‐day development
• Tell off your CTO if you’re not using them already
• Teach your colleagues about new technologies • Never stop researching new solu0ons available
32