Introduction to Cloud Computing for Junior Developers and Testers

Introduction to Cloud Computing for Junior Developers and Testers

Cloud computing is a concept that every developer and tester should understand within software industry in 2020s. Whether you are just starting or changing your career; or preparing for a job interview, the basic understanding of cloud computing can set you apart from your competitors. In this blog post, I will take you through the basics of cloud computing, how it works, and the key services provided by the two most common cloud platforms.

What is Cloud Computing?

Cloud computing is a providing computing services (like servers, storage, databases, networking, software, analytics, and all related infrastructure) based on a remote location. Previously, companies had physical infrastructure and they had to service and maintain themselves. On the other hand, cloud computing offers a different approach; instead of owning and maintaining the infrastructure, cloud platforms own and maintain all these services, they rent the infrastructure and charge customers as they use. In simpler terms, cloud computing allows companies to use resources like storage or processing power as a service rather than buying and managing the hardware yourself.

When we talk about cloud computing we talk about two main platforms, Amazon Web Services (AWS) and Microsoft Azure. Of course, we have more cloud platforms like Google Cloud, IBM Cloud, Alibaba, and Digital Ocean (this could be my favourite due to its price/performance ratio). However, AWS and Azure dominate more than half of the global cloud market. Therefore, we will be talking through AWS and Azure.

The Main Logic Behind Cloud Computing

Cloud computing works on a simple principle: making unused resources available for others over the internet. Here’s how it typically works:

On-Demand Resources: Users can access computing resources whenever they need. If you need more processing power or memory, for example; you can easily request it from the cloud platform. Furthermore, it will be delivered within minutes, even seconds.

Pay-As-You-Go: Instead of buying physical servers or storage devices, you pay for what you use, such as computing power (CPU), memory, or storage space. In the past some companies were suffering from lack of resources while the others were sleeping on redundant resources. Cloud computing brings a balance to such ineffectiveness issues.

APIs and Management Consoles: Cloud services are typically managed through user-friendly web interfaces or APIs. So infrastructure creation and deployment can be done through software, in other words easy to deploy, manage, and scale.

Basic Cloud Services to Know

Here are 14 common cloud services, and their names in two most popular platforms:

1. Compute (Virtual Machines)

AWS: EC2 (Elastic Compute Cloud) | Azure: Virtual Machines

What It Is: Compute services in the cloud provide virtual machines (VMs). A virtual machine is simply a software-based emulation of a real physical computer, in other words a software acts like hardware and makes an operating system run inside it. So one real machine can run more than one VMs doing separate jobs. VMs run operating systems (primarily Linux) so they can host various applications, mainly server-side application. In simpler terms, they are machines which we can run and access remotely.

Real-Life Scenario: Suppose you are developing a new mobile app and you need a backend server. Instead of buying and setting up physical hardware, you can deploy VMs in the cloud to run the app’s backend. You start small and grow gradually as your needs grow.

2. Object Storage

AWS: S3 (Simple Storage Service) | Azure: Blob Storage

What It Is: Object storage is like using a remote hardware. It allows you to store and manage unstructured data like documents, raw text files, images, videos, and backups. The difference from traditional file storage is that object storage manages data as objects.

Real-Life Scenario: If your company handles large amounts of user-generated content (like photos or videos) you can use object storage to store and retrieve this content, regardless of the volume or access frequency.

3. Block Storage

AWS: EBS (Elastic Block Store) | Azure: Managed Disks

What It Is: Block storage provides raw storage volumes that can be attached to virtual machines. These volumes behave like physical hard drives, allowing you to format them with a file system, store data, and run applications that require consistent and low-latency storage. We can think of as remote virtual hard-disks.

Real-Life Scenario: If you’re running a database (let’s say MySQL on a VM in the cloud), block storage provides the necessary performance and consistency for database operations.

4. Relational Database

AWS: RDS (Relational Database Service) | Azure: SQL Database

What It Is: A relational database service allows you to set up, operate, and scale a relational database in the cloud. These services support common database engines like MySQL, PostgreSQL, SQL Server, and Oracle. The primary difference from typical database usage is that cloud platforms manage database services. So we don’t need to maintain these databases. Again it is like using someone else’s database server and paying only as we use.

Real-Life Scenario: Imagine your company runs an e-commerce platform that needs a database to manage inventory, customer orders, and payment information. Using a managed relational database service, you can focus on your application rather than worrying about database maintenance.

5. NoSQL Database

AWS: DynamoDB | Azure: Cosmos DB

What It Is: NoSQL databases provide a flexible schema for storing and querying data. It can access large amounts of unstructured or semi-structured data.

NoSQL databases are not too different from relational databases from ten thousand feet perspective. The difference between a relational database and a NoSQL database is mainly how they structure, save and deliver data. So, just like relational database systems, cloud platforms provide a flexible schema for NoSQL databases as well. How it is used and the real-life scenarios shouldn’t be too different.

6. Content Delivery Network (CDN)

AWS: CloudFront | Azure: Azure CDN

What It Is: A CDN is a network of servers distribute certain data globally that cache and deliver content, such as web pages, videos, and images, to users based on their geographic location.

Real-Life Scenario: If you run a global e-commerce site, using a CDN ensures that your website loads quickly for users around the world, enhancing their shopping experience and potentially increasing sales.

7. DNS and Traffic Management

AWS: Route 53 | Azure: Azure DNS

What It Is: DNS (Domain Name System) services manage the process of redirecting a human-friendly domain names (like www.example.com) into IP addresses that actually responds.

Real-Life Scenario: Imagine you have a global website with users from different parts of the world. DNS services like Route 53 or Azure DNS can direct users to the nearest server location. If one server goes down, the service automatically reroutes traffic to another healthy server, maintaining uptime and user satisfaction.

8. Load Balancing

AWS: ELB (Elastic Load Balancer) | Azure: Load Balancer

What It Is: A load balancer is a tool that helps manage traffic coming into your website or API by distributing it across multiple servers. This prevents any one server from getting too busy and ensures your site or app stays fast and available. It helps when the traffic is high or one of the servers has an issue.

Real-Life Scenario: For an online service that experiences too much traffic, a load balancer ensures that user requests are evenly distributed across multiple servers, preventing any single server from becoming a bottleneck.

9. Serverless Computing

AWS: Lambda | Azure: Azure Functions

What It Is: Serverless computing means that you run code in response to events but without managing servers. Of course, it is not actually serverless, there are servers behind the scene. The whole point is that the cloud provider handles the entire infrastructure and you don’t need to worry about that. It scales and runs your code only when needed. So it is “serverless” for you.

Real-Life Scenario: Let’s say you are developing a chatbot that processes user input and sends responses. Functions running on a serverless infrastructure can be triggered whenever a message is received. Then it processes the input without needing a dedicated server running constantly.

10. Identity and Access Management

AWS: IAM (Identity and Access Management) | Azure: Azure AD (Active Directory)

What It Is: Identity and Access Management (IAM) services allow you to manage access to cloud resources by controlling permissions. They manage authorization and authentication and also manage who can access specific services and data within cloud environment.

Real-Life Scenario: In a company where multiple teams work on different cloud projects, IAM allows you to assign specific permissions to each team. By this way, no developers can accidentally update the production database.

11. Monitoring

AWS: CloudWatch | Azure: Azure Monitor

What It Is: Monitoring services collect and track metrics, logs, and events from cloud resources and provides insights about the performance, health, and security.

Real-Life Scenario: If your web application starts to experience slow response times, for example; monitoring tools can alert you to the issue, they will provide diagnostic data, and also help to identify whether the problem.

12. Networking (Virtual Private Network)

AWS: VPC (Virtual Private Cloud) | Azure: Virtual Network (VNet)

What It Is: A Virtual Private Network (VPN) allows you to create a secure and isolated network within the cloud. You can control the networking environment, including IP address ranges, subnets etc.

Real-Life Scenario: If your company has sensitive internal applications that need to be accessed securely by remote employees, a VPN allows them to connect to the cloud network like they were physically in the office.

13. CI/CD Tools

AWS: CodePipeline | Azure: Azure DevOps (Pipelines)

What It Is: CI/CD (Continuous Integration/Continuous Deployment) tools automate the process of integrating code changes. They test them and deploy them to production environments. These tools automatically test and deploy new code changes.

Real-Life Scenario: Suppose your team is developing a mobile app. Each time a developer makes changes to the code, the CI/CD tool automatically tests the changes and, if they pass the tests, deploys the new version of the app. This process delivers new features or bug fixes are quickly and reliably without manual intervention.

14. Queuing Services

AWS: SQS (Simple Queue Service) | Azure: Azure Queue Storage

What It Is: A queuing service helps different parts of a system work independently and efficiently. It holds tasks in a queue until they are ready to be processed by another part of the system. This way, the different parts don’t need to rely on each other directly and can work at their own pace.

Real-Life Scenario: Imagine you run an online store. When customers place orders, they go into a queue. The system processes each order one by one. It needs to handle each request properly, even during busy times. This helps keep the system from getting overloaded.

Conclusion

Cloud platforms provide pretty much the same services and the main logic and motivation are again pretty much the same. So, once you learn one of the cloud platforms, switching to the other is not too hard. As a developer or tester trying to be senior in your field what you need to do is to understand what services to solve what problems and in this very brief and overall blog post I wanted to provide an initial point for improvement.

Suleyman Cabir Ataman, PhD

Sharing on social media:

Leave a Reply