In the past, web developers would use either Mac OS-X or Linux as the base for a development environment. On top of that they would install maybe a hundred or so developer tools. Multiple projects might require different tools, or incompatible versions of the same tools. Now cloud services make each project a separate configurable service instance, removing some of the complexity and compatibility issues from development environments.
With cloud services, it does not matter what local computer one uses. What matters is that one can connect to the Internet with a web browser which fully supports HTML5. Previously programmers had to carry their development environments around, meaning they had to use laptops. Cloud services allow programmers to use available computers wherever they are.
Currently several cloud services are required to provide all the features a programming team would require for web development. This document describes one selection of cloud services which results in a flexible web programming setup. Other, possibly better, choices may exist, but that discussion is beyond the scope of this guide. Simply read this guide if you want to figure out how to develop a website using the Internet.
This project uses free services which, in combination, present the essential elements of a full web development environment. Typical web development needs and the cloud services which emulate them are listed in the following table.
Development Environment Need | Cloud Service Equivalent and URL | |
---|---|---|
Gmail | https://mail.google.com/ | |
Linux console | Cloud9 | https://c9.io/ |
programming language (RoR) | Cloud9 | https://c9.io/ |
text editor (Kate) | Cloud9 | https://c9.io/ |
code repository (Git) | Cloud9 | https://c9.io/ |
public repository hosting (Git) | GitHub | https://github.com/ |
private repository hosting (Git) | Bitbucket | https://bitbucket.com/ |
web server | Heroku | https://heroku.com |
database (postgreSQL) | Heroku | https://heroku.com |
Note
Heroku includes client services: the Heroku Toolbelt, Foreman, and Git.
This project uses many websites at once. When opening links, please right-click on each link, then select Open Link in New Tab. To make a tab into a separate window, click on the tab marker at the top and drag the tab away until it detaches. Similarly, tabs may be moved from one browser window to another by dragging the tab marker between window title bars.
In this project, it helps to organize the desktop into two separate browser windows: one window containing this guide, and another window containing tabs for github, cloud9, heroku, or anything else. This technique allows you to read the instructions while working, without having to go back and forth between the instructions and the other windows.
This project requires registration with a number of different cloud services. Each service has its own login requirements, as the following table shows.
Service Login Id | Character Requirement |
---|---|
Gmail username | Only letters (a-z), numbers, and periods |
Gmail password | 8+ characters: letters, numbers, spaces, or punctuation |
GitHub username | alphanumeric characters or dashes not beginning with dash |
GitHub password | 7+ characters containing a lowercase letter and a number |
Heroku username | your gmail address |
Heroku password | 6 or more characters: letters, numbers, or symbols |
Cloud9 username | Any character string, unique in Cloud9 |
Cloud9 password | Any character string |
A unique email address, username, and password which will work in all the above websites would be helpful. Here are the requirements for this project:
Identifier | Proposed pattern | Example |
---|---|---|
email name | ALT.first.last@gmail.com | ALT.Dearheart.Davenport@gmail.com |
username | alt-lastname | alt-davenport |
password | 8+ char, 1 Upcase, 1 digit | D34rh34rt |
Warning
Use the email name format shown above. Do not use periods in your username; this is prohibited. Do not use spaces in any of the entries above.