Lesson1 Intro
Lesson1 Intro
Introduction
2
Main concepts
• Cloud computing
• Why do we need it?
• What is it?
• What are the benefits?
• Cloud services models
• IaaS (Infrastructure as a Server)
• PaaS (Platform as a Service)
• FaaS (Function as a Service)
Evolution to the cloud
Issues with running an app in local
• Not reachable from the internet
• A resource is used up by other apps
• When you shot down the laptop, the app stops
Running an app on the server
• Benefits: Reachable from the internet, the server is dedicated to the app only,
running all the time 24x7.
• Issues: Not scalable. Not highly available. All work on you. App code grows
which adds complexity. One day, it is impossible to add new features. All you
do is fix bugs.
Running an app on the cloud server – Solves all issues above.
What is the Cloud Computing?
• Cloud Computing is the on-demand delivery of all types of resources
as a web service such as computing, database, big data, AI, VR, IoT,
blockchain, quantum technologies, robotics, satellite, you name it.
• Cloud Computing is a tool to build evolvable applications. The nature
of life is to evolve (develop gradually from a simple to a more complex
form).
• Think of the cloud as software that helps you build your app including
all required components such as infrastructure, networking, storage,
IP, CPU, memory, database, and so on. You use other software
services to build your software.
Cloud is like a Lego. You got all
the pieces to build something
great. AWS has sophisticated
services to build an app. Now
they are focused on much
bigger problems such as
quantum, simulation, health
care, supply chain, aerospace,
and so on.
What are services?
A web service is an API. In the traditional world, we write an API in front of a
database that does the CRUD. When you use the cloud, the database itself is
already an API (Database as a Service). So, you don’t have to build your own API.
That is the power of the cloud! You have to change your mindset. Instead of
building your own, just use services out there.
Web services are just HTTP endpoints (RESTful or SOAP). We can call and use AWS
services in 3 ways.
1. AWS console – Calling AWS services from the web app. It is just a front-end app
calling Amazon’s web services when you hit buttons.
2. CLI - Calling the same AWS services from a computer terminal. You need to
install AWS CLI and provide tokens. Great for quick experiments.
3. SDK – Calling the same AWS services from your application. For example,
storing data in the database.
Cloud is not
very different
from
traditional
infrastructure.
Why the cloud?
From developer perspective:
• Do less and achieve more. Most work is done by the cloud provider.
Developers only focus on business logic. No code or low code. For example,
using AWS Simple Notification Service. You can send emails to clients without
writing any code.
From business perspective:
• The cloud helps businesses save money. Running some workloads in the cloud
is much cheaper in most cases. With the cloud, one developer can do work in
one month that used to be done by a team of developers in months.
Applications are high availability. So, customers are happy and no money loss.
• It gives businesses agility. Startups need to build an app in a month.
Benefits of the cloud
• Do less and achieve more – The cloud provider deals with technical
problems. It lets developers focus on the application.
• Cost-effective – The cloud is cost-effective in most cases, especially when
using serverless services.
• Secure – There are many security services that you can stack on top of your
applications that protect against attacks at all layers. All data in transit and
at rest is encrypted.
• Performant – The globe is in your hand with the cloud. You can serve users
all over the world without losing performance. There are many services in
the cloud that improve the performance of the application.
• Reliable – Because the app runs and data is stored in multiple data centers,
even in multiple regions. That improves the high availability and fault
tolerance of the application and the durability of the data. The cloud also
helps your app to scale.
Benefits of the cloud
• Agility – Agility is crucial in business that gives advantages. You can deploy
your application in multiple regions globally in minutes. There are also
tools like Amazon Amplify that helps developers to build full-stack web and
mobile applications in minutes.
• You don’t have to guess capacity – In the traditional infrastructure, you
have to guess the server size that meets the need. But that could be too
much or too low. If the server is too big, it will cost more. If the server is
too small, the application goes down or gets slower due to full utilization.
Cloud resources are elastic.
• Built-in metrics – Metrics are created along with the resource in the cloud.
Metrics are useful information about the resource for monitoring and
troubleshooting purpose. For example, when you create EC2 virtual
machines in the AWS cloud, CPU utilization metrics are also created in the
CloudWatch.
Models of Cloud Services
OS OS OS OS