Cloud Computing


Using & developing scalable and flexible computing systems that can be delivered as services over the internet.


Cloud computing has revolutionized how we access, store, and process data. Gone are the days when accessing a centralized server using SSH was the norm, well outside of academia, big tech firms, and the range of the German. Today, cloud computing services offer a wide range of options for individuals and organizations to store, process, and analyze data scalable and cost-effectively.


In this module, we will take a dive into the world of cloud computing, exploring both classic approaches, such as accessing a server using SSH, as well as newer approaches, such as cloud computing services suitable for research.

In short, this chapter will provide a comprehensive overview of the cloud computing landscape and what you might encounter.

Roadmap

  • Cloud computing & SSH

  • Quick Tutorial on SSH

  • Textbased Adventure introducing the Terminal

  • Introduction to brainlife.io

Cloud Computing & SSH

SSH (Secure Shell) is a secure protocol used to remotely access and manage computer systems over an unsecured network. Or simpler, it provides a user access to a remote computer or computer systems by defining a set of rules and procedures for transmitting data between computers. It uses encryption protocols to protect sensitive information exchanged between devices, making it a secure way to access remote servers and devices. SSH is, therefore, commonly used by organizations or institutions to access or analyze sensitive data.

In academia or clinical institutions, e.g., in neuroscience research, you may encounter SSH as a means to log in to a remote server and execute commands, transfer large files, or perform analysis that a regular computer could not handle or that would be incredibly time-consuming.


Quick Tutorial on SSH


If your work requires you to work with SSH, you’ll be usually introduced to the local IT support, which teaches you how to access their server systems and what permissible operations you might perform. Here is what you can expect from this interaction


  1. Depending on your operating system, you will either be installing an SSH client on your machine (e.g., Solar-PuTTY for Windows) or MacOS and Linux; you’ll instead use the terminal. You usually will provided access to a computer designated for that purpose using macOS/Linux


  1. Next, a public/private key pair for your local machine will be generated. This is used to authenticate your machine to the remote server. Think of it as a work ID assigned by your computer, which will be checked against a list of registered machines when accessing the remote server.


  1. Now open the installed SSH client or terminal on your local machine and enter the following command

    ssh <user>@<remote_server_IP>

    (where the user is your username on the remote server, and remote_server_IP is the IP address or hostname of the remote server. The system administrator will most likely provide both.)


  1. You will be prompted to enter your password. Once you enter the correct password, you will be logged into the remote server over an encrypted SSH connection.


But you’ll probably soon realize something shocking: the lack of the GUI (Graphical User Interface! As SSH is a service used for managing data most efficiently, we’re usually constrained to text-based communication with the machine. The most common language used for this purpose is called BASH (Bourne Again SHell).

BASH (Bourne-Again SHell) is a widely used command-line interface (CLI) for Unix-based operating systems. Open up an on your macOS terminal or Linux terminal. You’ll be able to use BASH commands to directly communicate with your machine to do basic operations such as creating, deleting, or moving files and directories and run more complicated automatization processes.

For a deep dive into how to use BASH, check this Introduction to BASH

Neuroscience-specific Cloud Computing Service

Brainlife Logo

Brainlife is a platform for sharing, running, and reproducing neuroimaging  research. Brainlife provides access to tools and pipelines created by the neuroimaging community to automate certain tasks such as preprocessing MRI data.

Using Brainlife for MRI preprocessing would look something like this:

  1. Create an account on the Brainlife website (brainlife.io)

  2. Search for MRI preprocessing tools that meet your specific needs and requirements

  3. Upload your data

  4. Launch the selected tool or pipeline by specifying the input data and any necessary parameters

  5. Wait for the processing to complete and view the results on the platform

  6. Download the processed data for further analysis or visualization

Note that the specific steps and details of using Brainlife for MRI preprocessing will depend on the tool or pipeline you choose, and it is advisable to consult the documentation and guidelines for that specific tool.

Closing Words

We hope this tutorial has provided you with a useful roadmap to explore cloud computing and SSH, learn how to use SSH effectively, engage in a fun text-based adventure that introduces the terminal, and discover the benefits of using brainlife.io for scientific research. Each of these topics can be daunting at first, but with practice and perseverance, you can become proficient in using these tools and platforms to achieve your goals.