The State of Reddit’s Infrastructure: From Legacy Systems to Cloud Computing and Kubernetes

Question:

What are the challenges and opportunities of managing Reddit’s infrastructure?

We are the Reddit Infrastructure Team, and we are here to answer your questions about how we keep Reddit up and running (most of the time). We are also involved in projects such as developer tooling, Kubernetes, moving to a service oriented architecture, and more.

Note: This AMA is now closed.

Thank you for your participation! We hope to see you again next year. [Here is our proof](https://preview.redd.it/h7qtcuokuf541.jpg?width=4032&format=pjpg&auto=webp&s=9da76b63753ec639f4a398894ecb915dad5856c2).

Please post your questions below! We will start answering them at 10am PDT. May Bezos bless you on this fine day.

AMA Participants:

  • u/alienth
  • u/bsimpson
  • u/cigwe01
  • u/cshoesnoo
  • u/gctaylor
  • u/gooeyblob
  • u/kernel0ops
  • u/ktatkinson
  • u/manishapme
  • u/NomDeSnoo
  • u/pbnjny
  • u/prakashkut
  • u/prax1st
  • u/rram
  • u/wangofchung
  • u/asdf
  • u/neosysadmin
  • u/gazpachuelo
  • As

a final shameless plug, we would like to mention that we are [hiring across numerous functions (technical, business, sales, and more)](https://www.redditinc.com/careers).

Answer:

What are the challenges and opportunities of managing Reddit’s infrastructure?

Reddit is one of the most popular websites in the world, with over 50 billion monthly views and 430 million monthly active users. As the Reddit Infrastructure Team, we are responsible for ensuring that Reddit is fast, reliable, and scalable for our diverse and growing community. In this article, we will share some of the challenges and opportunities that we face in our daily work, as well as some of the projects that we are currently working on or planning to work on in the near future.

One of the main challenges of managing Reddit’s infrastructure is the sheer volume and variety of traffic that we have to handle. Reddit is not a monolithic website, but a collection of thousands of subreddits, each with its own rules, moderators, and content. This means that we have to deal with different types of requests, such as text, images, videos, live streams, comments, votes, awards, messages, and more. Moreover, we have to support different platforms, such as web, mobile, and third-party apps, each with its own features and requirements.

Another challenge is the unpredictability and volatility of Reddit’s traffic. Reddit is often the source or the destination of viral events, such as AMAs, memes, news, or social movements. These events can cause sudden spikes or drops in traffic, which can affect the performance and availability of Reddit. For example, in 2020, we experienced a 30% increase in traffic due to the COVID-19 pandemic, and in 2021, we witnessed a massive influx of users from the WallStreetBets subreddit, who were involved in a stock market frenzy. These events require us to be agile and adaptive, and to have robust systems and processes in place to handle them.

A third challenge is the complexity and legacy of Reddit’s infrastructure. Reddit was founded in 2005, and since then, it has grown and evolved significantly. However, some of the core components of Reddit’s infrastructure are still based on old and outdated technologies, such as Python 2, PostgreSQL, and Cassandra. These technologies have served us well for a long time, but they also pose some limitations and risks, such as security, scalability, and maintainability. Therefore, we are constantly working on migrating and modernizing our infrastructure, while ensuring that we do not break or disrupt the existing functionality and user experience of Reddit.

Opportunities

Despite the challenges, we also have many opportunities to improve and innovate Reddit’s infrastructure. One of the main opportunities is to leverage the power of cloud computing and Kubernetes. Reddit is currently hosted on a hybrid infrastructure, which consists of both on-premise data centers and cloud services, such as AWS and Google Cloud. We are gradually moving more and more of our services and workloads to the cloud, which gives us more flexibility, reliability, and efficiency. We are also adopting Kubernetes, which is an open-source system for automating the deployment, scaling, and management of containerized applications. Kubernetes allows us to run our services in a more consistent and standardized way, and to take advantage of the features and benefits of the cloud.

Another opportunity is to adopt a service-oriented architecture (SOA), which is a design principle that divides a complex system into smaller and independent services, each with its own functionality and responsibility. SOA enables us to decouple our services from each other, and to make them more modular, reusable, and testable. SOA also facilitates the development and deployment of new features and experiments, as well as the integration and collaboration with other teams and partners. For example, we recently launched Reddit Talk, which is a new feature that allows users to host and join live audio conversations in their favorite subreddits. Reddit Talk is built as a separate service, which communicates with the rest of Reddit’s infrastructure via APIs and events.

A third opportunity is to improve our developer tooling and processes, which are the tools and methods that we use to build, test, deploy, monitor, and debug our code and infrastructure. Developer tooling and processes are essential for ensuring the quality and efficiency of our work, as well as the satisfaction and productivity of our team. We are always looking for ways to improve our developer tooling and processes, such as by adopting best practices, standards, and frameworks, and by using automation, orchestration, and observability tools. For example, we use Terraform, Ansible, and Spinnaker for managing our infrastructure and deployments, and we use Prometheus, Grafana, and Sentry for monitoring and troubleshooting our services.

Conclusion

In conclusion, managing Reddit’s infrastructure is a challenging but rewarding task, which requires us to balance the needs and expectations of our users, our business, and our team. We are constantly facing new and exciting problems, and we are always learning and experimenting with new and better solutions. We are also fortunate to have a talented and passionate team, who share a common vision and mission of making Reddit the best place for online communities. We hope that this article has given you some insights into our work and our projects, and we invite you to join us in our journey of making Reddit faster, more reliable, and more scalable.

— : https://www.redditinc.com/about : https://redditblog.com/2020/12/08/reddits-2020-year-in-review/ : https://www.wired.com/story/reddit-wallstreetbets-gamestop-stock-market/ : https://www.reddit.com/r/modnews/comments/mv1jdt/introducing_reddit_talk_a_new_way_to_communicate/

Leave a Reply

Your email address will not be published. Required fields are marked *

Privacy Terms Contacts About Us