GSOC 2021- Sanchita Singh - Work Summaries

Week 1- 21st May- 27th May

  1. Understanding packer and its use to create AMI for demo XWiki (Long Term Support and Latest version)
  2. Learned CDK to provide an easy way of installation of XWiki on the AWS account of the user.
  3. Learned how to write unit tests in CDK in TypeScript using the Jest test framework.
  4. Successfully created AMI for demo XWiki (Standard Flavor Pre-installed) using AWS console. While creating the AMI I observed that, even while the tomcat server was running on the EC2 instance, The requests sent from the browser were not being sent to tomcat and I kept observing connection refused error on the browser. I reached out to the AWS support team in order to debug the issue, but no solution could be found. the issue finally resolved by explicitly adding protocol 8080 in the inbound rules of the security group. initially, all traffic was allowed on the inbound rules of security groups which should have allowed the 8080 port connections, but it was not the case.
  5. Finalised System design of Production installation of XWiki.
1 Like

Week 2 28th May- 4th June

  1. Created a design page for details of components and architecture of the project Elastic Compute Cloud-based Amazon Machine Image for XWiki (Proposal.Elastic Compute Cloud-based Amazon Machine Image for XWiki.WebHome) - XWiki
  2. Understood the details of the already existing packer script about how to scale the Image production in different cloud platforms.
  3. wrote CDK code and unit tests for demo installation of XWiki.
1 Like

Week 3 5th June - 9th June

  1. Added more details in the design page, explaining different components of Infrastructure as code,
  2. Created a demo CDK app to get a better understanding of the CDK app, constructs, stacks, and tests.
  3. Wrote unit tests for the above demo CDK app.
  4. Read about working on ansible to understand the preexisting packer code.
  5. While installing Demo XWiki on EC2 machine of type T2.micro, I observed that the installation stopped midway showing the error "There is insufficient memory for the java runtime environment to continue ". Later I found out, This happened because T2. micro has 1GB of memory which is not sufficient for XWiki to run. On trying the installation on a bigger machine (T2.samll andT2.medium) it was working fine.

11th June - 20th June

  1. Compleated design page, documented here https://design.xwiki.org/xwiki/bin/view/Proposal/Elastic%20Compute%20Cloud-based%20Amazon%20Machine%20Image%20for%20XWiki/ and final deliverables here, Project Goals Summary - GSOC 2021- AMI for XWiki
  2. created CDK for Demo installation of XWiki on EC2 with unit tests. The Pull Request for the same is: Added CDK code for XWiki demo installation with unit tests. by sanchita141011 · Pull Request #6 · xwiki-contrib/aws · GitHub
  3. Started Writing Stacks for Load Balancers, ECS Service, clusters, RDS Instances for XWiki production installation CDK.

20th June - 27th June

  1. Added CDK code for installing XWiki demo using user-script on EC2 instance of type T2.medium inside public subnet of default VPC of the user’s account.
  2. Added unit tests and snapshots tests for xwiki-demo-cdk code using jest test framework.
  3. Added suggested changes by mentors in demo cdk code (https://github.com/xwiki-contrib/aws/pull/6)
  4. Added code to configure stacks for provisioning VPC with four subnets, RDS using AWS Aurora, File-System using AWS EFS, and Application Loadbalancer. Details of the Architecture is explained here. (XAWS-5: Added CDK code for configuring production XWiki with MySQL in AWS account by sanchita141011 · Pull Request #8 · xwiki-contrib/aws · GitHub)

27th June -12th July

  1. Completed CDK code for easy installation of XWiki production instance in users AWS account.
  2. Added easy-to-edit-config file to change XWiki version (stable or LTS)
  3. Added suggested changes by mentors in production cdk code (XAWS-5: Added CDK code for configuring production XWiki with MySQL in AWS account by sanchita141011 · Pull Request #8 · xwiki-contrib/aws · GitHub)
  4. Added cloudformation template to easily install XWiki using AWS console in this repository GitHub - xwiki-contrib/aws-xwiki-cloudformation. This CF template will be used to configure stacks for provisioning VPC with four subnets, RDS using AWS Aurora, File-System using AWS EFS, and Application Loadbalancer

Links to Documentation and video description

Hello everyone,
Since GSoC 2021 has ended, I would like to list out the things which I have completed in the XWiki AWS integration Project

  1. I started by finalizing the system design for production-based installations on AWS by discussing it with Sachin Chopra and created the design wiki for the same: https://design.xwiki.org/xwiki/bin/view/Proposal/Elastic%20Compute%20Cloud-based%20Amazon%20Machine%20Image%20for%20XWiki/
  2. After this I Worked on CDK code to deploy XWiki demo/test (with a portable database (HSQLDB) and a lightweight Java container (Jetty)) instance on the user’s AWS account. This will require the user to install CLI and use the command line. The pull request for the same is here https://github.com/xwiki-contrib/aws/pull/6
  3. Wrote CDK code for easy installation of XWiki production-ready instance (with MySQL Database), with easy to edit config file to change XWiki version and AWS region according to user’s need. This installation method will require to use AWS Command Line Interface. related pull requests can be found here XAWS-5: Added CDK code for configuring production XWiki with MySQL in AWS account by sanchita141011 · Pull Request #8 and XAWS-8 Added and comments removed typing errors by sanchita141011 · Pull Request #10 · xwiki-contrib/aws · GitHub</
  4. Then for providing an easier installation method, I Made AWS cloudformation template for XWiki installation using AWS console. This installation method won’t require AWS Command Line Interface and can be done in few clicks, by taking user-chosen version XWiki as parameter input. This was done for people with not much technical knowledge to install XWiki without installing anything on the local machine and just by using the AWS console.
  5. I Made Amazon Machine Image from EC2 instance running production XWiki (Had to do this because of constraints provided by AWS marketplace). The AMI was not published to the marketplace due to concerns regarding ownership of the project due to credit card requirements for AWS account to publish the AMI from. The AMI has been created in the XWiki SAS AWS account. The AMI has been tested and verified by AWS team for security issues, and the XWiki SAS can take it further as per their requirements.
  6. Made Documentation explaing the project and user guide providing step-by-step guide to deploy XWiki by using cloudformation template and CDK code. This can be found here https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/XWiki%20Installation%20on%20AWS/
    for CDK code step by step guide https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/XWiki%20Installation%20on%20AWS/Deployment%20Using%20CDK%20Code/ and for cloudformation template the step-by-step guide Deployment Using Cloudformation Template (XWiki.org)
  7. Then I Made videos explaining each method and step to deploy XWiki using both installation methods that is CDK code and cloudformation template to put on XWiki’s youtube channel to provide better visibility. The drive folder link for the videos: xwiki – Google Drive
  8. Finally, The blog the post about this fun and learning journey I had with XWiki in the last few months. https://www.xwiki.org/xwiki/bin/view/Blog/GSoC%202021%20With%20XWiki%20For%20XWiki-AWS%20Integration/

Also, I would like to thank to all the community members for helping me out whenever i got stuck, especially @sachin10101998 , @vmassol , @ginpachi , @tmortagne , @caubin , @Enygma and @ludovic

2 Likes