Beginner’s Guide to Web Development
Deploying Your First Website
5 minute read
Once you’ve put in all the hard work of creating a website, you need to get it on the web so people can navigate to it and access its content. This process is called deployment. Deployment is a fancy word for “getting your website on the web,” and there are a few different parts of that process we’ll discuss below:
- Finding a domain name
- Finding a hosting service
- Uploading files with SFTP
- Deploying server-side applications
Finding a Domain Name
A domain name is the address you type into a web browser to visit a website. A few domain names you might be familiar with are facebook.com, google.com, wikipedia.org, and even codeschool.com, which is the one you're visiting right now.
Finding a domain name with
.com at the end that doesn’t already exist can be quite challenging these days because a lot of them are already taken. Fortunately, there are many alternatives thanks to new domain types (also known as top-level domains, or TLDs), such as
.technology or even
.florist. That's right — anybody can own a domain like
jon.technology these days.
How to Purchase a Domain Name
Owning a domain name costs money, and there are a number of services out there that allow you to find and purchase them, such as GoDaddy, Namecheap, and Google Domains. Pricing for domain names ranges from about $10 to $80 per year depending on the TLD you choose. Domain names ending in
.net are usually cheaper than those ending in
.coffee, for example.
With these services, you can search for available domain names — often with tools that allow you to search for multiple domain names or TLDs simultaneously. Once you’ve found a domain name you’d like, you’ll be asked to provide some legally required information about yourself as the owner of the domain name, make payment, and the domain name will be all yours.
Now that you’ve purchased a domain name, you need to associate it with a web server so that every time someone types your domain name into their browser, the website files located on your server will load. But where do you get that server?
You could use a home computer and serve files from your home internet connection, but you’d then be required to set up and maintain the computer, as well as pay for all of the bandwidth yourself. Alternatively, you could pay to rent a web server and bandwidth from a hosting service, which is often more practical and cost-effective. When you rent a server from a hosting service, they’ll give you a way to access it, upload files, and even install custom scripts to keep your site up and running.
Hosting services often start at just a few USD per month depending on the amount of storage and bandwidth you expect to use.
Setting Up Nameservers
All of your website’s files are stored and served from the web server that your hosting service provides. But how does a web browser know to look for your web server when someone types your domain name into their web browser? That’s the job of a nameserver.
A nameserver can be thought of as a phone book for the internet. Nameservers are maintained by the companies who sell domain names. They maintain a list of all the currently registered domain names around the world and the IP addresses associated with the web servers hosting their files.
Nameservers are also able to communicate with each other so that an updated list of all currently registered domain names is always available. After you purchase a domain name, you’ll be asked to configure that domain name’s nameserver information. Registering your domain name with a nameserver ensures that anytime someone types your domain name into their browser, the correct files from your server will display.
It is often possible to purchase a domain name and hosting services from the same company. In this case, your domain name’s nameserver information may be automatically configured for you.
Once your nameserver is configured, you should be able to visit your own website by typing your domain name into your browser.
Getting Your Files on the Server
Now that your domain name and web server are configured, it’s time to get your website’s files onto the server. While you may have an entire website built on your local computer, it won’t be visible to the rest of the world until it’s on your server!
In most cases, “deployment” simply means getting your website files onto the server. For more complicated websites, deployment also means creating and running the scripts necessary to keep your web server up to date with the correct version of each programming language and framework.
Writing these types of scripts from scratch requires advanced knowledge of server administration, which some individuals dedicate their entire career to learning. While it may sound difficult, most skilled developers eventually learn some aspects of server administration throughout their career.
Managed and Cloud-based Servers
Thankfully, deploying your first website likely won’t require learning all of the intricacies of managing a web server. Many hosting companies have removed the burden of learning all there is to know about server administration to make deploying websites easier. Companies like Heroku, DigitalOcean, and Amazon Web Services make it easy to rent a web server to host your website with the tools and necessary scripts already installed.
While these companies aren’t identical in the services they offer, the end goal is similar: renting a server to deploy your website or application to the web.
The process of deploying your application will vary depending on the service you end up using, as well as the language you used to develop your application, but in many cases, server providers will give you sample deployment scripts that you can configure to meet your site’s needs.