Not a physical machine, exist inside a physical machine.
Lease resources from the mother computer - virtualization.
Communicate with mother computer for any task.
Still exists, mostly used by Data Centers.
2. Internet & client-server model
It was difficult to communicate/transfer data between two computers.
Tim Berners-Lee invented WWW in 1989.
HTTP Procol invented.
Server-Client models gets popular. Server processes the request and Client sends the request.
Internet and Website idea boomed. Born Amazon, Salesforce.
3. SAAS (Salesforce)
Previously user bought CD/DVD from shop, install the software in their own PC and use it.
Why don’t we just make that software in Server, provide to user through interner? Publisher maaintain the software in server, fix bugs and upgrade version very easily by this.
Salesforce, in 1999 first launced a web-based CRM.
4. IAAS (AWS)
In special events, the website had huge traffics from users. But after the events the traffic gets low, the hardware and resources remains unused most of the time.
Amazon got the idea to rent their unused hardware/infrastucuture to users.
They introduced EC2 (Elastic Computer Cloud) where coustomer can create their own VM by HTTP request.
At special events, I can rent more same configured VM/resource. Then can release when I don’t need. Costing will be as per usage.
Intoduced S3 for storage.
Cloud Computing
What is it?
Cloud computing is a On-Demand availibility of computer system resources.
Cloud is a combination of resource allocation software and hadrware by which an end user can create his own server.
Cloud Computing Model
Private Cloud: Big companies use for their own employee and resources. They want to maintain their information secured.
Public Cloud: Comapnies that open up thier (unused) hardwares to end users.
Hybrid Cloud: Mix.
Advantages
I can setup my servers in many continents so that the latency time can be very less.
Maintaining own data center/CPU is cumbersome hard nowadays.
I can pay only what I have used in Cloud.
Cloud Computing Technologies
1. Computing
Virtual Machines
Owe hardwares from mother computer.
Container
No need to setup a new OS. The mother computer can create multiple blocks (by using Docker etc) within itself. Known as Containarization.
Serverless Computing
No need OS or container. Just deliver the code. It will run by the provider.
2. Storage
Object Storage
Store data as object. We have metadata to get details about the object. Based on the details we play, open, read the data. Like audio, video, document, email etc.
Infinately scalable, no such bindings.
Block Storage
When we need to read, write data/content very fast. Like OS, Database.
File Storage
When we need to structure data into file/folders.
Noramally used by Network admin/peoples.
3. Database
Cloud providers has utilized the open source codes and make their own version of databases. They also maintain/run these using their own hardware. They demand that these are very fast and performant.
Relational DB
Stores data like Excel, in row-column format.
MySQL, Oracle, PostgresSQL. In cloud - AWS Aurora.
NoSQL DB
Stores data in JSON, key-value format.
MongoDB. In cloud - AWS Dynamo DB.
In-memory DB
Redis. In cloud - AWS ElastiCache.
4. Network
Virtual Private Cloud:
Connect multiple devices by configuting IP/gateway.
Load Balancing:
When request comes in a high ammount to a single compouter, we create a request handler that connects to multiple computers. So, now the traffic gets divider in multiple computers.
Content Delivery Network:
Setup many (single purpose) server in different continents to serve static data like pdf, image, video etc.
5. Security
Identity and Access Management:
There will be a Super Admin, who will pay bill, manage subcribsions etc. He can manage the users also.
To manage users and user roles, Super Admin can create multiple groups where each group has a set of roles. Then he can assing user to respective group.
Firewall:
Define who can access and who cannot access the resources of a computer.
Such as Database. We can assing particular IPs who can access it.
There will be a port (virtual) related to the DB and this needs to enabled to be accessed by (permitted) user.
Encryption:
Website encryption wih HTTPS secure certificate.
Encryption at rest: when user upload a document from the application, we will encrypt it and then save to storage.
KMS: Store all the passwords encrypted a Key Management Storage. Application at first (programatically) decrypt the password from KMS and use it to login to DB.