<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Data Centre on Crossref</title><link>https://www-crossref-org.pluma.sjfc.edu/categories/data-centre/</link><description>Recent content in Data Centre on Crossref</description><generator>Hugo 0.139.4</generator><language>en-us</language><managingEditor>support@crossref.org (Crossref/Cazinc/Benoît Benedetti)</managingEditor><webMaster>support@crossref.org (Crossref/Cazinc/Benoît Benedetti)</webMaster><lastBuildDate>Tue, 12 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www-crossref-org.pluma.sjfc.edu/categories/data-centre/" rel="self" type="application/rss+xml"/><item><title>We’ve migrated to the cloud; we hope you didn’t notice (but maybe you did)</title><link>https://www-crossref-org.pluma.sjfc.edu/blog/weve-migrated-to-the-cloud-we-hope-you-didnt-notice-but-maybe-you-did/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><author>Sara Bowman</author><guid>https://www-crossref-org.pluma.sjfc.edu/blog/weve-migrated-to-the-cloud-we-hope-you-didnt-notice-but-maybe-you-did/</guid><description>&lt;p>TLDR: We&amp;rsquo;ve successfully moved the main Crossref systems to the cloud! We’ve more to do, with several bugs identified and fixed, and a few still ongoing. However, it’s a step in the right direction and a significant milestone, as, whilst it is a much larger financial investment, it addresses several risks and limitations and shores up the Crossref infrastructure for the future.&lt;/p>
&lt;h3 id="some-background">Some background&lt;/h3>
&lt;p>We have been doing a lot of thinking, planning, and working on paying down our technical debt and modernising our systems. It’s not fun and flashy work, but it is vital for sustaining our infrastructure, meeting the demand on existing services, and developing new services.&lt;/p>
&lt;p>Just about a year ago, we completed phase one, migrating our main database from Oracle to PostgreSQL, an open-source database. This move brought us more in line with our commitment to the &lt;a href="https://www-crossref-org.pluma.sjfc.edu/categories/posi/">POSI principles&lt;/a>, reduced our dependencies on costly private licenses, and opened up the possibility to use and offer additional and more contemporary features. With the transition to PostgreSQL we made upgrades to the operating system, the database software, and the underlying hardware, resulting in significant improvements to the overall throughput and capacity of the deposit system. Previously, we typically maintained a queue of more than 10,000 deposits waiting to be processed; now, the queue holds fewer than 100 deposits on average. Consequently, the average latency – the elapsed time from submission to deposit – has reduced from hours to seconds.&lt;/p>
&lt;p>During phase one, a total of 35 new servers were created, and for the first time, the entire system configuration was defined through &lt;a href="https://en.wikipedia.org/wiki/Infrastructure_as_code" target="_blank">infrastructure-as-code&lt;/a>, enabling the infrastructure to be recreated as necessary. This effort not only enabled the migration but also established a solid foundation for our cloud migration strategy, as the code was leveraged to configure our infrastructure on AWS. Additionally, it serves as a critical component of our disaster recovery planning.&lt;/p>
&lt;p>Most importantly, phase one set us up for phase two and our next migration: moving the system into the cloud.&lt;/p>
&lt;h3 id="why-we-moved-to-the-cloud">Why we moved to the cloud&lt;/h3>
&lt;p>We had been running most of our services in a physical data centre near Boston, MA, USA (there are a few exceptions: the &lt;a href="api.crossref.org">REST API&lt;/a> and our test system (test.crossref.org) were already in the cloud, as was the Crossref website). We’ve been planning to move to the cloud for &lt;em>ahem&lt;/em> quite some time, but as always, competing priorities and limited resources have thwarted us, and the data centre was mainly serving us well.&lt;/p>
&lt;p>But… with staff across 12 countries, and increased global use of our system, operating our own hardware in a physical data centre was becoming increasingly challenging and risky, not to mention, frustrating.&lt;/p>
&lt;p>Moving to the cloud has solved several pain points for us:&lt;/p>
&lt;ul>
&lt;li>Physical access to the data centre was required for various tasks (e.g., hardware upgrades, troubleshooting, general maintenance), but as Crossref grew as an organisation and became more distributed, we had fewer staff in the area. Hosting services in the cloud means staff around the world can access our servers remotely from anywhere (and we can leave the hardware upgrades to our vendor).&lt;/li>
&lt;li>Scalability in the data centre required installing new hardware or upgrading connections, which also meant a good amount of time. In the cloud, we can scale up almost instantly.&lt;/li>
&lt;li>We can maintain copies of our databases and services in distributed places, providing insurance against natural or other disasters.
Upgrades now don’t involve buying physical hardware and installing it; it’s a much quicker and more straightforward process.&lt;/li>
&lt;/ul>
&lt;p>Moving from a physical data centre to the cloud also has some trade-offs; for instance, the cost will be approximately five times higher than running the system in the data centre; with initial data, it’s not unlikely the annual cost may be up to 2,000,000 USD. We aim to optimise and control this cost going forward.&lt;/p>
&lt;h3 id="what-we-did">What we did&lt;/h3>
&lt;p>The size of the undertaking was partly due to leaving it so long; technical debt has accumulated over many years of running the system in the data centre.&lt;/p>
&lt;p>The whole plan was hugely detailed, but we can distil it to a few bullets:&lt;/p>
&lt;ul>
&lt;li>We conducted an analysis of components, considered risks and sequencing, and created a test plan and timeline, including comms.&lt;/li>
&lt;li>While most of the drive and work was on the shoulders of two infrastructure services colleagues, our software engineers were heavily involved too, and we had weekly check-ins with a cross-team group to review progress, reassess risks, and adjust timelines as we got closer to the migration date (or decided to move it once or twice).&lt;/li>
&lt;li>We first created the deposit system in the cloud.&lt;/li>
&lt;li>We then created other parts of our services that aren’t in the deposit system code base, but run alongside it, such as reports, querying, and other tools.
We replicated our databases (of which there are several, in a few different flavours - PostgreSQL, MySQL).&lt;/li>
&lt;li>We gave 14 days’ notice to our members, via email, and kept this maintenance notice up to date.&lt;/li>
&lt;li>We commenced the migration on 8th July, which involved taking the whole system down and rejecting deposits for up to 24 hours.&lt;/li>
&lt;li>In the process, we scripted the process to create CS and the other services using Terraform and Ansible, so that going forward, bringing up a whole new instance of CS (should we need to) won’t be a manual process.&lt;/li>
&lt;li>We moved the DNS to point at our new system in the cloud, rather than the data centre. We brought the system back up on 9th July, after 14 hours of downtime, and watched the first few deposits come in, while testing thoroughly.&lt;/li>
&lt;li>Alongside the technical team, the membership and support team was at the ready to work through the testing in the new live production environment.&lt;/li>
&lt;/ul>
&lt;p>The message we sent to members, Metadata Plus subscribers, and key integrators like PKP and Turnitin, listed which services would be down and described what changes they might see, such as:&lt;/p>
&lt;ul>
&lt;li>The system timezone shifted from EST to UTC (universal coordinated time), which would be noticeable in the timestamps reported back to members after metadata deposits&lt;/li>
&lt;li>Our IP address became dynamic and is no longer static. If members had hardcoded our previous IP static address to connect to our services, that would no longer work.&lt;/li>
&lt;li>We previously allowed connections using the HTTP/1.0 protocol, but now require HTTP/1.1.
Likewise, we previously allowed TLS version 1.1, but now require at least version 1.2. Older ciphers will not work. A list of accepted ciphers can be found on &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html#tls-security-policies" target="_blank">this page&lt;/a> for “ELBSecurityPolicy-TLS13-1-2-2021-06”.&lt;/li>
&lt;/ul>
&lt;h3 id="how-it-went-and-whats-next">How it went and what’s next&lt;/h3>
&lt;p>We still have more to do, with both expected and unexpected issues arising from the migration. There are a couple of functions that still route through the data centre, configuration changes to wrangle, and processes to iron out, so we’ll be keeping that open for another couple of months.&lt;/p>
&lt;p>Those were the known issues…&lt;/p>
&lt;p>…we also uncovered a few bugs along the way, and we’ve been reporting those (and our progress toward fixing them) on our status page. &lt;a href="https://status-crossref-org.pluma.sjfc.edu/history" target="_blank">See history&lt;/a>.&lt;/p>
&lt;p>A few diligent members also alerted us to problems they were having. In some cases, we could tell why, and in many cases, their systems needed to be upgraded to work with ours. Thanks go to mEDRA, Spandidos Publications, and Stichting SciPost who helped us identify gaps that resulted in configuration improvements and lessons learned (that we then shared with other members).&lt;/p>
&lt;p>There were three issues that we were contacted about more than others:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://status-crossref-org.pluma.sjfc.edu/incidents/scr3rtr8f4pm" target="_blank">Delayed delivery of notification emails&lt;/a> which is partly due to the volume of backlogged notification emails in the system.
&lt;ul>
&lt;li>Mostly solved: We have repaired delivery of notification emails for all metadata deposits and are working on a fix for the delivery of messages associated with very large queries.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://status-crossref-org.pluma.sjfc.edu/incidents/nyr3g5b3h05v" target="_blank">A small percentage of registered records not being indexed in the REST API&lt;/a> - this can cause downstream issues for a number of other services (e.g., Crossref metadata search - search.crossref.org, Participation Reports, ORCID auto-update, and for external services that make use of the metadata from our REST API).
&lt;ul>
&lt;li>Mostly solved: All records in July are now indexed in the REST API, albeit we have new reports of a few records missing in the last week, which we are actively investigating.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://status-crossref-org.pluma.sjfc.edu/incidents/9cdhzzvt1xt3" target="_blank">Delayed delivery of July’s resolution reports&lt;/a>.
&lt;ul>
&lt;li>Solved - not only has July’s resolution report run completed, but we also completed August’s ahead of schedule.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>This migration was a significant effort, and 2025’s top priority project for the Open and Sustainable Operations (OSO) &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/4s2ee-wkr84" target="_blank">program&lt;/a> team. Overall, we’re happy with our progress toward making Crossref infrastructure more robust, reliable, and future-proof. And judging by the messages of support we received, you are too! Onwards to the next infrastructure project… &lt;a href="https://roadmap.productboard.com/e6fdeba8-a5b3-4aef-8104-d48863ba975e" target="_blank">check out our roadmap to see what’s up next&lt;/a>.&lt;/p>
&lt;h3 id="references">References&lt;/h3>
&lt;ol>
&lt;li>&amp;lsquo;Infrastructure as code&amp;rsquo; (2025) &lt;em>Wikipedia&lt;/em>, 12 August. Available at: &lt;a href="https://en.wikipedia.org/wiki/Infrastructure_as_code" target="_blank">https://en.wikipedia.org/wiki/Infrastructure_as_code&lt;/a> (Accessed: 12 August 2025).&lt;/li>
&lt;li>&amp;lsquo;The programs approach: our experiences during the first quarter of 2025&amp;rsquo; (2025) &lt;em>Crossref&lt;/em>. Available at: &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/4s2ee-wkr84" target="_blank">https://doi-org.pluma.sjfc.edu/10.64000/4s2ee-wkr84&lt;/a> (Accessed: 12 August 2025).&lt;/li>
&lt;/ol></description></item><item><title>Outage of March 24, 2022</title><link>https://www-crossref-org.pluma.sjfc.edu/blog/outage-of-march-24-2022/</link><pubDate>Thu, 24 Mar 2022 00:00:00 +0000</pubDate><author>Geoffrey Bilder</author><guid>https://www-crossref-org.pluma.sjfc.edu/blog/outage-of-march-24-2022/</guid><description>&lt;p>So here I am, apologizing again. Have I mentioned that I hate computers?&lt;/p>
&lt;p>We had &lt;a href="https://status-crossref-org.pluma.sjfc.edu/incidents/gwxd1yqdw304" target="_blank">a large data center outage&lt;/a>. It lasted 17 hours. It meant that pretty much all Crossref services were unavailable - our main website, our content registration system, our reports, our APIs. 17 hours was a long time for us - but it was also an inconvenient time for numerous members, service providers, integrators, and users. We apologise for this.&lt;/p>
&lt;p>Like the &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/sen6x-c2c16" target="_blank">outage last October&lt;/a>, the issue was related to the data center that we are trying to leave. However, unlike last time, our single nearby network admin wasn&amp;rsquo;t in surgery at the time. Tim was alerted in the early hours of his morning and was able get up and immediately investigate.&lt;/p>
&lt;p>Despite having both secondary and tertiary backup connections, neither activated appropriately.&lt;/p>
&lt;p>The problem was with incomplete BGP (Border Gateway Protocol) settings on our primary connection&amp;rsquo;s network provider’s side. We never noticed this because our backup connection had the correct and complete BGP settings. But our backup circuit went down (we don’t know why yet), and when the router with complete settings went down, only the router with the incomplete settings was available and so everything went down.&lt;/p>
&lt;p>We hadn’t yet fully configured the tertiary connection to cut over automatically. This meant cutting over to the tertiary during the outage would have required manual and potentially error-prone reconfiguration. Not something we wanted to do in a hurry with a sleep-deprived network admin.&lt;/p>
&lt;p>It’s not an excuse at all. But we are currently down two people in our infrastructure group. One of our infrastructure staff recently left for a startup, and we are already hiring a new third position. In short, our one-long-suffering sysadmin had to field this all by himself. But hey - &lt;a href="https://www-crossref-org.pluma.sjfc.edu/jobs/2022-03-15-head-of-infrastructure/">we are hiring a Head of Infrastructure&lt;/a>, and if you are interested you can now see the work you&amp;rsquo;d have cut out for you!&lt;/p>
&lt;p>So things are back up and we’ve resolved the incident but we are carefully and cautiously monitoring. We will further analyze what went wrong and post an update when we have a clearer picture.&lt;/p>
&lt;p>I apologize for the downstream pain this outage will have inevitably caused. We realize that many people will now be scrambling to clean things up after this lengthy outage.&lt;/p>
&lt;p>More when I have it… but for now I&amp;rsquo;ll mostly be curled up in a ball.&lt;/p></description></item><item><title>Update on the outage of October 6, 2021</title><link>https://www-crossref-org.pluma.sjfc.edu/blog/update-on-the-outage-of-october-6-2021/</link><pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate><author>Geoffrey Bilder</author><guid>https://www-crossref-org.pluma.sjfc.edu/blog/update-on-the-outage-of-october-6-2021/</guid><description>&lt;p>In &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/e3xe5-wae58" target="_blank">my blog post on October 6th&lt;/a>, I promised an update on what caused the outage and what we are doing to avoid it happening again. This is that update.&lt;/p>
&lt;p>Crossref hosts its services in a hybrid environment. Our original services are all hosted in a data center in Massachusetts, but we host new services with a cloud provider. We also have a few R&amp;amp;D systems hosted with Hetzner.&lt;/p>
&lt;p>We know an organisation our size has no business running its own data center, and we have been slowly moving services out of the data center and into the cloud.&lt;/p>
&lt;p>For example, over the past nine months, we have moved our authentication service and our &lt;a href="https://api-crossref-org.pluma.sjfc.edu" target="_blank">REST APIs&lt;/a> to the cloud.&lt;/p>
&lt;p>And, we are working on moving the other existing services too. For example, we are in the midst of moving &lt;a href="https://www-crossref-org.pluma.sjfc.edu/services/event-data/" target="_blank">Event Data&lt;/a> and, our next target, after Event Data, is the content registration system.&lt;/p>
&lt;p>All new services are deployed to the cloud by default.&lt;/p>
&lt;p>While moving services out of the data center, we have also been trying to shore up the data center to ensure it continues to function during the transition. One of the weaknesses we identified in the data center was that the same provider managed both our primary network connection &lt;em>and&lt;/em> our backup connection (albeit- on entirely different physical networks). We understood that we really needed a separate provider to ensure adequate redundancy, and we had already had a third network drop installed from a different provider. But, unfortunately, it had not yet been activated and connected.&lt;/p>
&lt;p>Meanwhile, our original network provider for the first two connections informed us months ago that they would be doing some major work on our &lt;em>backup&lt;/em> connection. However, they assured us that it would not affect the primary connection- something we confirmed with them repeatedly since we knew our replacement backup connection was not yet active.&lt;/p>
&lt;p>But, the change our provider made &lt;em>did&lt;/em> affect &lt;em>both&lt;/em> the backup (as intended) and the primary (not intended). They were as surprised as we were, which kind of underscores why we want two separate providers as well as two separate network connections.&lt;/p>
&lt;p>So both our primary and secondary networks went down while we had not yet activated our replacement secondary network.&lt;/p>
&lt;p>Also, our only &lt;em>local&lt;/em> infrastructure team member was in surgery at the time (He is fine. It was routine. Thanks for asking).&lt;/p>
&lt;p>This meant we had to send a local developer to the data center, but the data center’s authentication process had changed since the last time said developer had visited (pre-pandemic). So, yeah, it took us a long time to even get into the data center.&lt;/p>
&lt;p>By then, our infrastructure team member was out of surgery and on the phone with our network provider, who realized their mistake and reverted everything. This whole process (getting network connectivity restored, not the surgery) took almost two hours.&lt;/p>
&lt;p>Unfortunately, the outage didn’t just affect services hosted in the data center. It also affected our cloud-hosted systems. This is because all of our requests were still routed to the data center first, after which those destined for the cloud were split out and redirected. This routing made sense when the bulk of our requests were for services hosted in the data center. But, within the past month, that calculus had shifted. Most of our requests now are for cloud-based services. We were scheduled to switch to routing traffic through our cloud provider first, and had this been in place, many of our services would have continued running during the data center outage.&lt;/p>
&lt;p>It is very tempting to stop this explanation here and leave people with the impression that:&lt;/p>
&lt;ul>
&lt;li>The root cause of the outage was the unpredicted interaction between the maintenance on our backup line and the functionality of our primary line;&lt;/li>
&lt;li>Our slowness to respond was exclusively down to one of the two members of our infrastructure staff being (&lt;em>cough&lt;/em>) indisposed at the time.&lt;/li>
&lt;/ul>
&lt;p>But the whole event uncovered several other issues as well.&lt;/p>
&lt;p>Namely:&lt;/p>
&lt;ul>
&lt;li>Even if one of our three lines had stayed active, the routers in the data center would not have cut over to the redundant working system because we had misconfigured them and we had not tested them;&lt;/li>
&lt;li>We did not keep current documentation on the changing security processes for accessing the data center;&lt;/li>
&lt;li>Our alerting system does not support the kind of escalation logic, and coverage-scheduling that would have allowed us to automatically detect when our primary data center administrator didn’t respond (being in surgery and all) and redirect alerts and warnings to secondary responders; and&lt;/li>
&lt;li>We need to accelerate our move out of the data center.&lt;/li>
&lt;/ul>
&lt;p>What are we doing to address these issues?&lt;/p>
&lt;ul>
&lt;li>Completing the installation of the backup connection with a second provider;&lt;/li>
&lt;li>Scheduling a test of our router’s cutover processes where we will actually pull the plug on our primary connection to ensure that failover is working as intended. We will give users ample warning before conducting this test;&lt;/li>
&lt;li>Revising our emergency contact procedures and updating our documentation for navigating our data center’s security process;&lt;/li>
&lt;li>Replacing our alerting system with one that gives us better control over escalation rules; and&lt;/li>
&lt;li>Adding a third FTE to the infrastructure team to help us accelerate our move to the cloud and to implement infrastructure management best practices.&lt;/li>
&lt;/ul>
&lt;p>October 6th, 2021, was a bad day. But we’ve learned from it. So if we have a bad day in the future, it will at least be different.&lt;/p></description></item><item><title>Outage of October 6, 2021</title><link>https://www-crossref-org.pluma.sjfc.edu/blog/outage-of-october-6-2021/</link><pubDate>Wed, 06 Oct 2021 00:00:00 +0000</pubDate><author>Geoffrey Bilder</author><guid>https://www-crossref-org.pluma.sjfc.edu/blog/outage-of-october-6-2021/</guid><description>&lt;p>On October 6 at ~14:00 UTC, our data centre outside of Boston, MA went down. This affected most of our network services- even ones not hosted in the data centre. The problem was that both of our primary and backup network connections went down at the same time. We&amp;rsquo;re not sure why yet. We are consulting with our network provider. It took us 2 hours to get our systems back online.&lt;/p>
&lt;p>We are going to reprocess content that was in the process of being registered at the time of the outage in order to make sure everything gets registered correctly. This may take a few days to complete.&lt;/p>
&lt;h3 id="why-did-we-have-such-a-complete-outage-and-why-did-it-take-us-so-long-to-fix-it">Why did we have such a complete outage and why did it take us so long to fix it?&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>We still run a significant amount of our infrastructure in a data centre outside of Boston that we manage ourselves. Even though we&amp;rsquo;ve been moving many of our services to the cloud, all our traffic was still routed through the data centre - so when it went down, most of our cloud services were unavailable as well.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>It took us a long time to fix this because our infrastructure team only has two people in it. Only one of them is located near the data centre and was at the doctor’s when the outage occurred. Although we were alerted to the problem immediately, we had to send one of our development team members to the data centre to diagnose and fix the problem.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>We have been aware of these weaknesses in our system since I took the role of director of technology in 2019, and we have been putting most of our efforts over the past two years into fixing them.&lt;/p>
&lt;p>We know that an organisation of our size has no business trying to run and maintain a physical data centre ourselves. One of the strengths of cloud-based systems is that they can be administered from anywhere and don&amp;rsquo;t require anyone to physically go to a data centre to replace failed hardware or check that network connections are, in fact, live. We&amp;rsquo;ve been trying to move to the cloud as fast as we can. All new services that we build are cloud-based. At the same time we&amp;rsquo;ve been moving systems out of the data centre - starting with those that put the biggest load on our systems. To further aid this process we have budgeted to add an FTE to the infrastructure team in 2022.&lt;/p>
&lt;p>What is really painful about this event is that we had just completed the last bit of work we needed to do before changing our traffic routing so that it would hit the cloud first instead of the data centre first. This would not have avoided the outage we just experienced, but it would have made it a bit less severe.&lt;/p>
&lt;p>What is even more painful is that we had recently installed a &lt;em>third&lt;/em> network connection with an entirely different provider because we were worried about just this kind of situation. But this third connection wasn’t yet active.&lt;/p>
&lt;p>We already have a long list of tickets that we’ve created to address problems we faced in recovering from this outage. The list will undoubtedly grow as we complete a postmortem over the next few days. I will report back when we have more detail of what happened and have a solid plan for how to avoid anything similar in the future.&lt;/p>
&lt;p>We know that an outage of this severity and duration has caused a lot of people who depend on our services extra work and anxiety. For this, we apologise profusely.&lt;/p>
&lt;p>But at least we didn’t need to use an &lt;a href="https://twitter.com/cullend/status/1445156376934862848" target="_blank">angle grinder&lt;/a>.&lt;/p></description></item></channel></rss>