To better illustrate how Google Cloud services can be used, this book utilizes an example application named Skills Mapper.
Introducing Skills Mapper
The transition to a cloud native style of development involves more than just adopting new technologies and techniques. It also requires equipping your team with the necessary skills to build and support the applications. Understanding the existing knowledge and experience within your team, as well as the broader organization, can be invaluable in this transition.
While learning, it can be beneficial to identify peers with similar interests or those who are also learning. Knowing any existing experts in a particular topic can be a source of support and mentorship.
This is where our project, Skills Mapper, comes into play. Skills Mapper is a web application designed to track and map skills—tools, technologies, and techniques—that individuals are interested in, are currently learning, have experience in, or are planning to phase out. It maps these skills to a common ontology, providing an organized view of skill sets.
For individual users, Skills Mapper provides an API that can be utilized to generate a dynamic “living CV.” This CV can be displayed on a web page or incorporated into an online resume. For groups of users, Skills Mapper illustrates how their combination of skills compares to their peers, suggests what they should learn next, and provides insights into trending interests.
Within an organization or a community where Skills Mapper is in use, it serves as a tool to locate experts, construct job profiles, and suggest communities of practice. It can also support the planning of training, and study groups, or identify the skills individuals are seeking to acquire.
Throughout this book, the Skills Mapper project will be developed and scaled as a microservices architecture, evolving from a tool for individuals to an application that can efficiently serve thousands of users.
Skills Mapper Architecture
The Skills Mapper application consists of three microservices, each utilizing a different type of storage. The architecture of the application is displayed in Figure 4-4.
Figure 4-4. Skills Mapper architecture
Each microservice is responsible for a single function, with its capabilities exposed through a REST API:
Skill service (Chapter 6)
This service suggests skills from a list gathered from Stack Overflow.
Fact service (Chapter 7)
This service allows authenticated users to manage their skills.
Profile service (Chapter 8)
This service automatically creates a profile and provides authenticated users with profile information.
A common API exposes the microservices and, in turn, a user interface interacts with the API in Chapter 9.
In the background in Chapter 5, a utility function is used to refresh the list of tags weekly.
To ensure security, everything is placed behind a load balancer with a public IP address associated with a DNS name in Chapter 11.