The cornerstone of effective, scalable, cloud native development is establishing a personal laboratory, which is the focus of this chapter. This space serves as a secure playground for innovation. Your laboratory is your development environment, typically a local workstation or laptop, where you have the freedom to experiment, iterate, and rapidly observe the results. You […]
Disabling Unauthenticated Access to Cloud Run Services – API and User Interface with API Gateway and Cloud Storage
With the API Gateway working, you can now remove unauthenticated access to the Cloud Run services by revoking the roles/run.invoker role from allUsers from the Cloud Run service. This is because the API Gateway has the roles/run.invoker role to call the Cloud Run service on your behalf. This will also be the case for the […]
Deploying the UI Container to Cloud Run – API and User Interface with API Gateway and Cloud Storage
As the user interface container does not need any configuration, you do not need to configure any environment variables. It will also run without needing any additional permissions, so you do not need to configure any IAM roles. However, by default, it will use the default service account for the project which has more permissions […]
Requirements – API and User Interface with API Gateway and Cloud Storage
In previous chapters, you developed three separate Cloud Run services that collectively constitute the backend for the Skills Mapper application. While the benefit of this arrangement is that each service can be individually maintained and scaled, it has led to a somewhat fragmented system. Navigating this structure currently requires an understanding of which functionality is […]
Evaluation – Profile Service with Pub/Sub and Firestore
Let’s evaluate the solution in terms of cost. Overall, this is a low-cost solution; it is taking good advantage of cloud native services. The costs are broken down as follows. Firestore Firestore is a relatively cheap way to store data, as you are not paying for compute resources and are only storing small amounts of […]
Configuring Service Accounts – Profile Service with Pub/Sub and Firestore
In general, if something isn’t working in Google Cloud, a good first step is to check for missing permissions on a service account, especially if you are using a service account other than the default. You can do this by going to the IAM & Admin section of the console and checking the permissions for […]
Sending Events to Pub/Sub – Profile Service with Pub/Sub and Firestore
Google Pub/Sub is a robust, fully managed service that enables real-time messaging between applications. However, when integrating Pub/Sub into your Spring applications, you might not want to deal with the specifics of the Pub/Sub API directly. This is where the Spring Cloud GCP library comes into play. Spring Cloud GCP provides a channel adapter for […]
Google Firestore – Profile Service with Pub/Sub and Firestore
Firestore is a NoSQL document database that is built for automatic scaling, high performance, and ease of application development. Given the small amounts of data you’ll be storing for each user profile, Firestore is an excellent choice for your needs. Its serverless nature allows it to scale automatically according to demand, making it highly available […]
Requirements – Profile Service with Pub/Sub and Firestore
This chapter delves into the creation of a cloud native, event-driven microservice: the profile service. This profile service will build and continuously update user profiles based on changing facts from the fact service. The architecture will employ Google Pub/Sub for event notifications, Firestore as a serverless database to store user profiles, and Cloud Run for […]
Evaluation – Fact Service with Spring Boot, Cloud Run, and Cloud SQL
Now let’s look at how the solution will scale and how much it will cost. How Will This Solution Scale? This solution is designed with scalability in mind. First, the service itself has been designed to handle vertical scaling. This means that each instance’s capacity can be increased by augmenting memory and CPU resources. This […]