gsoc2024's People
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.