1 00:00:00,160 --> 00:00:02,920 ‫So let's talk about AWS code commit now. 2 00:00:02,920 --> 00:00:06,460 ‫So the concept we need to introduce is version control. 3 00:00:06,460 --> 00:00:08,870 ‫It's the ability to understand the various changes that 4 00:00:08,870 --> 00:00:10,954 ‫happen to code over time and possibly roll back. 5 00:00:10,954 --> 00:00:12,810 ‫So to have version control, 6 00:00:12,810 --> 00:00:14,930 ‫that means that you can see what happened in the past, 7 00:00:14,930 --> 00:00:17,190 ‫who committed some code, what changed, 8 00:00:17,190 --> 00:00:20,026 ‫what was added was removed and so on, and then roll back. 9 00:00:20,026 --> 00:00:21,731 ‫And so to get version control, 10 00:00:21,731 --> 00:00:24,250 ‫there is an underlying technology that's very, 11 00:00:24,250 --> 00:00:26,491 ‫very popular nowadays called Git, 12 00:00:26,491 --> 00:00:29,730 ‫and a Git repository can be synchronized on your computer, 13 00:00:29,730 --> 00:00:32,677 ‫but it's also very usually uploaded onto a central online 14 00:00:32,677 --> 00:00:33,797 ‫repository. 15 00:00:33,797 --> 00:00:36,870 ‫And the benefits of having a central online repo for a git 16 00:00:36,870 --> 00:00:39,280 ‫repo is that you can collaborate with other developers. 17 00:00:39,280 --> 00:00:40,410 ‫So it allows, you know, 18 00:00:40,410 --> 00:00:42,457 ‫organizations up to maybe hundreds of thousands developers 19 00:00:42,457 --> 00:00:45,277 ‫to work on the same code at the same time, which is amazing. 20 00:00:45,277 --> 00:00:48,030 ‫Make sure that also the code is backed up somewhere. 21 00:00:48,030 --> 00:00:51,290 ‫So the code lives on the cloud and not on just someone's 22 00:00:51,290 --> 00:00:52,560 ‫computer, 23 00:00:52,560 --> 00:00:54,635 ‫make sure it's fully viewable and editable so we can see who 24 00:00:54,635 --> 00:00:58,676 ‫committed to what line of code when, and we can revert them. 25 00:00:58,676 --> 00:00:59,650 ‫You can roll back. 26 00:00:59,650 --> 00:01:03,140 ‫You can do a lot of good things with code repositories 27 00:01:03,140 --> 00:01:05,020 ‫And so with Code Commit, well, 28 00:01:05,020 --> 00:01:08,250 ‫we have a code repository in AWS and our developers. 29 00:01:08,250 --> 00:01:09,083 ‫For example, 30 00:01:09,083 --> 00:01:12,400 ‫Emma and John can collaborate and push and pull code from 31 00:01:12,400 --> 00:01:13,710 ‫our code repo 32 00:01:13,710 --> 00:01:16,050 ‫So why do we want to use Code Commit? Well, 33 00:01:16,050 --> 00:01:17,560 ‫Git repository can be quite expensive. 34 00:01:17,560 --> 00:01:20,080 ‫And so there is like some industry, that offer, 35 00:01:20,080 --> 00:01:22,134 ‫third party services, which is github,Gitlab, 36 00:01:22,134 --> 00:01:25,420 ‫Bitbucket and so on, but the bill could be pretty high, 37 00:01:25,420 --> 00:01:27,800 ‫but by using code commits, which is on AWS, 38 00:01:27,800 --> 00:01:30,310 ‫you get a private git repository 39 00:01:30,310 --> 00:01:31,240 ‫that's because your code 40 00:01:31,240 --> 00:01:35,147 ‫actually lives and stays within your VPC on AWS cloud. 41 00:01:35,147 --> 00:01:37,517 ‫There's no size limit on the repo. 42 00:01:37,517 --> 00:01:40,020 ‫That means that you can scale to, you know, 43 00:01:40,020 --> 00:01:41,900 ‫gigabytes of code, if you want it to 44 00:01:41,900 --> 00:01:44,170 ‫it's fully managed is highly available. 45 00:01:44,170 --> 00:01:47,270 ‫And the Code, as I said, is only in the AWS cloud. 46 00:01:47,270 --> 00:01:50,200 ‫So that means there is increased security and compliance, 47 00:01:50,200 --> 00:01:51,033 ‫and maybe for example, 48 00:01:51,033 --> 00:01:53,858 ‫unacceptable for you to have your code elsewhere then on 49 00:01:53,858 --> 00:01:54,920 ‫AWS 50 00:01:54,920 --> 00:01:57,590 ‫also could commit a security. So it's encrypted, 51 00:01:57,590 --> 00:02:00,250 ‫you have access control using IAM and so on, 52 00:02:00,250 --> 00:02:02,984 ‫and you have integrations within code commit and industry 53 00:02:02,984 --> 00:02:06,520 ‫standards for such as Jenkins or CodeBuild or other CI 54 00:02:06,520 --> 00:02:09,000 ‫tools, which make it a great choice to store your code. 55 00:02:09,000 --> 00:02:12,390 ‫If you want it to now Code Commit as very, 56 00:02:12,390 --> 00:02:13,640 ‫very good security. 57 00:02:13,640 --> 00:02:15,920 ‫So interactions are done using this standard Git command 58 00:02:15,920 --> 00:02:18,460 ‫line, but then you have authentication on top of it. 59 00:02:18,460 --> 00:02:21,610 ‫It could be using SSH keys. In which case, as a user, 60 00:02:21,610 --> 00:02:24,720 ‫you can configure your SSH keys to be able to 61 00:02:24,720 --> 00:02:27,080 ‫go into a Git repo or HTTPS. 62 00:02:27,080 --> 00:02:30,540 ‫If you wanted to get access using standard login and 63 00:02:30,540 --> 00:02:33,550 ‫password to get repo. for authorization, 64 00:02:33,550 --> 00:02:36,340 ‫you have IAM policies are used to manage users and roles 65 00:02:36,340 --> 00:02:38,420 ‫permissions to the specific repos, 66 00:02:38,420 --> 00:02:40,900 ‫which is nice because that means you only have one way of 67 00:02:40,900 --> 00:02:43,540 ‫managing security in AWS 68 00:02:43,540 --> 00:02:44,373 ‫Encryption. 69 00:02:44,373 --> 00:02:48,250 ‫So your code is ultimately going to be encrypted using KMS. 70 00:02:48,250 --> 00:02:50,670 ‫And that means that no one else, but you can retrieve it. 71 00:02:50,670 --> 00:02:53,160 ‫And also while you push your code to code commit, 72 00:02:53,160 --> 00:02:55,910 ‫you have encryption in transit because you use HTTPS or SSH 73 00:02:55,910 --> 00:02:57,900 ‫protocols, which are both secure. 74 00:02:57,900 --> 00:02:59,980 ‫And then in case of cross account access, 75 00:02:59,980 --> 00:03:01,950 ‫of course you would not share you as SSH keys or your 76 00:03:01,950 --> 00:03:03,650 ‫credentials with someone else. Instead, 77 00:03:03,650 --> 00:03:06,330 ‫you would create an IAM role in your accounts and then use 78 00:03:06,330 --> 00:03:11,330 ‫STS the AssumeRoleAPI to get access to a code commit repo. 79 00:03:11,710 --> 00:03:13,420 ‫So just to finish your high-level overview, 80 00:03:13,420 --> 00:03:17,000 ‫because you may be very well familiar with GitHub. 81 00:03:17,000 --> 00:03:19,830 ‫So CodeCommit versus Github is almost a one-to-one 82 00:03:19,830 --> 00:03:21,600 ‫comparison in some ways, 83 00:03:21,600 --> 00:03:24,660 ‫but so codecommit and Github support code reuse also 84 00:03:24,660 --> 00:03:26,640 ‫called pull requests. 85 00:03:26,640 --> 00:03:29,750 ‫There is both integration with code build and there is a 86 00:03:29,750 --> 00:03:32,853 ‫authentication with SSL and HTTPS for both codecommit and 87 00:03:32,853 --> 00:03:35,800 ‫Github. In terms of security. Now it's very different. 88 00:03:35,800 --> 00:03:38,720 ‫So Github support to Github users and SSO if you have 89 00:03:38,720 --> 00:03:39,850 ‫enterprise level, 90 00:03:39,850 --> 00:03:42,520 ‫but codecommit is fully integrated with AWS. 91 00:03:42,520 --> 00:03:44,340 ‫So you have IAM users and roles 92 00:03:44,340 --> 00:03:45,530 ‫for hosting while your code 93 00:03:45,530 --> 00:03:48,640 ‫is only on AWS for codecommit, whereas Github, 94 00:03:48,640 --> 00:03:50,700 ‫you can host dates directly on GitHub itself, 95 00:03:50,700 --> 00:03:51,760 ‫or if you'll get an enterprise, 96 00:03:51,760 --> 00:03:53,760 ‫you can host it on your own servers. 97 00:03:53,760 --> 00:03:56,621 ‫The UI for codecommit, may I say is quite minimal. 98 00:03:56,621 --> 00:03:59,654 ‫Whereas I really like GitHub UI it's fully featured, 99 00:03:59,654 --> 00:04:02,720 ‫but again, if you're just using it as a code repo, 100 00:04:02,720 --> 00:04:04,980 ‫then maybe you want to go towards code commit for many 101 00:04:04,980 --> 00:04:07,110 ‫reasons that I've just said it from before. Okay. 102 00:04:07,110 --> 00:04:09,030 ‫So that's it for an overview of codecommit. 103 00:04:09,030 --> 00:04:09,863 ‫I hope you liked it. 104 00:04:09,863 --> 00:04:12,553 ‫And I will see you in the next lecture for some practice.