Hello, welcome to the first module. AWS introduction module one: Cloud and AWS Basics.
First of all, why cloud computing? Anyone has any ideas? Please leave them in the comments below.
In this lecture I want to hear you, what you think is the most important benefits of cloud computing. And here's my list. First of all, elasticity and ability to automate a lot of things. Then, obviously, you don't need a lot of capital expenditure, you can work any where, and your users can get your applications closer, so you have global delivery and you can make your content delivered faster.
Some of the categories of cloud computing: Infrastructure as a Service, IaaS. This is the major building block. This is the foundation. This is what you would use when you build all other categories and other infrastructures.
Platform as a Service, a typical example would be Heroku or Elastic Beanstalk. Platform as a Service, it's an application environment. It's already pre-configured for you, for your particular environment, such as Java, PHP, or Node.js. And it offers, offers a lot of things for free, should I say, quote unquote for free. It offers those things automatically, they are managed, such as scaling security updates, etc. But you have less freedom to customize your environment.
Backend as a Service, it's kind of a narrow case of a Platform as a Service with a Backend as a Service, you typically get a CRUD—create, read, update, and delete — of a backend, such as a database. So example would be Compose, which is a MongoDB service, or mLab. Another example from the AWS offerings would be RDS or DynamoDB. So they are back-ends, and of course Firebase and Parse.com, they are also Backends as a Services. Then we go even further. So the more down in the list we go, the more abstraction we have and the less ability to customize. So, Functions as a Service, another name serverless, Azure Functions or AWS Lambda, the brand offering, the service names. With Functions as a Services you don't even configure your application. So what you do, you just put a small part of your application, typically just one function or one route, and then you orchestrate using other services, such as AWS API Gateway.
And then, finally, we have Software as a Service, which is also cloud computing because you don't install any software except your client, which is browser. So most of the SaaS, they operate in the browser. A typical example is Salesforce, they were the pioneers in SaaS. Everyone uses Gmail, Google Docs, they are also SaaS. As you can imagine, with SaaS you have very little ability to customize. Some larger SaaS platforms, such as Salesforce, they offer their own programming language, but it's not like you going to build your own application inside. It's just very little customization, but then you have all the problems, all the worries, taken care for you, such as security patches, scalability, delivery, etc. etc.
So, the idea is that when you work with Infrastucture as a Service, you have to implement a lot of resiliency, a lot of the best practices yourself, so you need to know a lot of things. With PaaS and all other categories, that's taken care for you by the professionals at either AWS, or people who work at Azure, or Google, or other companies.