Giter Club home page Giter Club logo

gsoc2024's People

Watchers

 avatar Mahesh Kasbe avatar

gsoc2024's Issues

Implement AWS DevOps Pipeline for Image Deployment to EC2 Instance for Graphspace

Background

GraphSpace is an easy-to-use web-based platform collaborating research groups can use for storing, interacting with, and sharing networks. A GraphSpace user can upload graphs through a REST API, import graphs created in Cytoscape, interact with graphs (view them, customize layouts, and save layouts), share graphs (create groups and add collaborators, share graphs among all members of a group or with the world), search graphs, and organize graphs using tags. GraphSpace has a comprehensive REST API that allows users to communicate programmatically with it. Overall, GraphSpace provides a rich set of user-friendly features designed to enhance network-based collaboration.

Goal

This GitHub issue is focused on continuing the work started in GSoC 2023 for the NRNB Org and GraphSpace project, specifically targeting the deployment aspect that remained incomplete. The goal is to create an AWS DevOps pipeline to automate the deployment process of an image to an EC2 instance.

The task involves creating an AWS DevOps pipeline that can efficiently retrieve an image and deploy it to an EC2 instance. The steps might include:

Certainly! Let's break down the steps involved in setting up an AWS DevOps pipeline to deploy an image to an EC2 instance:

1. Setting up an AWS account and configuring necessary permissions:

  • AWS Account Creation: If the contributor doesn't have an AWS account, they'll need to sign up for one. They can visit the AWS website (https://aws.amazon.com/) and create a new account. Some services may have free tiers for new accounts, which can be utilized for this project.
  • IAM (Identity and Access Management): Once the AWS account is set up, the contributor needs to configure Identity and Access Management (IAM) to define roles and permissions. IAM allows creating users, groups, and roles with specific permissions to access AWS resources. Permissions must be set to allow the pipeline to interact with required AWS services like EC2, S3, or ECR (Elastic Container Registry).

2. Creating a pipeline script to fetch the image from a designated repository:

  • Source Control Management (SCM): The project's code repository, likely hosted on platforms like GitHub, GitLab, or Bitbucket, will contain the pipeline configuration and scripts.
  • Pipeline Configuration: Using a CI/CD service (e.g., AWS CodePipeline or Jenkins), a pipeline will be configured. This pipeline will have stages defining actions to be performed, such as retrieving the image from a specific repository (e.g., Docker Hub, AWS ECR, or another container registry).

3. Automating the deployment process to the EC2 instance:

  • EC2 Instance Configuration: The EC2 instance should be set up and configured appropriately. This includes selecting the instance type, installing necessary software or dependencies, and ensuring security configurations (e.g., security groups, key pairs).
  • Deployment Automation: The pipeline script will automate the deployment process. Once the image is fetched, it should be deployed to the EC2 instance. This might involve using tools like AWS CLI or SDKs to interact with the EC2 service to start a new instance or update an existing one with the latest image.

Difficulty Level

Medium

Size and Length of Project

  • medium: 175 hours
  • 12 weeks

Skills

AWS
Docker
Python

Mentors

Mahesh Kasbe : Primary Mentor
Yash Agarwal

Public Repository

https://github.com/Murali-group/GraphSpace/

IRC

Discord for GSoC 2023: https://discord.gg/AqjnwHndq8
Gitter for community: https://gitter.im/graphspace/community?utm_source=share-link&utm_medium=link&utm_campaign=share-link

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.