Getting Deployed with Digital Ocean
Tags: tutorial, beginners, cloud, startup
Published: 2022-06-26 22:42:20

## WHAT IS DEPLOYMENT?

_"Application Deployment, also known as Software Deployment, is the process of installing, configuring, updating, and enabling one application or suite of applications that make a software system available for use, like facilitating a certain URL on a server."_[[1]](https://www.vmware.com/topics/glossary/content/application-deployment.html#:~:text=Application%20Deployment%2C%20also%20known%20as,certain%20URL%20on%20a%20server.)

There are many providers of deployment service, each with their own benefits and flaws. Deciding which ones are optimal to use for your application will be a huge asset in becoming the best developer you can be. Today we will be talking about one particular deployment service provider: **Digital Ocean**



![Digital Ocean](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/err2e5xvr6egtk5kvaot.png)

## ABOUT DIGITAL OCEAN
Digital ocean is a cloud-based deployment service that is geared towards helping developers, startups, and small-medium sized businesses get their projects up and running which is why its the perfect platform to understanding the basics of deployment.

## GETTING STARTED
After creating your account on [Digital Ocean](https://www.digitalocean.com/), you'll be able to create your first project.
![create](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq71av3pjes11m969p28.JPG)
After clicking the + New Project button, you will be prompted to provide a name, description, and provide a description for the purpose of your project.

![createProject](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1fzhhtq8jcoorfkp4gt.JPG)

For me, I will be selecting the "Class Project/Educational Purposes" option.

Once your project has been created, you can select what type of product want.

## PRODUCTS

Digital Ocean offers a variety of products which include:

- **Droplets**: Linux-based virtual machines (VMs) that run on top of virtualized Hardware[[2]](https://www.digitalocean.com/products/droplets). These are essentially an individual server that you can use by itself or part of a larger cloud-based infrastructure.

- **Kubernetes**: a service that automates software development, project scaling, and management. Useful when you have an application that is being deployed across multiple servers. This provides an open source API to orchestrate each of the VMs run based on their available resources and resource requirements.

- **App**: service that allows the user to directly publish code to Digital Ocean's servers. Can build your code directly from your GitHub, GitLab, or public Git repositories and publish the app straight to the cloud. Provides lifecycle management services, such as scaling, push-to-deploy support, DBM (database management) and integration.

There are many more products/services but these are some of the more common ones you'll see as you are just learning about deployment.

## COST
Digital ocean provides a large amount of flexibility on pricing depending on your application's resource needs. A full listing on their pricing can be found here: https://www.digitalocean.com/pricing but as this blog is geared towards beginners who want to learn the basics of deployment, we will choose their "most used" product as our example, **droplets**.


![droplet](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qa168ysp1zvjl0ec68hm.JPG)
The starting price for the most basic droplet is currently $5/month but can go up depending on you the expected resource requirements of your application. Droplets are a great way to get started because they get your app up, running, and scaled with increased traffic flow.


![prices](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01he2yd55os0gg1z7y6u.JPG)

See the link below for a full, updated listing of their droplet prices. As mentioned it is highly flexible and can cater to your app's specific requirements.
[droplet prices](https://www.digitalocean.com/pricing/droplets)

## CREATING YOUR DROPLET
**Choose Your Distributions System**

![Distributions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wpb6gc7xbahhng47hm7d.JPG)
Choose which distribution system your application is run on and its corresponding version.

**Choose a plan**

![Plan](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z78ekn8vevs6n5uqlh4w.JPG)
Same step as our pricings section, this is just a verification step to ensure you are selecting the right plan for your project.

**Select your DataCenter Region**

![datacenter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lwudy9y2zi7m7sqhpjr3.JPG)
Digital Ocean hosts servers globally so choose the one that will be closest to where your application will be visited most often to reduce service times.

**AUTHENTICATION**

![SSH](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dva88rgbuon8cruqs6hw.JPG)

You'll want your newly created server to be secure. There are two options: creating an SSH key or a Password. SSH Keys, or Security Shell Keys, don't have password authentication so it's safer against brute force attacks and is usually the recommended option. Hitting the New SSH Key button will provides steps to creating your key.

**FINALIZE**

![finalize](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/krvn11z28letnw32v64g.JPG)
Finally, you'll want to determine how many servers you will want to run under the same configurations you've set above and provide the hostname. If you want to host websites, you'll want to choose a hostname that is a fully qualified domain name.

Once you have done so, click the 'Create Droplet' and you are officially finished creating your server! It'll take a minute or two before your droplet is fully deployed so definitely use that time to give yourself a pat on the back.

Your newly created droplet will come with an ip address which you can now include in your application to load it onto the server!

## SOURCES

[[1] https://www.vmware.com/topics/glossary/content/application-deployment.html#:~:text=Application%20Deployment%2C%20also%20known%20as,certain%20URL%20on%20a%20server. ](https://www.vmware.com/topics/glossary/content/application-deployment.html#:~:text=Application%20Deployment%2C%20also%20known%20as,certain%20URL%20on%20a%20server.)

[[2] https://www.digitalocean.com/products/droplets ](https://www.digitalocean.com/products/droplets)