

Since 2010, our colleague Filip Callewaert has been active in the field of work management, implementing Confluence as a catalyst for collaboration in companies. On May 2nd, he will be a guest speaker at Team '24 in Las Vegas, Atlassian's annual international summit. It's quite an honor. Just before his departure, we managed to catch him for an interview.
Interview with Filip
Hi Filip, how excited are you for your talk at Atlassian Team '24?
"Very excited. It's a great honor, and I genuinely enjoy doing it. I've given similar talks at various events before, including in the United States. A few years ago, I had the opportunity to speak at the Atlassian summit, but it's always something special. When you look at the program, you'll see many impressive names among the 170 speakers. Most of them are Atlassian employees presenting case studies or partners showcasing their products. I'm one of the few people on the agenda."
Can you explain what Atlassian Team '24 is exactly?
"Atlassian hosts an annual multi-day international summit for customers, partners, and stakeholders. It's not just a knowledge conference; they also turn it into a real celebration. It's also the highlight of the year for Atlassian itself. In addition to the packed program of inspirational sessions and keynotes, there's a large exhibition hall where all vendors introduce their Atlassian add-ons and products. Many Atlassian community leaders will also be present, getting the opportunity to attend fancy dinners and chat or talk photos with Atlassian's CEO. ACA colleague Kris Dewachter, who is a community leader, will also be participating in Team '24."
What will you be discussing during your talk on May 2nd?
"I'll be diving into how Confluence is rapidly evolving, especially thanks to new features like automation, Atlassian Intelligence, whiteboards, and databases. Through a specific case study, I want to demonstrate how these innovations can revolutionize optimization for documentation processes and other workflows within organizations. Since 2022, Confluence has evolved rapidly. The new capabilities can truly be a game-changer in terms of time savings and governance. I truly believe that we're at the dawn of an unprecedented wave of productivity gains for knowledge worker teams. That's the message I hope to convey during my presentation.
Additionally, I want to encourage the audience not to cling to old processes but to truly redesign them within the new possibilities of Confluence and the entire Atlassian ecosystem. Because by integrating Confluence with Jira Product Discovery, Loom, Jira Work Management, Atlas, Compass, etc., the whole becomes so much more than the sum of its parts. I also want to underscore the importance of staying well-informed about everything happening within the entire Atlassian ecosystem. By implementing new developments into your internal processes, you can continuously improve them."
Besides your role as a speaker, you'll also be able to enjoy Atlassian Team '24 as a participant. What are you hoping to gain personally from it?

"First and foremost, I want to attend as many sessions as possible on work management and organizational culture. I'm also curious about the new products and features that will be announced. The agenda is already quite packed. I've already been contacted by several vendors asking to meet during the event. I also want to speak with some partners about their participation in the ACA Team Up event on October 1st in Leuven. Dennis Trevels, another ACA colleague joining Team '24, will help coordinate this on-site. Additionally, the Atlassian summit is ideal for connecting with Atlassian employees. I've noticed that having a strong network with Atlassian insiders really pays off."
You just mentioned the ACA Team Up event. What can we expect there?
"Team Up is the largest Atlassian event in Belgium. We welcome our customers, prospects, and partners to showcase the latest developments in the Atlassian ecosystem. Alongside an Atlassian keynote, several cases will be presented, including the one I'll be bringing in Las Vegas. Additionally, many vendors will be present to highlight their products. The ACA Team Up event is perfect for quickly discovering the latest Atlassian developments. It's also a great opportunity for companies to exchange experiences on integrating Atlassian products."
Is there anything else you'd like to share?

"Although I'm the only ACA representative speaking at Team '24, I want to emphasize that what I present is the result of teamwork. With the entire Amplifly team within ACA, we're constantly developing and implementing the best solutions for our clients. We rely on each other for that. Atlassian also has always had that team focus. After all, they develop collaboration software, and their slogan isn't 'Impossible alone' for nothing. That focus on collaboration and teamwork applies to me and all my colleagues at ACA."
🚀 Catch all higlights & news from Atlassian Team '24 during our ACA Team Up Event in October:

What others have also read


Atlassian offers great ways to resolve the need many companies have for billing and invoicing. The Atlassian Marketplace showcases numerous add-ons that integrate with Jira to help with that need. These add-ons can be extremely powerful, for example ending the need to compile numerous Excel sheets or gather paper files to invoice a client. Tempo Timesheets is an award-winning time-tracking add-on for Jira that benefits customers with real-time and accurate invoicing functions. In this guest blog post by Tempo’s Maxime-Samuel Nie-Rouquette, we track Paul’s steps to invoice a new client through Tempo Timesheets and the best practices that Paul applies to maximize the benefits he reaps from the add-on. Quick introduction Paul takes care of sending invoices to clients for his team’s R D efforts. Before using Tempo Timesheets, Paul was using the honor system to calculate the total compensation. The honor system created numerous problems with clients due to the lack of accuracy and transparency, and was quickly dropped for a more practical solution. Step 1 – Adding a Customer Paul’s new client, Soylent Corp, has signed an agreement with Paul’s company to create a new product, Soylent Green. Whenever a new customer comes around, Paul’s first step is to create a new customer in order to have an organized report throughout the progression of a project. Paul starts the invoicing process by creating a customer account so that he will be able to analyze the time his team spends on billable and non-billable issues for that particular customer. The ‘Accounts’ tab is a functionality unique to Tempo Timesheets and is very powerful. In essence, it allows you to improve the reliability, transparency, and accuracy of time tracked for clients across multiple projects and teams. Any new projects from a client can easily be added to their account. To create a customer account for Soylent Corp, Paul navigates to the ‘Accounts’ page from the Tempo Timesheets menu at the top of the page. In the upper-right corner of the screen, the ‘Customer’ tab is where new customers are added. In this case, Paul adds Soylent Corp in the ‘Name’ field and SOY in the ‘Key’ field. Step 2 – Creating Account Categories Accounts In order to fully benefit from the accounts, Paul needs to create account categories. These categories enable Tempo Timesheets to identify if the time spent is billable or non-billable, and are used in conjunction with accounts to properly showcase and organize data in reports. The first account category Paul creates is “RND”, for research and development, which Paul’s team identifies as billable work. For example, if the team works on a mathematical model to search for the best nutrients for Soylent Green, they would track the activity as billable as it falls into “RND”. Paul also creates “TRN”, for training, which is classified as non-billable work by Paul’s company. In the event that new members are added to the team and need to be worked in, the training time would be deemed non-billable as it would fall under “TRN”. To access and add new account categories, Paul navigates clicks the ‘Account Categories’ tab found under the ‘Accounts’ section of the settings menu. In this case, Paul adds ‘RND’ as the key, ‘Research and Development’ as the name, and classifies it as a Billable type. For ‘Training’, Paul repeats the process, but adds ‘internal’ as the type. With the two account categories now created (RND and TRN), it’s best practice to create accounts so that the time is rightfully associated and the data is accurate during the reporting/invoicing process. Previously, Paul created account categories to help the system categorise the type/nature of the activities. Now Paul includes that information in the Account so it’s easy to understand the nature of the work, who it is for, which projects are included in the account, and so on. Because Paul created 2 account categories (one billable and one non-billable), he does the same for the accounts: one billable and one non-billable. As such, the accounts have the following information: Going back to the account page, Paul adds the two accounts by clicking the create account button at the top right section of the page. When the account window appears all that is left to do is to fill in the right information: Name + Key: Name and tag for the account (Soylent Billable +SOYLENTBIL) Lead: Key person for the account (Paul) Category: the account category for this (Research and Development) Customer: name of the customer (Soylent Corp) Contact: Key Contact at the Customer’s Company (Amy) Projects: Collects all issues where there is billable logged time (Azome) Paul repeats the process for the non-billable account: Paul has now successfully created the necessary foundation for Paul’s team to have their logged time show under the right categories and fields – in real-time! Step 3 - Logging time Now that the foundation has been laid, Paul and his team need to log their time in order to offer the transparency and accuracy that they seek to offer. There are multiple ways to track time and have that time be associated with billable and non-billable time for a customer/project. It all depends on the way a company is set-up to operate and track time. In this case we simply modified the ‘billable’ and ‘non-billable’ hours in the worklog window. For Paul’s company, everyone is able to track billable and non-billable hours. For example, Taylor worked 8h today on a modelization task, but deemed that only 7h were billable, because she was doing 1h of relevant menial tasks that she deemed non-billable. The biggest challenge that Paul now faces is to have his team accurately and consistently track and log their time. Here are some best practices. Paul could ask his system admin to approve timesheets on a monthly frequency, as a way to ‘force’ the team to correctly track time. The team can use the real-time tracker found in the Tempo submenu (‘Tracker’). Using this method, users can simply pause the timer of the tracker when they get interrupted during the day (calls, unplanned meetings, breaks, etc.), or stop the timer to prompt the worklog window to automatically appear with the time already filled in. Paul’s team can also open the worklog dialog using the associated window hotkey. When the hotkey is pressed anywhere in Jira, the worklog window will appear to let the user log their time. This is convenient for users if they want to quickly log their time once they’re done working on something. Step 4 – Creating the custom report for the customer’s invoice Once the project is complete or when it is time to showcase some progress, Paul can easily create a report. A report displays the time spent on issues, both billable and non-billable, and updates all that information in real-time. It’s been a month since the start of the project and Soylent Corp is requesting their monthly invoice, which also doubles as a report. Paul’s team spent 291 hours this month working on the project, but only 237 hours are billable. Paul might still want to show this metric to Soylent Corp to show that the team has been spending time behind the scenes to better serve the client. Through the custom report, Paul can now have a breakdown of the hours his team worked for Soylent Corp this month. Paul can create a custom report either from the Tempo submenu at the top of the page or via the icon on the left side of the page. In this case, he only wants to display the information for the month of April relevant for Soylent Corp and easily filters by Soylent Corp. Because Paul is interested in showing both the billable and non-billable tasks worked on this month, he groups by Account + Issues. Finally, to have an understanding of the breakdown of billable and non-billable time and the total sum for each, Paul adds the billable column (found in the grid view). 🚀 Takeaway Paul was able to create the foundation and promote some practices to his team so that he would easily be able to provide his client with accurate and transparent information at the click of a button. Unsurprisingly, this method is vastly superior to the honour system as it works within Jira, so it is also very convenient for his team to track the time (as it is the same environment they work with on a daily basis). In the end, there is great value for Paul and his company in the time that is being saved internally as a result of tracking time consistently. The steps above offer a very simple way of setting up Tempo Timesheets to create some invoices. However, every company has their own unique ways of operating and tracking time, so the method explored today might not be sufficient for the needs of your company. If you’d like to better understand how this could fit with your internal methodology, we recommend visiting Tempo.io or connecting with our customer support so that they can provide their guidance to optimize your business practice with Tempo Timesheets. About Tempo timesheets Tempo Timesheets is a time-tracking and reporting solution that seamlessly integrates with Jira to help teams and managers track time for accounting, payroll, client billing, compliance, enhanced efficiency, and forecasting. Core features include: › Painless time tracking. Timesheets offers a better overview of work time for billing, measuring costs, internal time, and work performed. › Flexible reporting. Drill down on estimated versus actual time spent on JIRA issues, billable time, and more. › Cost center management. Gain better visibility of all activities and work performed for customers, internal projects, and development. Thank you to Maxime-Samuel Nie-Rouquette from Tempo for writing this guest blog post! At ACA, we also use Tempo Timesheets for our billing and invoicing, and are a Silver Partner as well. We’ve developed our own add-on to Tempo Timesheets that allows users to customize their Tempo work log fields, add custom Javascript to Jira and adapt Jira’s style and behaviour. {% module_block module "widget_0f7c6165-e281-4e27-97b2-1e28292767b8" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Check out our Tempo add-on"},"target":{"link":{"no_follow":false,"open_in_new_tab":true,"rel":"noopener","sponsored":false,"url":{"content_id":null,"href":"https://marketplace.atlassian.com/apps/1216590/custom-js-for-jira?hosting=server tab=overview","href_with_scheme":"https://marketplace.atlassian.com/apps/1216590/custom-js-for-jira?hosting=server tab=overview","type":"EXTERNAL"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Read more

Nowadays, it’s hard to find people who haven’t heard about Atlassian tools. Not surprising, since they revolutionized the way we approach team management and provide everything you need to handle everyday operations. Atlassian tools were already quite popular before the pandemic. Over the last few years, it enhanced its suite of products acquiring smaller startups like Trello and Bitbucket. According to the stats Atlassian shares on their website , there are more than 10 million users of their products across 190 countries. One of the reasons Atlassian tools are so popular for remote environments is that Atlassian has 9 offices scattered across the globe. By (partially) collaborating remotely themselves, they know what other teams need to become productive. Their practices foster the culture of distributed teams all over the world. Jira Jira is probably one of the most well-known task management tools. Operating in any kind of Agile environment be it Scrum, Kanban, or a mix of both, you can effectively manage the team progress there. Jira simplifies development team groomings, sprint planning and backlog prioritization. One of the biggest issues when running a remote team is often a lack of progress visibility, and it’s easily solved with Jira Software. It’s super easy and quick to add task estimations and generate burndown charts to measure the velocity of all the team or a particular team member. It’s also possible to enable the task tracker to see how much time it takes to complete any given task. Bitbucket Working with version control systems is an integral part of software development. The majority of software developers use Git, making it the most popular VCS (no surprise there, you can find tutorials on how to use Git in almost every web-development course ). With an ever growing number of projects, teams need to have one central management system to manage all the repositories. Bitbucket has your back covered here, as it enables all your team members to collaborate on code, test, and deploy. One of the biggest advantages to Bitbucket of course is that it integrates really well with other Atlassian products. It’s also convenient to create separate Bitbucket branches from Jira tasks or Trello cards. Trello Trello is a collaboration tool designed to organize all your projects into boards following the Kanban scheme. It provides a visual overview of your project by sorting tasks in lists, setting deadlines, putting different labels on cards, and assigning them to a particular team member. Trello allows you to create a new board from scratch or modify a template for any use-case scenario, ready for you and your team to collaborate on in just a few minutes. Numerous add-ons can simplify the project management even more by enhancing the functionality (e.g. enabling custom fields for cards, voting, or performing bulk actions to speed up the prioritization) and integrating with 146 third-party tools . Regardless of team size, Trello is equally perfect for solopreneurs, small startups, and giants of remote operations like Google and Kickstarter that already use Trello to run their projects. If you'd like to get started with Trello, check out this handy beginner's guide . Confluence For remote as well as non-remote teams, it’s critical to keep processes and workflows documented so that everyone stays on the same page. Atlassian Confluence is a perfect knowledge base tool that allows organizing spaces for different departments, keeps project documentation in one place, and group. It’s also possible to restrict access to sensitive files to make them available to certain groups or members and review the previous document versions to track changes. Status Page With remote teams, timely communication on critical incident response is simplified with the Status Page Atlassian tool. Status Page allows you to keep everyone in the loop on global issues like maintenance or unexpected outages. It’s also a great tool for businesses that run websites and have a large customer base to avoid an overload of support tickets and chat requests. Users can create a message notification, show the progress of troubleshooting, provide updates on what is going on, and finally mark the issue as ‘resolved’ when appropriate. With the help of Status Page, it’s possible to create public pages for external users, audience-specific pages (e.g. some customer groups) and private ones for internal purposes (e.g for NBPM, aka, no blame post mortem reports), for more targeted communication depending on the audience. The power of all things Atlassian The great thing about Atlassian products is that they are easy to integrate with one another, forming an ecosystem that allows you to simplify the management by transforming сomponents from one system into the actionable items in another one. For example, thanks to this tight integration it’s easy to transform Trello Cards to Jira tickets, checking Bamboo builds in Bitbucket, or leverage the APIs to create integrations with third-party tools. With a high number of professional tools to attend to, employees these days can feel distracted and less productive. Fortunately, the integration of the Atlassian tools provide a solution here as well. Creating a shared page in Confluence, contributing to the tasks on Jira, or subscribing to a Status Page, users can easily keep up with all the updates without proactive monitoring of all the different tools, as you can set up automatic email notifications once a change occurs. Wrap up When the pandemic started, a lot of businesses were struggling because of lockdowns, issues with vendors and economic recession. Especially under such circumstances, Atlassian tools are a great help in the transition to remote work. The majority of their products are free for small teams up to 10 users, giving them all the benefits of effective project management solutions. Thus, having all the means for management, small companies can keep their business running in a remote mode and ensure growth and development. With the shift towards remote work and positive results in terms of productivity, many business owners question returning back to offices once the pandemic is over and more than 70% of companies plan to keep at least partially remote environments. So while the world is changing and we do not know if remote work will totally replace offices one thing is certain: if you tried Atlassian on remote for the first time, you will want to bring it with you to the office or anywhere else. If you’re looking for an Atlassian partner, see what we can offer you! {% module_block module "widget_80c5e578-bd71-44da-abe5-b5f7c0e9a938" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Check out our Atlassian services"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":null,"href":"https://acagroup.be/en/services/atlassian/","href_with_scheme":"https://acagroup.be/en/services/atlassian/","type":"EXTERNAL"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Read more

Within ACA, there are multiple teams working on different (or the same!) projects. Every team has their own domains of expertise, such as developing custom software, marketing and communications, mobile development and more. The teams specialized in Atlassian products and cloud expertise combined their knowledge to create a highly-available Atlassian stack on Kubernetes. Not only could we improve our internal processes this way, we could also offer this solution to our customers! In this blogpost, we’ll explain how our Atlassian and cloud teams built a highly-available Atlassian stack on top of Kubernetes. We’ll also discuss the benefits of this approach as well as the problems we’ve faced along the path. While we’re damn close, we’re not perfect after all 😉 Lastly, we’ll talk about how we monitor this setup. The setup of our Atlassian stack Our Atlassian stack consists of the following products: Amazon EKS Amazon EFS Atlassian Jira Data Center Atlassian Confluence Data Center Amazon EBS Atlassian Bitbucket Data Center Amazon RDS As you can see, we use AWS as the cloud provider for our Kubernetes setup. We create all the resources with Terraform. We’ve written a separate blog post on what our Kubernetes setup exactly looks like. You can read it here ! The image below should give you a general idea. The next diagram should give you an idea about the setup of our Atlassian Data Center. While there are a few differences between the products and setups, the core remains the same. The application is launched as one or more pods described by a StatefulSet. The pods are called node-0 and node-1 in the diagram above. The first request is sent to the load balancer and will be forwarded to either the node-0 pod or the node-1 pod. Traffic is sticky, so all subsequent traffic from that user will be sent to node-1. Both pod-0 and pod-1 require persistent storage which is used for plugin cache and indexes. A different Amazon EBS volume is mounted on each of the pods. Most of the data like your JIRA issues, Confluence spaces, … is stored in a database. The database is shared, node-0 and node-1 both connect to the same database. We usually use PostgreSQL on Amazon RDS. The node-0 and node-1 pod also need to share large files which we don’t want to store in a database, for example attachments. The same Amazon EFS volume is mounted on both pods. When changes are made, for example an attachment is uploaded to an issue, the attachment is immediately available on both pods. We use CloudFront (CDN) to cache static assets and improve the web response times. The benefits of this setup By using this setup, we can leverage the advantages of Docker and Kubernetes and the Data Center versions of the Atlassian tooling. There are a lot of benefits to this kind of setup, but we’ve listed the most important advantages below. It’s a self-healing platform : containers and worker nodes will automatically replace themselves when a failure occurs. In most cases, we don’t even have to do anything and the stack takes care of itself. Of course, it’s still important to investigate any failures so you can prevent them from occurring in the future. Exactly zero downtime deployments : when upgrading the first node within the cluster to a new version, we can still serve the old version to our customers on the second. Once the upgrade is complete, the new version is served from the first node and we can upgrade the second node. This way, the application stays available, even during upgrades. Deployments are predictable : we use the same Docker container for development, staging and production. It’s why we are confident the container will be able to start in our production environment after a successful deploy to staging. Highly available applications: when failure occurs on one of the nodes, traffic can be routed to the other node. This way you have time to investigate the issue and fix the broken node while the application stays available. It’s possible to sync data from one node to the other . For example, syncing the index from one node to the other to fix a corrupt index can be done in just a few seconds, while a full reindex can take a lot longer. You can implement a high level of security on all layers (AWS, Kubernetes, application, …) AWS CloudTrail prevents unauthorized access on AWS and sends an alert in case of anomaly. AWS Config prevents AWS security group changes. You can find out more on how to secure your cloud with AWS Config in our blog post. Terraform makes sure changes on the AWS environment are approved by the team before rollout. Since upgrading Kubernetes master and worker nodes has little to no impact, the stack is always running a recent version with the latest security patches. We use a combination of namespacing and RBAC to make sure applications and deployments can only access resources within their namespace with least privilege . NetworkPolicies are rolled out using Calico. We deny all traffic between containers by default and only allow specific traffic. We use recent versions of the Atlassian applications and implement Security Advisories whenever they are published by Atlassian. Interested in leveraging the power of Kubernetes yourself? You can find more information about how we can help you on our website! {% module_block module "widget_3d4315dc-144d-44ec-b069-8558f77285de" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Apply the power of Kubernetes"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":null,"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %} Apply the power of Kubernetes Problems we faced during the setup Migrating to this stack wasn’t all fun and games. We’ve definitely faced some difficulties and challenges along the way. By discussing them here, we hope we can facilitate your migration to a similar setup! Some plugins (usually older plugins) were only working on the standalone version of the Atlassian application. We needed to find an alternative plugin or use vendor support to have the same functionality on Atlassian Data Center. We had to make some changes to our Docker containers and network policies (i.e. firewall rules) to make sure both nodes of an application could communicate with each other. Most of the applications have some extra tools within the container. For example, Synchrony for Confluence, ElasticSearch for BitBucket, EazyBI for Jira, and so on. These extra tools all needed to be refactored for a multi-node setup with shared data. In our previous setup, each application was running on its own virtual machine. In a Kubernetes context, the applications are spread over a number of worker nodes. Therefore, one worker node might run multiple applications. Each node of each application will be scheduled on a worker node that has sufficient resources available. We needed to implement good placement policies so each node of each application has sufficient memory available. We also needed to make sure one application could not affect another application when it asks for more resources. There were also some challenges regarding load balancing. We needed to create a custom template for nginx ingress-controller to make sure websockets are working correctly and all health checks within the application are reporting a healthy status. Additionally, we needed a different load balancer and URL for our BitBucket SSH traffic compared to our web traffic to the BitBucket UI. Our previous setup contained a lot of data, both on filesystem and in the database. We needed to migrate all the data to an Amazon EFS volume and a new database in a new AWS account. It was challenging to find a way to have a consistent sync process that also didn’t take too long because during migration, all applications were down to prevent data loss. In the end, we were able to meet these criteria and were able to migrate successfully. Monitoring our Atlassian stack We use the following tools to monitor all resources within our setup Datadog to monitor all components created within our stack and to centralize logging of all components. You can read more about monitoring your stack with Datadog in our blog post here . NewRelic for APM monitoring of the Java process (Jira, Confluence, Bitbucket) within the container. If our monitoring detects an anomaly, it creates an alert within OpsGenie . OpsGenie will make sure that this alert is sent to the team or the on-call person that is responsible to fix the problem. If the on-call person does not acknowledge the alert in time, the alert will be escalated to the team that’s responsible for that specific alert. Conclusion In short, we are very happy we migrated to this new stack. Combining the benefits of Kubernetes and the Atlassian Data Center versions of Jira, Confluence and BitBucket feels like a big step in the right direction. The improvements in self-healing, deploying and monitoring benefits us every day and maintenance has become a lot easier. Interested in your own Atlassian Stack? Do you also want to leverage the power of Kubernetes? You can find more information about how we can help you on our website! Our Atlassian hosting offering
Read moreWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

