- Cloud is like electricity
- only pay for what you need
- don't worry about how & when power plants upgrade to the latest technology.
- you don't manage scaling, e.g. many people can move to town and light will stay on
- Cloud computing
- Solves management of hardware and software
- = Renting resources, like storage space or CPU cycles, on another company's computers
- Flexible and cost-efficient,
- E.g. you only pay for what you use.
- Cloud Provider
- Provides cloud computing services
- E.g. Microsoft, Amazon, Google
- Typical services:
- Compute power: such as Linux/Windows servers or web applications
- Storage: such as files and databases and blobs
- Networking: such as secure connections between the cloud provider and your company/datacenter
- Analytics: such as visualizing telemetry and performance data
- Choose how you want work to be done based on your resources and needs.
- Virtual Machines (VM)
- Emulation of a computer, like your desktop / laptop
- Includes operating system and hardware, you can install any software on it.
- More control and responsibility over maintenance.
- Cloud provider runs it for you in one of its datacenters
- Often sharing that server with other VMs
- Containers
- Consistent, isolated execution environment for application
- Similar to VM but they don't require guest operating system
- They can run on different guest systems
- Highly portable, can run on-premises or in the cloud with often no changes to application.
- Takes few seconds/lesser time to start up as there's no OS to initialize
- They can run on different guest systems
- Application and its dependencies are packaged into a container
- Docker
- Open source
- The leading platform for managing containers.
- Lets you run application code without creating, configuring, or maintaining a server
- Your application is broken into separate functions that runs when triggered by some action/event
- Good for automation e.g. serverless process that automatically sends an email confirmation after a customer makes an online purchase.
- pay for the processing time used by each function as it executes.
- ❗On contrast, VMs and containers are running even if the applications on them are idle.
- Most devices and applications read and/or write data
- E.g. when leaving a voicemail
- Cloud providers offers different services
- e.g. for storing a text you can use file on disk.
- e.g. for relationships in address book, you can use a database
- Advantage of a cloud-based data storage is you can scale to meet your needs.