Are you a non-technical founder confused about the technology to deploy for your new website? The presentation covers the various options available for building a website and beyond...
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
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