Hi devs,
Context
Sanchita and Sachin have worked for the GSOC 2021to support deploying XWiki on AWS technology. There are basically 3 solutions that were developed (see GSOC 2021- Sanchita Singh - Work Summaries - #7 by sanchita):
- Using CDK
- Using CF Template
- Using an AMI
Using CDK
See Cdk xwiki.mp4 - Google Drive
This method just requires that you git clone an XWiki repo, install some amazon tools locally and have an AWS account.
Using CF Template
See Xwiki cloudformation 2.mp4 - Google Drive
This method requires that you have an AWS account and use the AWS UI to configure an XWiki setup. It also requires a CF Template (a json file) which we can provide through some download link or by uploading one into a S3 bucket (this needs an AWS account to hold it, and pay for it).
Using an AMI
This allows to publish the AMI into the AWS Marketplace. It requires to build such an AMI every time XWiki is released and right now the generated XWiki setup is not production-ready (it’s more for demos). For users they just need an AWS account to use it. To publish it you need an AWS account.
Issues
It’s not possible for xwiki.org to have an AWS account since that requires a bank account. Thus it’s not possible for xwiki.org to publish the CF Template into an S3 bucket and to publish the AMI in the marketplace.
Proposal 1
The xwiki.org open source project focuses on providing the following:
- the git repo/source for the CDK way
- be able to generate the CF Template but don’t publish it into an S3 bucket. Users can use it by uploading it into the AWS UI
- be able to generate the AMI but don’t publish it to the marketplace
Then, sponsoring companies (like XWiki SAS) can take over and do the remaining work if they’re interested:
- publish the CF Template into an S3 bucket using their own AWS account
- publish the AMI into the marketplace using their own AWS account
Pros:
- Clear separation of concern between xwiki.org and XWiki SAS (or other companies/individuals wanting to publish XWiki on AWS)
- Companies can also add a fee on the AMI and provide more services (support, etc).
- The AMI (and S3 bucket for the CF Template) would be advertised in the sponsoring company zones, including in the download area. For ex, right now XWiki SAS proposes XWiki Cloud there. It could propose AMI/CFT S3 bucket too, in the same area.
Cons:
- Not 100% consistent with other distributions that the xwiki.org project publishes like the docker image (since the project wouldn’t publish the AMI for example).
Proposal 2
Create a XWiki.org AWS account but use the bank account information from XWiki SAS which would just act as a money holder. There’s one potential issue: XWiki SAS is interested to make the AMI paying (at a small fee to show that open source is not free) and give back the money to the open source project (not so easy to implement in a contractual way but seen the sponsoring that XWiki SAS already does for the open source project, I believe it has enough credibility to be trusted by the community!).
Pros:
- xwiki.org handles all distributions it supports (including the AWS one)
- Slightly better for active installs IMO since the AWS distribution would be an official one for xwiki.org. Note that this is not completely true since with proposal 1, it’s also official but only with the CDK and CFT mechanisms (without S3). There’s only the AMI option not official and provided by XWiki SAS.
Cons:
- The AWS account would be managed both by xwiki.org community and XWiki SAS which is not very clean. E.g. imagine that XWiki SAS wants to add, say 2 euros to the AMI price (over the AWS price for usage). How is this decided by the community along with XWiki SAS?
Proposal 3
Decide that xwiki.org doesn’t want to propose new official distributions (the AWS ones) to reduce maintenance costs.
Pros:
- Less maintenance, support, and documentation work
Cons:
- Would not get us more active installs
Conclusion
I’m hesitating between 1 and 2. Yesterday, I was finding proposal 1 to be the best by far. Today, I’m hesitating with proposal 2 which has some benefits but I don’t find the paying option easy to handle in a community way. So I think that globally I’m still leaning towards proposal 1.
WDYT?
Thanks