SlideShare a Scribd company logo
1 of 36
Download to read offline
October 2014
Startup Engineering
Cookbook
From Slides to Website
Overview
Slide Topic
3 Purpose
4 The Lean Startup
5 Implementation Options
6-17 Architecture Options
18-22 Sample Architecture
24-28 Monitoring
29-30 Disaster Recovery
31-32 Scaling
33-34 Internal Tools
35 The End
36 Contributors
Purpose
Covering the various technical options
when going from a concept to
building a website and beyond...
3
[meant for a non-technical audience]
The Lean Startup
It’s an approach for launching
businesses and products, that
relies on validated learning,
scientific experimentation, and
iterative product releases to
shorten product development
cycles, measure progress, and gain
valuable customer feedback.
[ Wikipedia ]
It is THE industry bible for startups...READ IT.
[ The Reality ]
4
Implementation Options
There are 3 options for building a website:
1 Build internally
2 Outsource
3 Hybrid - hire a technical lead
Building a website is like the Kama Sutra...
many ways to accomplish “it”
5
Architecture Options
6
Infrastructure Provider
The website will have to reside on a computer for the world to see. 



Options: Amazon Web Services (AWS), Google Cloud Platform,
Heroku, local hosting provider, Microsoft Azure, Netmagic, RackSpace




Our choice: Amazon Web Services (AWS). They are the #1 leader in
web infrastructure services also known as cloud services.
In addition, they have a free 1 year trial which allows you to try
many of their services at zero cost. After 1 year they will bill you
based on usage of their services.
web hosting services
7
Central vs. Distributed
The old way of designing the infrastructure for a website was to put
all the resources such as databases, files, images, etc... on the same
server. The problem is if your database is slow and everything else is
fine, you have to upgrade the entire server and disrupt the other
functions.  By distributing the resources you can quickly pinpoint the
bottleneck and scale that particular resource.
distributed web architecture
Central
Our choice: Distributed Architecture.
Distributed
Computing Database Static
Files
Computing, database, files, etc...
8
Managed vs. Self-Service
If your team is technical it might not be technical in terms of
hardware. Just because someone knows a programming language
does not mean they have the infrastructure knowledge to run a
website.
Some startups prefer to outsource the management of their
hardware to a hosting provider or use the “premium” option of a
cloud service provider.
Our choice: Self-Service. The tools that are provided by AWS are
quite powerful and easy to use for managing the entire AWS
infrastructure.
managed server hosting
9
Operating System
There are only two options Microsoft Windows or Linux. Windows is
limited in the type of programming languages that you can run on
the server. Linux is open source and has a large community that is
continually improving the operating system. Within Linux there are
many options such as Debian and Red Hat to choose from, but are all
pretty similar in their offerings.
Our choice: Linux. Linux is usually cheaper to run and used by more
websites than any other platform. Part of the LAMP stack - Linux
(operating system), Apache (web server), MySQL (database) and PHP
(programming language).
linux hosting
10
Software that delivers web pages from the server to a clients web
browser.
Options: Apache, Lighttpd, Microsoft Internet Information Server
(IIS), Nginx, Node.js, Rails, Tornado
Our choice: Apache. It’s part of the LAMP stack and is widely used
by many websites.
Web Server
apache web server
11
The heart of any web based application is the database since it
stores all the user information and everything else related to the
web application.
Options: Amazon DynamoDB, Cassandra, CouchDB, Microsoft SQL,
MongoDB, MySQL, Oracle, SimpleDB
Our choice: MySQL. It’s part of the LAMP stack and widely used by
many websites.
Database
mysql nosql
12
If you ask 4 programmers which is the best language, you will most
likely get 5 different answers. If you are building a website on a
Windows environment then you can choose .NET, for Linux there are
several choices.
Options: Clojure, Microsoft’s .NET, Perl, PHP, Python, Ruby
Our choice: PHP. It’s part of the LAMP stack and more importantly
has a large community so finding people to hire with PHP knowledge
is better.
Back End Language
web php languages
13
Instead of re-inventing the wheel it’s better to use a pre-existing
framework to start building an application. Frameworks provide a
foundation where developers’ code can be neatly arranged. Also,
documentation, common problems, solutions, tips and advice can be
shared online in an open source manner.
Options: CakePHP, CodeIgniter, Laravel, Symfony, Yii Framework,
Zend Framework
Our choice: CodeIgniter. One of the fastest performing frameworks
and very active support community.
PHP Framework
php framework
14
This is what the consumer sees on their phone, tablet or computer
screen. Previously, the trend was to create a website design that was
different for each type of device that was accessing the site. Now
everyone is moving towards a “responsive” design, which means you
design a single site that can be viewed on any device that a
consumer may own.
Options: Bootstrap, Foundation, jQuery UI, Kendo UI
Our choice: Bootstrap. It was developed by Twitter and released as
an open source project which means there is a large community of
users.
Front End UI Framework
front end framework
15
Version control is a system that records changes to a file or set of
files over time so that you can recall specific versions later. It’s a
service that will make your life easier as you will be able to keep
track of the changes to your code base.
Options: BeanStalk, Bitbucket, GitHub, ProjectLocker, Springloops
Our choice: Bitbucket. They have a free plan that allows 5 users
which should accommodate any startup.
Version Control Service
git version control service
16
You can interact with your online version control service using the
command line interface of your computer. However, many people
prefer to use a graphical front end which is usually referred to as a
git client.
Options: Gitbox, GitHub, SourceTree, Tower, Versions
Our choice: SourceTree. They have a Mac and Windows client which
are both free. The software is from the same people that provide the
Bitbucket service, so they very well together.
Version Control Client
git client
Tower Versions
17
Sample Architecture
18
UI is a
small piece
19
Website Roles
20
Visually creates
the user
interface (UI)
and the overall
user experience
(UX)
Front End
Engineer
Back End
Engineer
Operations
Engineer
Browser Server
UI/UX
Designer
Converts the UI/
UX design into
Bootstrap,
HTML5, CSS,
JavaScript,
etc...
Converts the
business logic
into computer
code using PHP,
Python,
PERL, .NET,
etc...
Manages the
servers,
databases, DNS
information, and
other website
infrastructure
Day 0
Elastic Compute
Cloud (EC2)
t1.micro
RDS
MySQL
t1.micro
S3
Region: APAC- Singapore
Single Region, Single Availability Zone
(AWS Free Tier Program)
Users Internet
21
Availability Zone: AP-Southeast-1a
Day 0+X
RDS
MySQL
S3
Single Region, Multi Availability Zones
The fault tolerant design allows for one of
the availability zones not being available.
Users Internet
Database
Replication
Elastic
Compute
Cloud (EC2)
RDS
MySQL
Availability Zone: AP-Southeast-1b
Elastic Load Balancer (ELB)
S3
Elastic
Compute
Cloud (EC2)
22
Region: APAC- Singapore
Availability Zone: AP-Southeast-1a
RDS
MySQL
S3
Users Internet
RDS
MySQL
Elastic Load Balancer (ELB)
S3
Day 0+2X
Multi Region
The fault tolerant design allows for one of
the regions not being available. The design
also allows for users to be load balanced
based on geographic location.
Availability Zone: US-East-1a
Elastic
Compute
Cloud (EC2)
Elastic
Compute
Cloud (EC2)
23
Region: APAC- Singapore
Availability Zone: AP-Southeast-1a
Region: US East (N. Virginia)
Monitoring
24
By monitoring the infrastructure, you can
proactively plan if certain components need to be
upgraded.
Infrastructure Performance
25
Understanding how the application affects the
infrastructure is essential. If there are very few
users but the servers and databases are
consistently running at peak utilization, that might
indicate a programming issue.
Application Performance
26
Google Analytics is the industry standard for tracking
website statistics such as hits, users, content
viewed, conversions and many other statistics.
Traffic Analysis
27
Once a user starts to use your web application
you will want to engage with the customer.
Intercom.io allows you to send emails based on
pre-defined rules such as “send a welcome email
to a new user”.
User Engagement
28
Disaster Recovery
29
Having a disaster recovery plan in place is critical to ensure the
website can recover from a catastrophic event.
Taking a daily/weekly/monthly snapshot of the servers, files and
databases is a minimum requirement. The daily/weekly/monthly
backup schedule is sometimes referred to as the son/father/
grandfather rotation schedule.
Backing Up & Restoring
If disaster does strikes and a
complete backup strategy is in
place, then it should not be very
difficult to restore the website
from the backups that are being
maintained.
30
Scaling
31
Hopefully, the website you launch is a massive success and leads to
your website having a tough time handling the load.
With many cloud service providers you can automatically add
additional resources based on predefined rules. An example is below:
Adding Resources
Rule Action
If CPU utilization goes
above 60% during a 5
minute period
Upgrade the server to the
next larger size to handle
the additional load
32
Internal Tools
33
Team communication is critical in a fast paced web business.
Yammer is an internal social network for employees. Pivotal Tracker
is a project management tool. HipChat is an instant messaging
application.
Team Communications
34
The End
35
Questions?
36
Manish Jain
Co-Founder
MProfit
@mrjain_
mrjain@gmail.com

More Related Content

What's hot

Paul Mernyk Work Samples
Paul Mernyk   Work SamplesPaul Mernyk   Work Samples
Paul Mernyk Work Samples
pmernyk
 
Accelerate and Modernize Enterprise Application Development and Digital Proce...
Accelerate and Modernize Enterprise Application Development and Digital Proce...Accelerate and Modernize Enterprise Application Development and Digital Proce...
Accelerate and Modernize Enterprise Application Development and Digital Proce...
DevOps.com
 

What's hot (20)

HokuApps | Why Your Organisation Should Leverage a Rapid Application Developm...
HokuApps | Why Your Organisation Should Leverage a Rapid Application Developm...HokuApps | Why Your Organisation Should Leverage a Rapid Application Developm...
HokuApps | Why Your Organisation Should Leverage a Rapid Application Developm...
 
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
 
Mendix Factsheet
Mendix  FactsheetMendix  Factsheet
Mendix Factsheet
 
Paul Mernyk Work Samples
Paul Mernyk   Work SamplesPaul Mernyk   Work Samples
Paul Mernyk Work Samples
 
User Experience and Product Design Portfolio
User Experience and Product Design PortfolioUser Experience and Product Design Portfolio
User Experience and Product Design Portfolio
 
Building Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsBuilding Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platforms
 
Low-Code vs. Programming – It Isn’t an Either/Or Decision
Low-Code vs. Programming – It Isn’t an Either/Or DecisionLow-Code vs. Programming – It Isn’t an Either/Or Decision
Low-Code vs. Programming – It Isn’t an Either/Or Decision
 
Mobile Enterprise Application Platform
Mobile Enterprise Application PlatformMobile Enterprise Application Platform
Mobile Enterprise Application Platform
 
Micro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution informationMicro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution information
 
V mware end user computing
V mware end user computingV mware end user computing
V mware end user computing
 
Techtiq blog-to-doc (1)
Techtiq blog-to-doc (1)Techtiq blog-to-doc (1)
Techtiq blog-to-doc (1)
 
Where We're Headed: Construction Technology Trends for 2015
Where We're Headed: Construction Technology Trends for 2015Where We're Headed: Construction Technology Trends for 2015
Where We're Headed: Construction Technology Trends for 2015
 
UI & UX Engineering
UI & UX EngineeringUI & UX Engineering
UI & UX Engineering
 
Simplify enterprise IT with no code platform - aPaaS
Simplify enterprise IT with no code platform - aPaaSSimplify enterprise IT with no code platform - aPaaS
Simplify enterprise IT with no code platform - aPaaS
 
Accelerate and Modernize Enterprise Application Development and Digital Proce...
Accelerate and Modernize Enterprise Application Development and Digital Proce...Accelerate and Modernize Enterprise Application Development and Digital Proce...
Accelerate and Modernize Enterprise Application Development and Digital Proce...
 
Brainbean Apps
Brainbean Apps Brainbean Apps
Brainbean Apps
 
I Love APIs 2015: Patterns for Letting the Community Extend your UI
I Love APIs 2015: Patterns for Letting the Community Extend your UII Love APIs 2015: Patterns for Letting the Community Extend your UI
I Love APIs 2015: Patterns for Letting the Community Extend your UI
 
6 questions every enterprise must ask its low code vendor
6 questions every enterprise must ask its low code vendor6 questions every enterprise must ask its low code vendor
6 questions every enterprise must ask its low code vendor
 
Webinar VB6 apps to html5
Webinar VB6 apps to html5Webinar VB6 apps to html5
Webinar VB6 apps to html5
 
Customer perspective: Van Gansewinkel groep
Customer perspective: Van Gansewinkel groepCustomer perspective: Van Gansewinkel groep
Customer perspective: Van Gansewinkel groep
 

Viewers also liked

Millennium upgrade user kickoff presentation
Millennium upgrade user kickoff presentationMillennium upgrade user kickoff presentation
Millennium upgrade user kickoff presentation
Theodore Van Patten, Jr.
 

Viewers also liked (10)

10 Things about Aadhaar
10 Things about Aadhaar10 Things about Aadhaar
10 Things about Aadhaar
 
Millennium upgrade user kickoff presentation
Millennium upgrade user kickoff presentationMillennium upgrade user kickoff presentation
Millennium upgrade user kickoff presentation
 
Startup Journey Road Map-V.1
Startup Journey Road Map-V.1Startup Journey Road Map-V.1
Startup Journey Road Map-V.1
 
The Road to Financial Freedom
The Road to Financial FreedomThe Road to Financial Freedom
The Road to Financial Freedom
 
Startup - Action plan
Startup - Action planStartup - Action plan
Startup - Action plan
 
Predictive Analytics - Big Data & Artificial Intelligence
Predictive Analytics - Big Data & Artificial IntelligencePredictive Analytics - Big Data & Artificial Intelligence
Predictive Analytics - Big Data & Artificial Intelligence
 
Lightning talk Accenture
Lightning talk AccentureLightning talk Accenture
Lightning talk Accenture
 
Accenture Case Competition 2010
Accenture Case Competition 2010Accenture Case Competition 2010
Accenture Case Competition 2010
 
Startup Plan Example
Startup Plan ExampleStartup Plan Example
Startup Plan Example
 
Installing WordPress on AWS
Installing WordPress on AWSInstalling WordPress on AWS
Installing WordPress on AWS
 

Similar to Startup Engineering Cookbook

KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13
MDIF
 
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
GRUC
 
Faster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief propFaster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief prop
ChereCheek752
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
Divya Watson
 

Similar to Startup Engineering Cookbook (20)

Cookbook for Building An App
Cookbook for Building An AppCookbook for Building An App
Cookbook for Building An App
 
KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13
 
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
 
Faster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief propFaster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief prop
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
 
Serverless Toronto User Group - Let's go Serverless!
Serverless Toronto User Group - Let's go Serverless!Serverless Toronto User Group - Let's go Serverless!
Serverless Toronto User Group - Let's go Serverless!
 
Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
 
Navigating the Hype and Realities of Web Development Frameworks
Navigating the Hype and Realities of Web Development FrameworksNavigating the Hype and Realities of Web Development Frameworks
Navigating the Hype and Realities of Web Development Frameworks
 
Top Things to Know about .NET 6
Top Things to Know about .NET 6Top Things to Know about .NET 6
Top Things to Know about .NET 6
 
Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024
 
Selecting the Best Javascript Web Framework
Selecting the Best Javascript Web FrameworkSelecting the Best Javascript Web Framework
Selecting the Best Javascript Web Framework
 
Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
10 Important Web Development Tools Every Developer Should Know.pdf
10 Important Web Development Tools Every Developer Should Know.pdf10 Important Web Development Tools Every Developer Should Know.pdf
10 Important Web Development Tools Every Developer Should Know.pdf
 
How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022
 
www-valuecoders-com-blog-technology-and-apps-how-to-choose-right-web-developm...
www-valuecoders-com-blog-technology-and-apps-how-to-choose-right-web-developm...www-valuecoders-com-blog-technology-and-apps-how-to-choose-right-web-developm...
www-valuecoders-com-blog-technology-and-apps-how-to-choose-right-web-developm...
 
FICO Open Shift presentation
FICO Open Shift presentationFICO Open Shift presentation
FICO Open Shift presentation
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 

Startup Engineering Cookbook

  • 2. Overview Slide Topic 3 Purpose 4 The Lean Startup 5 Implementation Options 6-17 Architecture Options 18-22 Sample Architecture 24-28 Monitoring 29-30 Disaster Recovery 31-32 Scaling 33-34 Internal Tools 35 The End 36 Contributors
  • 3. Purpose Covering the various technical options when going from a concept to building a website and beyond... 3 [meant for a non-technical audience]
  • 4. The Lean Startup It’s an approach for launching businesses and products, that relies on validated learning, scientific experimentation, and iterative product releases to shorten product development cycles, measure progress, and gain valuable customer feedback. [ Wikipedia ] It is THE industry bible for startups...READ IT. [ The Reality ] 4
  • 5. Implementation Options There are 3 options for building a website: 1 Build internally 2 Outsource 3 Hybrid - hire a technical lead Building a website is like the Kama Sutra... many ways to accomplish “it” 5
  • 7. Infrastructure Provider The website will have to reside on a computer for the world to see. 
 
 Options: Amazon Web Services (AWS), Google Cloud Platform, Heroku, local hosting provider, Microsoft Azure, Netmagic, RackSpace 
 
 Our choice: Amazon Web Services (AWS). They are the #1 leader in web infrastructure services also known as cloud services. In addition, they have a free 1 year trial which allows you to try many of their services at zero cost. After 1 year they will bill you based on usage of their services. web hosting services 7
  • 8. Central vs. Distributed The old way of designing the infrastructure for a website was to put all the resources such as databases, files, images, etc... on the same server. The problem is if your database is slow and everything else is fine, you have to upgrade the entire server and disrupt the other functions.  By distributing the resources you can quickly pinpoint the bottleneck and scale that particular resource. distributed web architecture Central Our choice: Distributed Architecture. Distributed Computing Database Static Files Computing, database, files, etc... 8
  • 9. Managed vs. Self-Service If your team is technical it might not be technical in terms of hardware. Just because someone knows a programming language does not mean they have the infrastructure knowledge to run a website. Some startups prefer to outsource the management of their hardware to a hosting provider or use the “premium” option of a cloud service provider. Our choice: Self-Service. The tools that are provided by AWS are quite powerful and easy to use for managing the entire AWS infrastructure. managed server hosting 9
  • 10. Operating System There are only two options Microsoft Windows or Linux. Windows is limited in the type of programming languages that you can run on the server. Linux is open source and has a large community that is continually improving the operating system. Within Linux there are many options such as Debian and Red Hat to choose from, but are all pretty similar in their offerings. Our choice: Linux. Linux is usually cheaper to run and used by more websites than any other platform. Part of the LAMP stack - Linux (operating system), Apache (web server), MySQL (database) and PHP (programming language). linux hosting 10
  • 11. Software that delivers web pages from the server to a clients web browser. Options: Apache, Lighttpd, Microsoft Internet Information Server (IIS), Nginx, Node.js, Rails, Tornado Our choice: Apache. It’s part of the LAMP stack and is widely used by many websites. Web Server apache web server 11
  • 12. The heart of any web based application is the database since it stores all the user information and everything else related to the web application. Options: Amazon DynamoDB, Cassandra, CouchDB, Microsoft SQL, MongoDB, MySQL, Oracle, SimpleDB Our choice: MySQL. It’s part of the LAMP stack and widely used by many websites. Database mysql nosql 12
  • 13. If you ask 4 programmers which is the best language, you will most likely get 5 different answers. If you are building a website on a Windows environment then you can choose .NET, for Linux there are several choices. Options: Clojure, Microsoft’s .NET, Perl, PHP, Python, Ruby Our choice: PHP. It’s part of the LAMP stack and more importantly has a large community so finding people to hire with PHP knowledge is better. Back End Language web php languages 13
  • 14. Instead of re-inventing the wheel it’s better to use a pre-existing framework to start building an application. Frameworks provide a foundation where developers’ code can be neatly arranged. Also, documentation, common problems, solutions, tips and advice can be shared online in an open source manner. Options: CakePHP, CodeIgniter, Laravel, Symfony, Yii Framework, Zend Framework Our choice: CodeIgniter. One of the fastest performing frameworks and very active support community. PHP Framework php framework 14
  • 15. This is what the consumer sees on their phone, tablet or computer screen. Previously, the trend was to create a website design that was different for each type of device that was accessing the site. Now everyone is moving towards a “responsive” design, which means you design a single site that can be viewed on any device that a consumer may own. Options: Bootstrap, Foundation, jQuery UI, Kendo UI Our choice: Bootstrap. It was developed by Twitter and released as an open source project which means there is a large community of users. Front End UI Framework front end framework 15
  • 16. Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. It’s a service that will make your life easier as you will be able to keep track of the changes to your code base. Options: BeanStalk, Bitbucket, GitHub, ProjectLocker, Springloops Our choice: Bitbucket. They have a free plan that allows 5 users which should accommodate any startup. Version Control Service git version control service 16
  • 17. You can interact with your online version control service using the command line interface of your computer. However, many people prefer to use a graphical front end which is usually referred to as a git client. Options: Gitbox, GitHub, SourceTree, Tower, Versions Our choice: SourceTree. They have a Mac and Windows client which are both free. The software is from the same people that provide the Bitbucket service, so they very well together. Version Control Client git client Tower Versions 17
  • 19. UI is a small piece 19
  • 20. Website Roles 20 Visually creates the user interface (UI) and the overall user experience (UX) Front End Engineer Back End Engineer Operations Engineer Browser Server UI/UX Designer Converts the UI/ UX design into Bootstrap, HTML5, CSS, JavaScript, etc... Converts the business logic into computer code using PHP, Python, PERL, .NET, etc... Manages the servers, databases, DNS information, and other website infrastructure
  • 21. Day 0 Elastic Compute Cloud (EC2) t1.micro RDS MySQL t1.micro S3 Region: APAC- Singapore Single Region, Single Availability Zone (AWS Free Tier Program) Users Internet 21 Availability Zone: AP-Southeast-1a
  • 22. Day 0+X RDS MySQL S3 Single Region, Multi Availability Zones The fault tolerant design allows for one of the availability zones not being available. Users Internet Database Replication Elastic Compute Cloud (EC2) RDS MySQL Availability Zone: AP-Southeast-1b Elastic Load Balancer (ELB) S3 Elastic Compute Cloud (EC2) 22 Region: APAC- Singapore Availability Zone: AP-Southeast-1a
  • 23. RDS MySQL S3 Users Internet RDS MySQL Elastic Load Balancer (ELB) S3 Day 0+2X Multi Region The fault tolerant design allows for one of the regions not being available. The design also allows for users to be load balanced based on geographic location. Availability Zone: US-East-1a Elastic Compute Cloud (EC2) Elastic Compute Cloud (EC2) 23 Region: APAC- Singapore Availability Zone: AP-Southeast-1a Region: US East (N. Virginia)
  • 25. By monitoring the infrastructure, you can proactively plan if certain components need to be upgraded. Infrastructure Performance 25
  • 26. Understanding how the application affects the infrastructure is essential. If there are very few users but the servers and databases are consistently running at peak utilization, that might indicate a programming issue. Application Performance 26
  • 27. Google Analytics is the industry standard for tracking website statistics such as hits, users, content viewed, conversions and many other statistics. Traffic Analysis 27
  • 28. Once a user starts to use your web application you will want to engage with the customer. Intercom.io allows you to send emails based on pre-defined rules such as “send a welcome email to a new user”. User Engagement 28
  • 30. Having a disaster recovery plan in place is critical to ensure the website can recover from a catastrophic event. Taking a daily/weekly/monthly snapshot of the servers, files and databases is a minimum requirement. The daily/weekly/monthly backup schedule is sometimes referred to as the son/father/ grandfather rotation schedule. Backing Up & Restoring If disaster does strikes and a complete backup strategy is in place, then it should not be very difficult to restore the website from the backups that are being maintained. 30
  • 32. Hopefully, the website you launch is a massive success and leads to your website having a tough time handling the load. With many cloud service providers you can automatically add additional resources based on predefined rules. An example is below: Adding Resources Rule Action If CPU utilization goes above 60% during a 5 minute period Upgrade the server to the next larger size to handle the additional load 32
  • 34. Team communication is critical in a fast paced web business. Yammer is an internal social network for employees. Pivotal Tracker is a project management tool. HipChat is an instant messaging application. Team Communications 34