A cloud platform is generally a turnkey solution that can make your life easier and take some of the complexity off your shoulders.

You probably can't build a complete and scalable application without using at least one cloud platform.

Here's the list:

Even if you're not using it at your current job, you should at least get familiar with the EC2 and S3 components.

You don't need to sign up for an expensive course to learn the essentials.

Basic flows for EC2:

Basic flows for S3:

While you may want to use the UI to handle non-repetitive tasks in EC2, you're most likely going to use the AWS CLI to handle all the operations in S3.

Remember, AWS has a lot of components, almost anything you can think of in terms of cloud computing and APIs.

Twilio is a cloud communication company that enables users to use standard web languages to build voice, VoIP, and SMS apps via a web API.

A functionality for sending text messages is not something you want to build from scratch.

Here is a Python example for sending an SMS with Twilio:



from twilio.rest import Client account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' client = Client ( account_sid , auth_token ) message = client . messages . create ( body = 'Hi there!' , from_ = '+15017122661' , to = '+15558675310' ) print ( message . sid )

You can read a short tutorial here.

SendGrid is a cloud-based email delivery platform, for both transactional and marketing emails.

Sure, you can send emails without SendGrid or any other external provider, all you need is a server.

It's as simple as:



<?php $to = "somebody@example.com"; $subject = "My subject"; $txt = "Hello world!"; $headers = "From: webmaster@example.com" . "\r

" . "CC: somebodyelse@example.com"; mail($to,$subject,$txt,$headers); ?>

But it's a bad idea to use your own email server instead of SendGrid.

Here's why:

Your server might not be able to handle the volume of emails you're sending. The emails sent from your server might land in the Spam folder due to your low IP Reputation. You'll have to build your own tools to monitor the email activity.

SendGrid is not just for marketeers, it also provides a powerful Web API.

Here's a basic Python example for sending an email:



import os from sendgrid import SendGridAPIClient from sendgrid.helpers.mail import Mail message = Mail ( from_email = 'from_email@example.com' , to_emails = 'to@example.com' , subject = 'Sending with SendGrid is Fun' , html_content = '<strong>and easy to do anywhere, even with Python</strong>' ) try : sg = SendGridAPIClient ( os . environ . get ( 'SENDGRID_API_KEY' )) response = sg . send ( message ) print ( response . status_code ) print ( response . body ) print ( response . headers ) except Exception as e : print ( e . message )

As you can see, we also check the status code in this previous example.

Endtest is a cloud platform where you can create and execute automated tests for your web applications and mobile applications

Offering your users a flawless experience is of paramount importance.

A good way to achieve that is to rely on automated tests and be the first one to find out when something stops working.

Unit tests and API requests are simply not enough to verify if your product is working as expected for your users.

Endtest offers an easy way to create functional automated tests and execute them on their cross-browser cloud and mobile device lab.

And you can do that without having to write a single line of code.

There is a recorder for Web Tests and a recorder for Mobile Tests, both rely on element identification, not on image recognition or OCR.

It also offers an API and integrations with solutions such as Jenkins, Jira, Slack and others.



Why should you use this cloud platform?

Here is a good answer.

This isn't your usual analytics solution where you import some JavaScript in your pages and it starts tracking the visitors.

Amplitude can help you track events from users and generate incredibly useful information.

For example, you can see how many of the users who signed up 6 weeks ago are still using your product, a metric which is known as retention.

The catch is to use the event tracking capabilities and integrate them in your code.

For each action performed by a user, you can send a request to the Amplitude API to store an identifier for the user, the type of event and whatever else you need.

Here's how to send an event to Amplitude from your Python code:



import amplitude # initialize amplitude logger amplitude_logger = amplitude . AmplitudeLogger ( api_key = "SOME_API_KEY_STRING" ) # example event event_args = { "device_id" : "somedeviceid" , "event_type" : "justtesting" , "event_properties" :{ "property1" : "somevalue" , "propertyN" : "anothervalue" } event = amplitude_logger . create_event ( ** event_args ) # send event to amplitude amplitude_logger . log_event ( event )

This allows you to generate event timelines for all your users and segments.

Stripe is a suite of payment APIs that powers commerce for online businesses of all sizes.

Handling payments is another thing you don't want to build from scratch.

Stripe is known for being developer-friendly and provides a detailed documentation for their APIs.

And having a stunning Checkout page can really increase those conversions.



Handling payments is not just about processing a credit card payment, there are other important aspects covered by Stripe, such as fraud and compliance.

Here's an example using JavaScript:

