Every branch of the Portuguese government will use the platform and the applications developed by this Telecom company on top of CockroachDB.
A government-owned ISP in Europe earned a contract to build out a platform and applications to be used by all government agencies in Portugal. To build this platform and application the telecom provider needed an always-on, highly available database that could scale to accommodate over 10 million users all accessing an application at the same time. The best database for this project was CockroachDB.
Challenge and Requirements
There are two distinct challenges that could only be properly addressed with the help of a cloud-native, easily scalable, resilient database. The first challenge is making the transition from providing infrastructure-as-a-service to providing a platform-as-a-service. The second challenge is building an application that will be used by all government agencies to reach the entire adult population of Portugal.
The transition to platform-as-a-service requires the ability to understand not just how all the hardware works, but also to be able to manage a database (in addition to the other tools that sit on top of the database). Guaranteeing security up and down the stack is important, because much of the data is PII. Being able to deploy the database and the tools in Kubernetes quickly and easily is also essential.
The platform this telecom provider is building needs to have the scale and resilience to allow the various government applications to reach over 10 million people with different notifications. Some of the information shared in this application will be sensitive personal data and for that reason, the data must be consistent, resilient, and extremely secure.
In pursuit of a scalable, resilient, cloud-native database this telecom provider initially looked into Amazon RDS, but that wasn't a good fit. Amazon RDS needs to be run in AWS and this telecom needed a database that could run in their private cloud. Next, they looked at MongoDB. It's cloud-native and it's scalable, but it doesn't speak SQL. Without SQL it's too difficult to accomplish an appropriate level of security.
This government project is massive, and it required that this telecom provider ask for more from their database than they had ever asked before. So they increased their list of requirements to include the following:
- Kubernetes compatibility
- Horizontal scale
- Performance test results (with 10 million users in mind)
- Easy to deploy
- Resilient (replicate data across 3 data centers)
With the biggest, most important project of this company's life-time in the balance, they chose CockroachDB and got everything they wanted:
With three different data centers spread out around Portugal and they liked the fact that CockroachDB could deliver SQL
while distributing the data to each of the three data centers. CockroachDB's architecture guarantees the high availability required for the application. The ease of scale and resilience in CockroachDB also make it an ideal fit in a platform-as-a-service tech stack. Being able to deploy their database in Kubernetes was a high priority and CockroachDB is one of the few databases that meet all four criteria for Kubernetes compatibility (disposability, API symmetry, shared-nothing, horizontal scale).
How is CockroachDB deployed?
The telecom company used OpenStack to deploy CockroachDB. The database is distributed across three different data centers and is deployed in Kubernetes.
Currently, CockroachDB is used as the database for the application that is delivering government services notifications to all Portuguese residents that are 16 years of age or older. This application is accessible via phone or laptop. In addition to the notifications the app sends about traffic, weather, or current events, there is also a portal where users create an account. In this portal, they can store health and tax information. All the data is secure, correct, and resilient with CockroachDB.
What value does CockroachDB bring?
The benefits of using CockroachDB have been far-reaching.
- The resiliency of the database gives peace of mind to the engineering team.
- The ease of scaling CockroachDB saves time and money.
- The fact that CockroachDB is compatible with Kubernetes makes them more efficient.
- The wire-compatibility with PostgreSQL sped up the time to value.
Making the transition from infrastructure-as-a-service to platform-as-a-service would have been extremely challenging with a database that required a lot of manual maintenance. CockroachDB is a low maintenance database because it pulls complexity from the data layer down into the database and handles it automatically. This allows DevOps engineers to focus on enabling the developers to build modern, performant applications for their users.