Sharing notes from our Cloud Infrastructure study sessions with new developers. We run these induction sessions when we have new coder joining our team, covering key tech topics all coders should know like AI, Blockchain, Cloud and Big Data, as well as other hot topics like Crypto, Metaverse, NFT, etc. They spent a week researching into the topic with some starting questions, then meet up to discuss the topic for an hour or so, followed by a week or so to write up the topic in their own words. We will update and edit these notes every now and then, and we welcome feedback and comments. Thanks.
About Us: OnDemandWorld team, we are working on a new blockchain and AI app solutions. Niftnack NFT and TechHub Jobs. MVP already on App Store and Google Play. We are building the first scalable version now. Looking for new junior devs, blockchain devs, full-stack devs, etc. Contact us for more information. Remote working mostly in 2022 unless you are in Shanghai already.
(First week, aim at around 13 hours or so in total, to research into the topic. Try to answer the following questions. Jot down notes for the meeting. 5–10 Pages.)
Tech Topic 2: Cloud Infrastructure
Cloud Computing. What is it and why is it important?
- Which are the biggest cloud providers and how best to choose one?
- Is it worth it? How to calculate the ROI and TCO?
- How does it compare with pre-Cloud, traditional IT infrastructure? Take a look at traditional 3-tier architecture.
- Understanding the following: PaaS, SaaS, IaaS, DBaaS, etc, Serverless Computing; list out some of the major players, etc.
- Computer Networking
- What is computer network? Why is it important?
- What are the common communication protocols? UDP, TCP/IP, HTTP/S, FTP, NTP, SMTP, IMAP, ETC.
- What is REST API?
- What is OAuth? (Also learn about 2FA too)
- How secure is Cloud Computing? How about multi-cloud?
- Cloud T&C
- Amazon Price Calculator
- How to become a Cloud Architect?
(And here are our notes and summary to the questions above, covered in about an hour or so of discussion. Still editing these. Feel free to leave us with comments and suggestions, thanks.)
Cloud Computing. What is it and why is it important?
Cloud computing is the delivery of computing services including storage, databases, software, and networking over the internet. Instead of maintaining their own servers and data centers, individuals and organizations can rent access to these resources from a cloud computing provider, which provides a secure, scalable, and reliable infrastructure to support their operations.
Cloud computing is important for several reasons:
- Cost-effective: Cloud computing eliminates the need for costly hardware and software investments, reducing the capital expenditure for businesses. Users only pay for what they use and can easily scale their usage up or down as needed.
- Flexibility: Cloud computing provides users with the ability to access their data and applications from anywhere in the world with an internet connection, allowing for remote work and collaboration.
- Scalability: Cloud computing allows for rapid scaling of resources to meet changing demands, without the need for physical infrastructure upgrades.
- Security: Cloud providers invest heavily in security measures to protect their infrastructure and customers’ data, reducing the risk of data breaches and cyber attacks.
- Innovation: Cloud computing allows businesses to focus on innovation and development rather than infrastructure maintenance, enabling them to bring new products and services to market more quickly.
Overall, cloud computing provides businesses and individuals with access to flexible, scalable, and cost-effective computing resources, enabling them to be more agile, innovative, and competitive in the digital age.
Which are the biggest cloud providers and how best to choose one?
There are several major cloud providers in the market, each with its own strengths and weaknesses. The most prominent cloud providers are:
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
- IBM Cloud
- Alibaba Cloud
- Oracle Cloud
- Salesforce Cloud
To choose the best cloud provider, it is important to consider several factors, including:
- Cost: Different cloud providers have different pricing models, so it’s important to compare the costs of the resources you need, such as storage, computing power, and data transfer.
- Security: Consider the security features provided by each cloud provider, such as encryption, access control, and compliance certifications.
- Scalability: Consider how easily the cloud provider can scale its resources up or down to meet your changing needs.
- Performance: Consider the speed and reliability of the cloud provider’s infrastructure, such as network latency, uptime, and response times.
- Features: Consider the additional features and services provided by each cloud provider, such as machine learning, database management, and application development tools.
- Support: Consider the level of support provided by the cloud provider, including technical support, training, and documentation.
- Integration: Consider how well the cloud provider’s services integrate with your existing infrastructure and applications.
By considering these factors and comparing the offerings of each cloud provider, you can choose the best one that meets your specific needs and requirements.
Is it worth it? How to calculate the ROI and TCO?
Determining whether cloud computing is worth the investment requires a careful evaluation of both the return on investment (ROI) and the total cost of ownership (TCO).
ROI is the financial benefit that a company expects to receive from its investment in cloud computing. It is calculated by subtracting the total cost of the investment from the total revenue generated by the investment and then dividing the result by the cost of the investment.
TCO is the total cost of owning and operating a cloud computing system over its lifetime. It includes the initial costs of setting up the system, ongoing operational costs, and any additional costs for upgrades, maintenance, and support.
To calculate the ROI and TCO of cloud computing, consider the following factors:
- Cost of hardware and software: Compare the cost of purchasing and maintaining your own hardware and software to the cost of using cloud computing resources.
- Cost of support: Consider the cost of IT staff needed to maintain and support the cloud infrastructure and compare it to the cost of hiring a third-party provider to manage the cloud environment.
- Operational costs: Consider the cost of electricity, cooling, and space required to maintain your own servers compared to the cost of cloud computing.
- Scalability: Consider the cost of scaling your infrastructure up or down to meet changing demand. With cloud computing, you can easily scale your resources up or down as needed, whereas scaling your own infrastructure requires additional hardware and software purchases.
- Security: Consider the cost of implementing security measures to protect your data and applications, compared to the security features offered by cloud providers.
By evaluating the ROI and TCO, you can determine whether cloud computing is worth the investment for your organization. Keep in mind that the benefits of cloud computing, such as scalability, flexibility, and access to the latest technology, can be difficult to quantify in financial terms but may provide long-term strategic benefits to your business.
How does it compare with pre-Cloud, traditional IT infrastructure? Take a look at traditional 3-tier architecture.
Cloud computing offers several advantages over traditional IT infrastructure, including pre-Cloud, 3-tier architecture. In a 3-tier architecture, applications are typically divided into three layers: presentation, application, and database. Each layer is supported by its own infrastructure, including servers, storage, and networking equipment.
Here are some key differences between cloud computing and traditional 3-tier architecture:
- Scalability: Cloud computing offers the ability to rapidly scale resources up or down as needed, while traditional 3-tier architecture requires manual upgrades to hardware and software, making it slower and less flexible.
- Cost: Cloud computing provides cost savings by eliminating the need to purchase and maintain hardware and software, while traditional 3-tier architecture requires significant upfront capital investment and ongoing maintenance costs.
- Accessibility: Cloud computing provides remote accessibility to applications and data, making it easier for users to access resources from anywhere with an internet connection. Traditional 3-tier architecture typically requires users to be physically located within the same network as the applications and data.
- Security: Cloud computing providers invest heavily in security measures to protect their infrastructure and customer data, reducing the risk of data breaches and cyber attacks. Traditional 3-tier architecture requires manual implementation of security measures, which can be less robust and more difficult to maintain.
- Reliability: Cloud computing providers typically offer high levels of reliability and uptime, with built-in redundancy and failover capabilities. Traditional 3-tier architecture relies on single points of failure and may experience downtime during upgrades or maintenance.
Overall, cloud computing offers significant advantages over traditional 3-tier architecture in terms of scalability, cost, accessibility, security, and reliability. These benefits have made cloud computing an increasingly popular choice for businesses of all sizes and industries.
Understanding the following: PaaS, SaaS, IaaS, DBaaS, etc, Serverless Computing.
PaaS, SaaS, IaaS, and DBaaS are all types of cloud computing services, while serverless computing is a computing model that allows developers to build and run applications without worrying about managing servers.
- Platform as a Service (PaaS): PaaS provides a platform for developers to build, deploy, and manage applications without having to worry about the underlying infrastructure. PaaS providers typically offer tools and services for developing, testing, and deploying applications, as well as scaling resources as needed. Some popular PaaS providers include Microsoft Azure, Google Cloud Platform, and Heroku.
- Software as a Service (SaaS): SaaS provides access to software applications over the internet, eliminating the need to install and maintain software on local devices. SaaS providers typically offer a range of applications, including email, productivity, and collaboration tools. Some popular SaaS providers include Microsoft Office 365, Google Workspace, and Salesforce.
- Infrastructure as a Service (IaaS): IaaS provides virtualized computing resources, including servers, storage, and networking, over the internet. IaaS providers allow customers to deploy and manage their own virtual machines, storage, and network infrastructure. Some popular IaaS providers include Amazon Web Services, Microsoft Azure, and Google Cloud Platform.
- Database as a Service (DBaaS): DBaaS provides managed database services over the internet, eliminating the need to install, configure, and maintain databases on local devices. DBaaS providers typically offer a range of database services, including SQL and NoSQL databases. Some popular DBaaS providers include Amazon Web Services, Microsoft Azure, and Google Cloud Platform.
- Serverless Computing: Serverless computing is a computing model that allows developers to build and run applications without worrying about managing servers. Serverless computing providers typically charge customers based on the amount of resources used to execute their code, rather than on a fixed monthly fee. Some popular serverless computing providers include Amazon Web Services Lambda, Microsoft Azure Functions, and Google Cloud Functions.
Major players in the cloud computing market include:
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
- IBM Cloud
- Alibaba Cloud
- Oracle Cloud
- Salesforce Cloud
When choosing a cloud computing provider, it’s important to consider factors such as cost, security, scalability, performance, features, support, and integration. Each provider has its own strengths and weaknesses, so it’s important to evaluate each option carefully to find the one that best meets your organization’s needs.
Computer Networking What is computer network? Why is it important?
A computer network is a group of interconnected computers and other devices that communicate with each other to share resources and information. Networks can be small, such as a home network connecting a few devices, or large, such as a corporate network connecting thousands of devices across multiple locations.
The importance of computer networks lies in their ability to enable communication, collaboration, and resource sharing. Here are some of the key benefits of computer networks:
- Resource Sharing: Networks allow multiple devices to share resources such as printers, storage devices, and internet connectivity, reducing costs and improving efficiency.
- Communication: Networks provide a means for devices to communicate with each other, enabling collaboration and information sharing among users.
- Centralized Management: Networks can be centrally managed, allowing administrators to control access to resources, monitor performance, and enforce security policies.
- Improved Productivity: Networks enable employees to work together more effectively, share information more easily, and access resources from anywhere, improving productivity and efficiency.
- Cost Savings: Networks can reduce costs by allowing organizations to consolidate resources and reduce duplication of hardware and software.
Overall, computer networks are essential for modern organizations and individuals, enabling communication, collaboration, and resource sharing. As the world becomes increasingly connected, the importance of computer networks will only continue to grow.
What are the common communication protocols? UDP, TCP/IP, HTTP/S, FTP, NTP, SMTP, IMAP, ETC.
There are many communication protocols used in computer networks, each with its own specific purpose and characteristics. Here are some of the most common ones:
- UDP (User Datagram Protocol): A simple, connectionless protocol used for low-latency, unreliable data transfer.
- TCP/IP (Transmission Control Protocol/Internet Protocol): A suite of protocols used for reliable, ordered data transfer over the internet.
- HTTP/S (Hypertext Transfer Protocol/Secure): A protocol used for transferring web pages and other data over the internet.
- FTP (File Transfer Protocol): A protocol used for transferring files over the internet.
- NTP (Network Time Protocol): A protocol used for synchronizing the clocks of computers on a network.
- SMTP (Simple Mail Transfer Protocol): A protocol used for sending email messages between servers.
- IMAP (Internet Message Access Protocol): A protocol used for accessing email messages stored on a server.
- DNS (Domain Name System): A protocol used for resolving domain names to IP addresses.
- SSH (Secure Shell): A protocol used for secure remote access to a computer or server.
- SNMP (Simple Network Management Protocol): A protocol used for managing and monitoring network devices.
There are many other communication protocols used in computer networks, including protocols used for video and voice communication, wireless networking, and more.
What is REST API?
REST (Representational State Transfer) API is a type of web service architecture that is commonly used for building web APIs. It is an architectural style that provides a set of constraints that developers can use to create web services that are scalable, flexible, and easy to maintain.
REST APIs are designed around resources, which can be any type of object, data, or service that can be accessed through the API. Each resource is identified by a unique URI (Uniform Resource Identifier), which can be used to retrieve, update, or delete the resource.
REST APIs use standard HTTP methods, such as GET, POST, PUT, and DELETE, to perform CRUD (Create, Read, Update, Delete) operations on resources. For example, a client can use the GET method to retrieve data from a resource, or the POST method to submit data to a resource.
One of the key advantages of REST APIs is that they are language- and platform-independent, which means that they can be used to build APIs that can be consumed by a wide range of clients, including web browsers, mobile devices, and other applications.
Overall, REST APIs are widely used in web development, providing a flexible and scalable way to build APIs that can be consumed by a variety of clients.
What is OAuth and 2FA?
OAuth (Open Authorization) is an open standard protocol for secure authorization and authentication on the internet. It allows users to grant third-party applications access to their resources (such as data or services) without giving them their passwords.
OAuth works by allowing a user to grant a third-party application access to their resources through a process called authorization. The user logs in to the service provider (such as Facebook or Google) and authorizes the third-party application to access their resources. The service provider then issues an access token to the third-party application, which can be used to access the user’s resources.
OAuth is widely used by many popular web services, including Google, Facebook, Twitter, and Microsoft. It is used to allow third-party applications to access user data and services, such as retrieving user profile information, posting updates on social media, or sending emails on behalf of the user.
Two-factor authentication (2FA) is a security measure that requires users to provide two forms of identification in order to access their accounts. This typically involves entering a password, followed by a second form of identification, such as a code sent to the user’s phone or generated by an authentication app.
2FA is an important security measure because it provides an extra layer of protection against unauthorized access to user accounts. Even if a hacker manages to obtain a user’s password, they still need to provide the second form of identification to gain access to the account.
Many online services and applications support 2FA, including Google, Facebook, Twitter, and many banks and financial institutions. Users are encouraged to enable 2FA on their accounts whenever possible to improve their security and protect their personal information.
How secure is Cloud Computing? How about multi-cloud?
Cloud computing security depends on various factors, including the security measures implemented by the cloud provider, the security practices of the customers, and the type of cloud deployment used.
Most reputable cloud providers implement various security measures to protect their infrastructure and data, such as data encryption, access control, intrusion detection and prevention, and network security. However, customers also have a responsibility to ensure the security of their data and applications by implementing proper security measures such as strong authentication, access control, data encryption, and regular security audits.
Multi-cloud environments can add additional complexity to cloud security, as customers may be using multiple cloud providers and managing multiple security policies. However, multi-cloud can also provide benefits in terms of redundancy, availability, and cost optimization. To ensure the security of multi-cloud environments, customers should implement consistent security policies across all cloud providers, use encryption and access controls, and regularly monitor their environment for security threats.
Overall, cloud computing can be secure when proper security measures are implemented by both the cloud provider and the customers. It is important to understand the security risks and best practices associated with cloud computing, and to carefully evaluate the security features and policies of cloud providers before choosing a provider.
What’s the typical Cloud T&C?
The terms and conditions (T&C) for cloud computing services can vary depending on the cloud provider and the type of service being provided. However, there are some common elements that are typically included in cloud T&C you should review carefully, such as:
- Service level agreements (SLAs): These define the level of service and uptime guarantees that the cloud provider will provide.
- Data protection and privacy: This includes information on how the cloud provider will protect and secure customer data, as well as details on data ownership and data transfer.
- Usage limits and restrictions: This includes information on the amount of resources that can be used, any usage limits or restrictions, and any penalties for exceeding these limits.
- Intellectual property: This includes information on ownership and usage of any intellectual property that is created or used in relation to the service.
- Termination and cancellation: This includes information on how the service can be terminated or cancelled, as well as any fees or penalties associated with early termination.
- Liability and indemnification: This includes information on the cloud provider’s liability in the event of data loss or security breaches, as well as any indemnification clauses that protect the cloud provider from legal action.
- Jurisdiction and governing law: This includes information on the jurisdiction and governing law that apply to the T&C and any disputes that may arise.
It is important for customers to carefully review the T&C of any cloud computing service before signing up, and to ensure that they understand the terms and conditions that they are agreeing to.
Here are the price calculator links to some of the top cloud providers:
- Amazon Web Services (AWS): https://calculator.aws/
- Microsoft Azure: https://azure.microsoft.com/en-us/pricing/calculator/
- Google Cloud Platform (GCP): https://cloud.google.com/products/calculator/
- IBM Cloud: https://www.ibm.com/cloud/pricing-calculator
- Oracle Cloud Infrastructure (OCI): https://www.oracle.com/cloud/cost-estimator/
- DigitalOcean: https://www.digitalocean.com/pricing/
- Vultr: https://www.vultr.com/pricing/
- Linode: https://www.linode.com/pricing/
- Scaleway: https://www.scaleway.com/en/pricing/
These calculators can help estimate the cost of using cloud services, including compute, storage, and networking resources, based on factors such as usage, location, and service level agreements. However, it is important to note that the actual costs may vary depending on the specific usage patterns and configurations of the cloud environment.
Cloud is a model of computing where servers, networks, storage, development tools, and even applications (apps) are enabled through the internet. Cloud computing offers on demand computing services and it’s usually a pay-as-you-go service.
For a real world example, when you are using a messenger app your phone, the text you send goes to the cloud and it handles all the processing. Your friend receives your text from the cloud and reply a text. The reply goes to the cloud and then back to your phone so you could see what your friend’s reply is. And you could think of the cloud as a server the messenger app company rent from one of those big cloud providers, so it runs 24/7 and the company does not to hire people to maintain this server (The company could use their own cloud as well, if it is a big company like Amazon, Microsoft, etc). In one sentence: Cloud does anything that is not personal to you.
Before diving into the cloud architecture, there are some concepts that are important.
- Computer networking: Computer networking is basically linking computers together. Cloud is built upon computer networking because cloud is some linked computers that work together through the internet, to provide various kinds of resources. Network protocols are rules that determine how data are transmitted in the network. Cloud uses those protocols to build connections among computers. Cloud use the internet as a medium of communication and the internet uses Internet Protocol/Transfer Control Protocol (IP/TCP) for communications over different computers. The graph below shows how data transfer happen using protocols (Reference: https://www.tutorialspoint.com/communication_technologies/communication_technologies_network_protocols.htm):
- Client-server model: In this model, the client is the user of the service and the server is what serves this service. When client request something from the server, the server would process the request and return something to the client. (To read more about the client-server model: https://www.geeksforgeeks.org/client-server-model/)
- 3-tier architecture: There are the presentation layer, the application layer, and the data layer. The presentation layer is a user interface where all the front end code resides. For example, you could use React as front end. The application layer is where the back end logic is implemented. And the data layer is the database where you store the data. The benefits is that the model modularized user interface, business logic and data storage. So is it easier to update the software by focusing on the specific layer rather than make changes to the code all over the place. And you could replace one of the layers without affecting the other part. However, the traditional 3-layer model has problems that after an application becomes too large and complex, it requires a lot of efforts to provide maintenance of the 3 layers of hardware and software. This would cause inefficiency for some businesses. After we entered the cloud era, the concept of 3-layer architecture is still important that some architectures still have the 3-layer model involved.
(Read more about the 3-tier model: https://www.ibm.com/cloud/learn/three-tier-architecture) (https://www.jinfonet.com/resources/bi-defined/3-tier-architecture-complete-overview/)
So how did cloud develop gradually in the first place? Cloud started after CPU virtualization is developed. CPU virtualization allows a CPU to run different virtual machines at the same time. This allows a computer to partition its memory and CPU power to run multiple virtual machines so one server could serve different clients corresponding to its virtual machine. In short, CPU virtualization made hardware strong enough to support cloud computing.
Cloud computing’s architecture could be divided into two parts: the front end and the back end (https://www.simplilearn.com/tutorials/cloud-computing-tutorial/cloud-computing-architecture). The front end is the interface that users can see. The back end is the program that handles everything that happens in the background which users cannot see, and it manages all the clients that runs in the front end. And there are different components in the backend, including application, service, storage, management and security. And under the umbrella of cloud computing, there are different architecture models. Note that these architectures are not mutually exclusive as they could work together to build programs in many occasions.
Microservices: it is a collection of services. “Each service can be written in a different programming language and tested separately. They are independently deployable and organized around business capabilities.” (https://www.ibm.com/cloud/blog/four-architecture-choices-for-application-development). For example, when using a recruitment site, the different components could be different microservices: the search bar, the window to submit a resume, the advance search filter, etc. The structure has the advantage that each team could build every micro service independently with the programming language and architecture that the team likes, and all microservice will eventually work together to provide a full service.
Event-driven serverless architecture: Event-driven serverless architecture is based on systems that run when events happen. For “event driven”, unlike traditional server, an event-driven architecture system, like AWS lambda, does not run all the time, and the functions/code are only trigger by events. An event is a change in state, or an update. For example, if you submit your resume to a recruitment site, an event happens, and the event router push the event to the event consumer who handles the event. The even consumer could the database that stores your resume, the backend program that parse the words on your resume to push more suitable jobs, or even the HR who would respond to your job application. For “serverless”, it does not mean developers do not need a server anymore. Rather, it refers to the fact that developers don’t need to spend time and energy on server maintenance, provisioning, capacity planning, etc. One of the benefits is that you pay for execution duration rather than by server unit. So businesses do not need to pay for idle resources.
Cloud-based architecture: cloud based applications are often legacy applications that were designed to run on the company’s own server but modified to run on cloud. This design is easier and cheaper compared to rewriting an application that is the ground up for cloud. A traditional cloud-based application architecture involves load balancers, web servers, application servers, and databases. It can benefit from cloud features such as resource elasticity, software-defined networking, auto-provisioning, high availability, and scalability. However, since cloud based application are not designed specifically to benefit from cloud’s advantage, there are certain limitations. For example, sometimes the application is not 100% run on web, and users might need to download and install some package on their local machine, so if the the user has an older machine, the user might not be able to run the application. A good example is mobile games. Players are connected through the cloud but there are still significantly amount of packages that have to run locally.
Cloud native architecture: The cloud native architecture are from the ground up to take full advantage of cloud computing, and they exhibit many of the attributes of applications deployed in cloud-based infrastructures, such as elastic scalability and high availability. A single instance of the software can serve multiple clients, so clients could be added very quickly and they could begin using this new software in seconds or minutes. Another important advantage is that the application could be updated by the vendor rapidly. Once the application is updated, it is available to all users at once. So it is easier for businesses to update and provide new feature on their applications.
Now, after discussing the architecture of cloud, let’s look at some different types of cloud services. There are different types of cloud computing service and they serve different purposes.
- Infrastructure as a Service (IaaS): This is the most comprehensive and flexible type of cloud service. Basically it is renting infrastructures including networking feature, computers and data storage from a cloud provider. And you could use those resource whatever you like, which giving you the maximum amount of flexibility.
- Platform as a Service (PaaS): This service allows you to have a on-demand platform to develop a software, without the need to worry about the managing the underlying infrastructure.
- Software as a Service (SaaS): This service provide you with a software service through the cloud, and you could use this service on a subscription basis.
Now we know that there are different types of cloud computing architecture and services. Let’s consider some benefits of the cloud:
The first advantage of cloud infrastructure is cost. Cloud computing eliminates the cost of hardwares completely. This cost not only includes buying hardwares, but also includes the constant expenditures of keeping the servers running (and cooling) and the repairing and replacements of hardwares that are no longer functioning. For traditional IT infrastructures, there are usually a team of experts in charge of maintaining the hardware and software, but cloud infrastructure is maintained by the provider, so the client needn’t worry about the cost of hiring experts.
Most cloud services are provided self-service and on-demand. For this reason, vast computing resources can be provided instantly, ensuring better speed for users.
Cloud computing allows more flexibility in the allocation of IT resources. If using on-premise computing, everything needs to be set up at the front. This setup includes the deciding of how much computing power to ask for, how much storage is needed, brandwidth, and geographic locations. Moving to cloud computing will add flexibility to all aspects above, allowing the client to move around the IT resources to the right place. Additionally, scaling up when using on-premise infrastructure means buyings hardwares and allocating more space for heavy machines, and once scaled up, it would be difficult to scale back down. However, cloud computing uses the billing model of pay-as-you-go, meaning that you pay for how much you are currently using. This adds flexibility to scaling up and back down, if the client figures that not that much memory space is needed, he can just stop paying for the extra and wouldn’t need to get rid of the hardwares that he would have bought if he is using traditional IT infrastructure.
Firstly, as talked about, cloud setup frees IT teams from spending time maintaining hardwares and softwares, so that they can better focus on their own tasks. Secondly, cloud computing also ensures more efficient collaboration between individuals or teams. Imagine a team that needs constant data sharing with each other, and team members might be spread around the globe and can not have access to the same computer that stores data. For on-premise setup, the team would need regular sending of data to one another and combing and restoring. But with cloud computing, as long as all team members have access to the internet, data sharing is no longer a problem.
Cloud services are connected to worldwide networks and are upgraded regularly, ensuring the computing power of the latest generations of hardware, thus, maximizing performances.
Security & Reliability
Traditional IT infrastructure usually has lower data security, because for individual company owners, they do not devote as much as cloud infrastructure providers to better secure data. The security standards are usually higher with cloud infrastructure. Moreover, cloud infrastructure takes care of data security, so users don’t need to be constantly monitoring the security of the system themselves. In events of data loss, on-premise setup also have lower chance of data recovery, while cloud provides better chance of and faster ways of data recovery.
Top benefits of cloud computing: https://www.youtube.com/watch?v=K6JTSoL5Lvc
Not all cloud providers do the same thing, and it is definitely worse taking time to consider which cloud services to choose, so that the chance of switching to different cloud services or using a piece of service here and another piece there will be low. First and foremost, the client should identify their own needs, ie. their expectations for the cloud service. Is the need running their own server, or is it only looking to utilize software from the cloud? The first would point to the path of finding some services that include server hosting, while the second would point to something like Microsoft office 365 that does exactly that. There are also other aspects that need to be considered, such as short-term operating cost, long term cost of ownership, and services the business might need to use in the future.
Once identified all key services that are needed, the client can move on to comparing the main cloud providers today, and further identify which better satisfies the need of the business.
Amazon web services (AWS) is provided by Amazon and offers a mixture of all Iaas, Paas, and Saas. As the market leader, the strength lies in the breadth and depth of the services which lead to better developer functionality.
Microsoft Azure is provided by microsoft, also offers all Iaas, Paas, and Saas, but specializes in software cloud services. It supports building, testing, deploying, and managing applications on cloud and supports most programming languages.
Google cloud platform is provided by Google and offers services such as computing, data storage, data analytics, and machine learning. The key advantages of google cloud is its deep expertise around open source technologies, especially containers. It is suggested by Ray Wang, founder and principal analyst at Constellation Research, that businesses looking for good AI and machine learning capabilities, along with translation, search, and security should choose Google cloud platform have been gravitating towards Google Cloud Platform.
IBM cloud is offered by IBM and contains all Iaas, Paas, and Saas. It is offered through all public, private, and hybrid cloud delivery models. IBM cloud dedicates exclusive hardware to each user, ensuring security and reliability.
Alibaba cloud, also known as Aliyun, like others, offer all Iaas, Paas, Saas. Alibaba cloud service has a higher number of VM processors and is suitable for businesses with higher server workloads. It also has better pricing terms and more cloud storage options. It provides all types of cloud storage, making sure that the client can find the best type that fits their needs.
Other important topics:
After discussing the technical aspect of cloud computing, it is also important to note the financial aspect of it.
ROI (return on investment) is used to calculate the percentage of money earned from an investment. It shows the efficiency of certain investment, and is calculated as:
ROI = Net Profit / Investment * 100%.
Zero percent of ROI is the break even point of investments. At zero, it suggests that the net profit is zero, and what is earned exactly equals to the initial investment.
TOC (total cost of ownership) is the sum of all costs associated with owning and maintaining a product or service. In other words, it is the price of the initial purchase plus the costs of operation:
TOC = Hardware + software + life cycles + labor + power + …
In summary, ROI measure how much money you make back from investments in cloud computing, and TCO measures the total cost related to your cloud investments. These two numbers are valuable because it allow users to understand the cost and return of using cloud and make sound decisions.
AWS vs Azure vs Google Cloud: What’s the best cloud platform for enterprise? https://www.compterworld.com/article/3429365/aws-vs-azure-vs-google-whats-the-best-cloud-platform-for-enterprise.html
5 advantages of Alibaba Cloud hosting over traditional & other cloud providers
5 advantages of Alibaba Cloud hosting over traditional & other cloud providers - ZNetLive Blog - A…
Why choose Alibaba Cloud? How is it better than other cloud providers? What are the advantages of Alibaba Cloud? In…
How to become a good Cloud Architect?
- Gain foundational knowledge of cloud computing: Start by understanding the basics of cloud computing, including the different deployment models (public, private, hybrid), the different service models (IaaS, PaaS, SaaS), and the various cloud platforms available (AWS, Azure, GCP, etc.). You can start with online courses, certifications, and other resources offered by cloud providers and industry organizations.
- Develop technical expertise in cloud technologies: As a Cloud Architect, you will need to have a deep understanding of various cloud technologies, such as virtualization, networking, storage, security, and automation. You can develop your expertise by working on projects, experimenting with cloud services, and pursuing certifications.
- Gain experience in designing and implementing cloud solutions: To become a Cloud Architect, you will need to have hands-on experience in designing and implementing cloud solutions that meet business requirements. You can gain this experience by working on cloud projects, participating in hackathons, and contributing to open-source projects.
- Develop soft skills: Cloud Architects need to have good communication, collaboration, and leadership skills, as they will be working closely with business stakeholders, developers, and other IT professionals. You can develop your soft skills by taking courses, participating in team-building activities, and seeking feedback from peers.
- Stay up-to-date with the latest trends and technologies: The cloud computing landscape is constantly evolving, so it’s important to stay up-to-date with the latest trends and technologies. You can do this by attending conferences, reading industry publications, and participating in online communities.
- Pursue relevant certifications: Cloud certifications can help you demonstrate your knowledge and skills to potential employers. Some popular certifications for Cloud Architects include AWS Certified Solutions Architect, Microsoft Certified: Azure Solutions Architect, and Google Cloud Certified — Professional Cloud Architect.
There are free tiers available from cloud providers, some of them even give away additional services for the first 12 months, check them out and play with them.
I hope you find these notes useful in getting to know a bit about what cloud infrastructure is. It is a rather high level concept. You can easily say that whatever you don’t own, or anything not within your home, school or office local network are part of “the cloud”.
As a developer, it is important to know that even though you no longer have to consider the upfront cost of setting up some physical hardware servers in data centres, it doesn’t mean it is cheap to use the cloud. (Cloud providers are making good money from these services.) It is now much easier to waste money on cloud pay-as-you-go costs as you are no longer limited by upfront hardware costs.
A little about us: OnDemandWorld Team, we are working on a new blockchain and AI app solutions. Niftnack NFT and TechHub Jobs. MVP already on App Store and Google Play. We are building the first scalable version now. Looking for new junior devs, blockchain devs, full-stack devs, etc. Contact us for more information. Remote working mostly in 2022 unless you are in Shanghai already.