Mentor(s)
Student
Estimated workload
2 man month
Details

Provide an Amazon AMI for XWiki to allow starting XWiki on Amazon EC2 easily.

See also this existing ticket.

The main goal is to offer more ways to distribute XWiki to make it more attractive to all kinds of usages, and thus increase our Active Installs.

Currently, XWiki offers two types of installations for Xwiki Software: One for Demo and one for production See this link. Also, there are two versions available: 12.10.5 which is a stable release, and the other is 13.1 which is up to date and latest.

Currently, Xwiki support HyperSQL, MariaDB, MySQL, Oracle, and Postgres for Database Management. Currently, AWS natively supports MariaDB, MySQL, PostgreSQL, and there's support for a fully managed Database system called Aurora which again natively has compatibility with both Postgres and MySQL. You'd have to deep dive into AWS Resources and see what would be the best way to implement this. You might want to look at RDS and Aurora for the same.

There are 6 ways to install XWiki all of which can be found here. It'll be good to have an AMI for each type of installation. You'll have to create a Launch template and Bootstrap scripts and install the required dependencies on bootup. 

The EC2 instance type can be left out to be chosen by the installer as per their requirements. Considering the long-term maintainability of the AMIs, it'd be nice to have an automated way to update the AMIs when a newer version is released. You can use and look into AWS CDK for managing Infrastructure as a Code so we can keep a check on the work you do as you progress through different phases of GSoC and you'll have to release a working image or version before each phase end. You will also have to document the progress on the wiki. 

Your communication with the community would be one of the significant factors we'd consider while considering your proposals. I do not wish to include lots of details around AMIs here and will let you be creative in choosing your approach towards solving this and would love to see that creativity in your proposals. emoticon_smile

Active
Yes
Year

2021

Status

Selected

Progress

Related URLs:
https://jira.xwiki.org/projects/XAWS/summary
https://forum.xwiki.org/t/gsoc-2021-sanchita-singh-sync-up-summaries/8775
https://jira.xwiki.org/browse/XWIKI-3243

MILESTONES [Phase 1]:

MILESTONE 1: [7th June-13th June] Creating IaC for running XWiki (Pre-packaged with Jetty servlet container and HSQLDB Database) on EC2 instances by writing launch templates and bootstrapping scripts. [100% complete]

MILESTONE 2: [14th June -20th June] Creating AMIs from the launch template for better distribution [50% complete (done for demo part)]

MILESTONE 3: [21st June -27th June] Writing Packer script for demo install and production install to later scale the AMI in other CC platforms [40% complete (done for demo part)]

MILESTONE 4: [28th June- 4th July] Write Stacks for Load Balancers, ECS Service, clusters, RDS Instances and configure them to work in harmony for running database server and XWiki server separately.[95% complete (Submitted the PR)]

MILESTONE 5: [5th July- 11th July] Write Infrastructure as code for production-level installs on ECS containers.[95% complete (Submitted the PR)]

MILESTONE 6: [12th July -16th July] Write Unit tests using @aws-cdk/assert library to write Unit tests for the CDK Code.[50% complete(done for Demo part) ]

[PHASE 2]

MILESTONE 7: [16th July- 25th July] Documenting the system design for the same and creating a wiki for documentation and a step-by-step guide for running the setup in user AWS accounts.[40% complete]

MILESTONE 8: [26th July - 1st August] Creating blogs documenting the use of these repositories both from a user perspective and admin perspective for better maintainability and easier to use approach.

MILESTONE 9: [2nd August- 8th August] For easier management of both repositories/project subdirectories, I’ll be creating an easy to edit config file where admins can change values for linking newer versions of XWiki to AWS.

MILESTONE 10: [9th August- 15th August] Creating a common Machine Image for running on any virtual machine using Packer so as to provide an easy-to-maintain image that can be used to spin up Demo/Testing installs of XWiki on AWS, GCP, and Azure Virtual machines.

MILESTONE 11: [16th August-22nd August] Creating videos demonstrating the use of these images to be uploaded to the Youtube channel of XWiki SAS for better marketing, visibility, and reach of the newly available methods of installing XWiki.

MILESTONE 12: [wish-list]Do performance testing and create Metrics Stack for use with these installations to keep a check on Memory/CPU usage while running XWiki and generate Cloudwatch Alarms on crossing threshold.

DELIVERABLES:

D1: Created AMIs for XWiki production and Demo instance
D2: CDK code for easy installation of XWiki in users AWS account
D3: Packer script for later scaling the images to other cloud platforms like GCP, Azure, etc.
D4: Documentation and video explaining the design and and how to install XWiki using CDK code into users' account 

Tags:
   

Get Connected