Blog: Designing for SAAS: Understanding Cloud Computing for SaaS Applications and Building Bridges Across Disciplines”
As a seasoned lead product designer with over a decade of experience in UI/UX design, I have always been driven by a passion for finding innovative solutions through design thinking approaches and agile methodologies. However, my journey took an exciting turn when I ventured into the realm of SaaS products within the AI and ML domain during my tenure at Wipro in 2021.
Navigating through unfamiliar territory presented its challenges, particularly when it came to bridging the gap between stakeholders, data scientists, ML engineers, and developers. In my user research and ideation phases, I needed help understanding cloud computing terminologies and fundamentals, hindering my ability to fully leverage these technologies in defining solutions and features.
Recognizing the critical importance of cloud computing, AI, and ML technologies in modern product design, I embarked on a journey of self-education. Through dedicated learning and exploration, I equipped myself with a comprehensive understanding of these domains, empowering me to maximize my user research efforts and drive impactful design solutions.
By integrating cloud computing, AI, and ML technologies into my design process, I am not only able to enhance the effectiveness of my user research but also optimise the usability and functionality of my designs. This newfound knowledge enabled me to collaborate more effectively with stakeholders and technical teams, fostering a deeper understanding and alignment across all project stakeholders.
I am writing this article/blog to provide a concise and focused resource for designers embarking on their journey into cloud computing, AI, and ML. While a wealth of information is available on these topics, much of it may be overwhelming or unnecessary for designers who need to understand enough to effectively communicate with technical teams, engage with clients, and enhance their design outcomes by distilling the most important concepts and terminology into a clear and digestible format.
I aim to educate designers with the knowledge they need to understand these domains confidently and efficiently, without feeling burdened by unnecessary complexity or detail. Ultimately, My goal is to streamline the learning process and equip designers with the essential insights they need to excel in their roles and drive impactful design solutions.
What is Cloud Computing?
At a basic level, cloud computing is a collection of Compute, Storage and Networking. The term “cloud” simply refers to the internet. Computing is the architecture and techniques that allow a computer to execute, create, distribute and interact with data.
Instead of purchasing, operating and maintaining physical data centres and servers, one can rent computing power, storage and databases from a cloud provider like Amazon web services(AWS), Azure etc on an as-demand service.
Computing resources (Databases, storage, applications, networking, software, and development tools) are provided as a service allowing users to access and utilize them from anywhere with an Internet connection. This approach offers scalability, flexibility, and accessibility, as the constraints of physical hardware do not limit users and can easily scale resources up and down based on their needs. Additionally, hosting data and applications on virtual servers provides more reliability and security than traditional on-premises architecture.
Cloud Computing architecture
Cloud can be divided into two different layers:
1. Front-end: The layer on which users interact is called the front end. This layer enables a user to access the data stored in the cloud through cloud computing software.
2. Back-end: The back-end layer, which comprises both software and hardware components such as computers, servers, central servers, and databases, serves as the backbone of cloud computing infrastructure. It plays a critical role in securely storing and managing information. To ensure connectivity between devices linked via cloud computing, the central servers use middleware software that bridges the database and the application.
Features of Cloud Computing — 10 Major Characteristics of Cloud Computing
1. Resource Pooling: Cloud computing operates on a multi-tenant model where resources are shared among multiple users. Think of it as a communal swimming pool where each swimmer enjoys the water without owning the entire pool.
Computing resources (like networks, servers, and storage) that serve individual users can be securely pooled. Public clouds follow this model as you share the same resources with other organizations and users as well, while in private clouds, the computing resources are used exclusively by one user or organization. A Hybrid cloud is a mixture of a public cloud and a private cloud.
Benefits: — — — —
> High Availability
> Load Balancing
> High Performance Computing
> If one client is over using the space assigned from that host, that virtual client is moved to another physical host.
> If a single host goes down, the other physical host will start the virtual guest’s machines that the original virtual host was running.
For details Learning https://intellipaat.com/blog/resource-pooling-in-cloud-computing/
2. On-Demand Self-service: On-demand self-service is a fundamental characteristic of cloud computing, allowing users to access and utilize resources based on their specific needs and requirements. By offering on-demand self-service and usage-based pricing, cloud service providers empower users to efficiently manage their IT infrastructure, scale resources dynamically, and control costs effectively, while ensuring agility and responsiveness to changing business needs.
3. Security: Data security is a paramount concern in cloud computing, given the sensitive nature of the information stored and processed in cloud environments. Cloud service providers employ various security measures (Encrypted Data Storage, User Authentication, Access Control, Security Against Breaches and Threats) to protect user data and mitigate potential threats.
Scenario: A multinational corporation utilizes a cloud-based collaboration platform to share sensitive documents and files among its global teams. To ensure data security, the cloud service provider employs robust encryption techniques to encrypt all data stored on its servers. Additionally, the platform implements multi-factor authentication (MFA) for user access, requiring employees to provide multiple forms of verification, such as a password and a unique code sent to their mobile device, before gaining access to the platform. This authentication process adds an extra layer of security and helps prevent unauthorized access to sensitive corporate information.
4. Broad Network Access: Users can use a variety of locations and devices to access network resources and services, which promotes flexibility, convenience, and collaboration. Users are no longer restricted to particular physical locations or constrained by the type of device they use thanks to the ability to connect to cloud services remotely through a variety of devices. With this freedom comes the ability to interact with cloud-based data and applications with ease, which boosts productivity and scalability.
A few examples: Email services, Cloud storage, video conferencing etc.
5. Availability: High availability is a critical characteristic of cloud computing that ensures systems and applications remain accessible and operational for users, typically with minimal downtime or disruption. This is achieved through redundancy, fault tolerance, and automated failover mechanisms.
6. Automation: Cloud computing characteristic leverages automation to streamline processes and reduce manual intervention. Infrastructure provisioning, configuration management, and application deployment can be automated, leading to faster and more consistent operations. Automation also enhances resource utilization by dynamically adjusting resources based on demand.
Scenario: Application Deployment: A SaaS provider releases frequent updates to its cloud-based application to introduce new features and enhancements. Instead of manually deploying each update to production servers, they utilize continuous integration and continuous deployment (CI/CD) pipelines. CI/CD pipelines automate the build, testing, and deployment processes, allowing developers to push code changes to production with confidence. As a result, the SaaS provider can deliver updates to customers quickly and reliably, ensuring a seamless user experience while minimizing downtime and disruption.
7. Pay as you go: Pay as you go is a pricing model commonly used in cloud computing, where users only pay for the resources and services they consume, typically on a per-usage basis. This flexible pricing approach allows organizations to scale their infrastructure and services based on demand.
Scenario: Web Hosting Service An e-commerce startup decides to host its website on a cloud platform using the pay-as-you-go pricing model. Instead of purchasing and managing physical servers, the startup subscribes to a cloud hosting service that charges based on the resources consumed, such as CPU usage, storage capacity, and data transfer.
8. Scalability and Performance:
Scalability refers to the ability of a system to handle growing amounts of work, users, or resources seamlessly and efficiently. In cloud computing, scalability can be achieved through two approaches: vertical scalability and horizontal scalability.
Vertical Scalability: Also known as scaling up, vertical scalability involves adding more resources (such as CPU, memory, or storage) to an existing virtual machine or server to handle increased workload.
Horizontal Scalability: Also known as scaling out, horizontal scalability involves adding more instances of servers or virtual machines to distribute the workload across multiple nodes. This approach allows for greater flexibility, as resources can be dynamically added or removed based on demand.Performance in cloud computing refers to the speed, responsiveness, and reliability of cloud services and applications. Factors that influence performance include network latency, processing speed, storage throughput, and overall system responsiveness.
9. Resilience and Easy Maintenance:resilience in cloud computing is achieved through a combination of redundant infrastructure, disaster recovery planning, backup and recovery mechanisms, load balancing, and proactive monitoring. By investing in resilience measures, cloud service providers ensure high availability, data protection, and continuity of operations for their customers, even in the face of unforeseen challenges or disruptions.
With each upgrade in cloud infrastructure and software, maintenance is becoming more easy and economical.
10. Cost-effective: Cloud computing operates on a pay-as-you-go model, where users are billed solely for the resources they consume. This approach to resource allocation eliminates the need for upfront investments in hardware and minimizes the wastage of unused resources. Users can monitor and control their usage, providing them with control over their costs. Billing is transparent and directly correlates with resource usage, enabling organizations to accurately track and manage their expenditures. Cloud computing offers compelling cost-saving benefits by providing a flexible and efficient resource allocation model, transparent billing practices, and alleviating organizations from the burden of upfront investments and ongoing maintenance costs. This makes cloud computing an attractive option for businesses seeking to optimize their financial resources and focus on their core objectives.
Cloud Computing Models
Types of the cloud: Based on the deployment model it represents various cloud deployment models that organizations can choose based on their specific requirements, preferences, and business objectives.
Public Cloud:
Public clouds are owned and operated by third-party cloud service providers, offering computing resources over the internet to multiple users and organizations.
Examples: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), IBM Cloud, and Oracle Cloud.
Private Cloud:
Private clouds are dedicated cloud environments exclusively used by a single organization, providing greater control, customization, and security compared to public clouds.
Examples: VMware Cloud Foundation, OpenStack, Microsoft Azure Stack, IBM Cloud Private, Oracle Dedicated Region Cloud@Customer.
Hybrid Cloud: Hybrid clouds combine elements of both public and private clouds, allowing organizations to leverage the benefits of each model and facilitate data and workload mobility between environments.
Examples: AWS Outposts, Azure Stack Hub, Google Anthos, IBM Cloud Satellite, and VMware Cloud on AWS.
Multi-cloud: Multi-cloud refers to the use of multiple cloud computing platforms or services from different cloud providers, enabling organizations to avoid vendor lock-in, optimize performance, and leverage best-of-breed solutions.
Examples: AWS for computing and storage, Azure for AI and machine learning, Google Cloud for data analytics, and Oracle Cloud for database services.
Cloud Computing Services
IaaS: Infrastucture as a Service
It is a cloud computing model that provides virtualized computing resources over the internet. In an IaaS environment, users can rent virtualized infrastructure components such as servers, storage, and networking resources from a cloud service provider on a pay-as-you-go basis without the complexity of managing physical hardware.
IaaS offers flexibility and scalability, enabling users to adjust resource allocations dynamically to accommodate changing workloads. Users can easily scale resources up during peak demand periods and scale them down during off-peak periods.
Users have self-service access to IaaS resources through a web-based interface or API, allowing them to provision, configure, and manage resources independently without intervention from the cloud provider
Examples:
Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP)
PAAS: Platform as a Service
Expanding on the features provided by IaaS, Platform-as-a-Service (PaaS) delivers a holistic development environment equipped with tools, middleware, and operating systems. Simplifying the development workflow, PaaS enables teams to focus on creating and deploying cloud-based applications, eliminating the need to handle the complexities of managing infrastructure.
PaaS platforms support the entire application lifecycle, from development and testing to deployment and management. Developers can easily deploy applications to the cloud, monitor performance, and scale resources as needed without manual intervention.
SaaS: Software as a Service
software applications are hosted and provided to users over the internet. In this model, users access the software through a web browser or API, eliminating the need to install, maintain, or manage the application locally on their devices.
SaaS providers handle software updates and patches, ensuring that users always have access to the latest features and security enhancements without needing to manually update their software.
Examples: Dropbox, Workday, Salesforce, ServiceNow, Figma, Power BI etc
Understanding cloud computing is indeed crucial for product and UX designers collaborating on SaaS projects. Through this article, I tried to help you provide insights into how Product/UX designers can effectively collaborate with cloud experts, architects, and developers to ensure that design decisions align with technical requirements and constraints.