Confluence BootstrapException: Unable to bootstrap application: Failed to parse config file


One of our newly built Confluence stacks failed to start, and the error message is as below: BootstrapException: Unable to bootstrap application: Failed to parse config file: Error on line 19 of document : The reference to entity "k" must end with the ';' delimiter. Nested exception: The reference to entity "k" must end with … Continue reading Confluence BootstrapException: Unable to bootstrap application: Failed to parse config file

CICD Design for Atlassian Suites in AWS


I have been working on a project of migrating Atlassian suites (Confluence/Jira/...) to AWS. This is not a simple lift and shift migration. We actually redesigned everything from ground up. Here is the CICD that I designed. The source codes are stored in on-premise BitBucket, the build tools is AWS Dev Tools (mainly CodeBuild). Development … Continue reading CICD Design for Atlassian Suites in AWS

Use New Relic Java Agent with Jira


While setup New Relic Java agent in Jira, I found out that there is an extra option '-Datlassian.org.osgi.framework.bootdelegation.extra=com.newrelic.*' that you need to add into JVM parameters to make New Relic Java Agent to work with Jira. This is due to Jira uses OSGI framework, and the default boot class loader does not load the extra … Continue reading Use New Relic Java Agent with Jira

Use AWS Secret Manager to handle credentials


AWS Secret Manager is a great solution for secret management. It is similar to HarshiCorp Vault, but with better integrations with other AWS services, e.g. IAM, RDS, Redshift, DocumentDB. As illustrated above, I created a database in RDS and a credential in Secret Manager, then attached the credential to the database for dynamic reference. The … Continue reading Use AWS Secret Manager to handle credentials