Cloud Computing


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


Cloud computing has revolutionized the way 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 , that is. Today, cloud computing services offer a wide range of options for individuals and organizations to store, process and analyze data in a scalable and cost-effective manner.


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 insitutions to access or analyse sensitive data.

In academia or clinical insitutions, 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 comsuming.


Quick Tutorial on SSH


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


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


  1. Next a public/private key pair for you local machine will be generated. This is used to authenticate your machine to the remote server. Think of it as a work ID that your computer gets assigned, 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 user is your username on the remote server and remote_server_IP the IP address or hostname of the remote server. Both will most liekly be provided by the system administrator.)


  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 somethin shocking: the lack of the GUI (Graphical User Interface! As SSH is a service used for managing data in the most efficient way 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. If you open up a on your macOS terminal or Linux terminal, you’ll be able to use BASH commands to directly comunicate with your machine to do basic operations such as creating, deleting or moving files and directories, as well as runs more complicated automatization processes.

For a deep dive on how to use BASH check-out this [Introduction to BASH](link 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.