Python for Entrepreneurs Transcripts
Chapter: Deploying to the cloud
Lecture: Hosting

Login or purchase this course to watch this video and the rest of the course contents.
0:01 We'll start a deployment by setting up for an account on Digital Ocean, and getting it all set up with a droplet,
0:08 which is the equivalent of a virtual private server that we can log into and deploy our application to.
0:14 Head over to in your web browser and click the sign up button, and if you already have an account, go ahead and log in,
0:21 but I'm going to walk through this with a brand new account. After you've entered your email and a password
0:26 it's going to ask you to confirm, just go to your email inbox and click on the link that will confirm your account. Once you've confirmed your account,
0:35 you're going to have to enter some billing information to verify that you are a legitimate user. Now the great part is that there is a promo code
0:41 for every single student for 50 dollars to get started with Digital Ocean, but you will still need to enter your credit card information
0:46 or connect your PayPal account to get started. So, enter your billing information, then scroll down, select the link that says I have a promo code,
0:55 and when this modal box pops up, go to sign into your account and then click account at the top navbar, go into student offers
1:03 and you'll see Digital Ocean credit which you can claim for free. Now, this is my code, it won't work anymore I've already used it sorry,
1:10 but you'll copy and paste this and then enter that into the promo code field. Once you've entered your payment information
1:18 and applied your promo code, you get to the third screen in Digital Ocean's onboarding flow, which is to create a new droplet,
1:24 click the create a new droplet button, and this is how we're going to provision our first server. First we are going to choose an image,
1:31 this is the distribution that we're going to deploy for our server. Take the default one of Ubuntu and you're going to want to be
1:37 on 16.04 which means April 2016, now this is an LTS release long term support, so even if it's a year or two out of date, that doesn't matter
1:46 because they're still applying updates and security fixes for the next five years from the initial release of this operating system.
1:54 So Ubuntu 16.04 should be your choice for distribution. Scroll down a little bit and you get to choose a size,
2:00 now I recommend you go with a ten dollar a month plan, just for getting started, you can always resize up and down your server,
2:07 but this will give you five months of runway with just the Digital Ocean credit that you got. If you feel like the application that you are building
2:15 is more compute intensive or needs more memory, feel free to choose a different option. I often use ten dollar a month
2:19 servers for Python applications and they work great. Keep scrolling down to the data center region, and pick the one that's closest to your customers,
2:27 in my case I'll just choose San Francisco since I am based in San Francisco and of course if you're in Europe you're going to want to
2:34 choose something in Europe, if you're in Asia Pacific region, probably worth choosing a server there,
2:39 that way your server is as close as possible to your customers. Keep scrolling down and for now, we'll just leave the additional options
2:44 unchecked but backups can be extremely useful, monitoring can be very useful, so these are options that you want to take a look at later on.
2:51 Now we need to add an ssh key. So click new ssh key, and then there's two ways we can handle this,
2:57 one- you can use the ssh key that we created earlier in the git chapter, or we can create a new ssh key, just in case you've forgotten,
3:04 I'm going to create one right now on the command line. I've shifted over into Ubuntu 16.04, this is the same operating system release
3:11 as what we are going to deploy to, so in this chapter I'm just going to use Ubuntu 16.04,
3:16 that way we can mimic the environment that we're working with locally and the environment we're going to deploy to.
3:23 You've already got your development environment set up, so don't worry if you're not using Ubuntu for development,
3:28 if you're using Mac or Windows that's totally fine, just know that ultimately your application is going to be running on Linux,
3:33 the Ubuntu distribution. Alright, let's create that ssh key. So we use the ssh keygen command, and we're going to give it
3:40 the type of an RSA key with 2048 bits, if any of this is confusing, feel free to jump back to the git chapter where we go
3:48 through creating all the ssh keys for working with our git repositories.
3:51 All right in this case I'm just going to save this file under my home directory, I called it do deploy. I create two files, one is the private key,
4:00 this one that we've named here, and there will be a public key that we can share that has the .public extension at the end.
4:06 We're not going to want to use a pass phrase because we're going to use this key in order to automate our deployments.
4:11 Alright now this is generated, we're going to take a look at the contents of the public version of this key.
4:21 Now copy and paste this bit, the entire thing, and we'll paste it over into here, and then give it a name that you're going to remember.
4:37 So my case blue yellow jackets prod ssh key. Click add ssh key, now we're going to be able to use our private key
4:46 in order to connect as soon as this server starts up, just create a single droplet and if you want you can choose
4:52 a specific host name and then click the create button. Now you'll have to wait just a few minutes,
4:58 server is being provisioned, and then eventually it'll start up. Sweet, now our server is ready to go and we can copy this IP address,
5:05 and now let's just make sure that we can connect to the server, we're going to use the ssh command, and the -i argument,
5:13 i is used to specify a particular private key rather than your default private key which is stored in the .ssh directory
5:21 for your user account, in this case we're going to point it to the one that we just created, because it is the private key version
5:27 that will allow us to authenticate against the public key that we used when we created the server.
5:33 So this is home matt do deploy, and then we're going to say root, so the root user is the one that we're going to use to initially connect,
5:42 and then we paste the IP address, the Digital Ocean gave to us. We'll get prompted, are you sure you want to connect to the server- say yes,
5:52 and now we've connected to a remote server as root. So now we've got our server ready to go,
5:59 and now over the next few videos, we'll start configuring the server so that they can run our application and it will also be locked down
6:05 and secure against unauthorized access attempts.

Talk Python's Mastodon Michael Kennedy's Mastodon