improve latency and disaster recovery capabilities.
There is also a call for using managed services and pooled resources as well as support for dynamic scaling. We can see, given their use of Kubernetes, there will likely be an opportunity to use Google Kubernetes Engine as well as other managed services.
Here again, we see that business requirements can help us frame and anticipate some likely technical requirements. There is not enough information in the business requirements to make definitive decisions about technical solutions, but they do allow us to start formulating possible solutions.
TerramEarth Strategy
The TerramEarth business requirements include improving the ability to predict malfunctions in equipment, increasing the speed and reliability of development workflows, and enabling developers to create custom APIs more efficiently.
The business requirements do not explicitly call for using managed services, but given the emphasis on predictive analytics, it is likely that Vertex AI and other machine learning services, such as GPUs and TPUs, will be employed.
The business requirements also emphasize the importance of developer productivity, including remote workers.
Business requirements are a starting point for formulating a technical solution. Architects must apply their knowledge of systems design to map business requirements into possible technical requirements. After that, they can dig into explicit technical requirements to start to formulate technical solutions.
The key point of this section is that business requirements are not some kind of unnecessary filler in the case studies. They provide the broad context in which a solution will be developed. While they do not provide enough detail to identify solution components on their own, they do help us narrow the set of feasible technical solutions. Business requirements may help you rule out options to an exam question. For example, a data storage solution that distributes data across multiple regions by default may meet all technical requirements, but if a business requirement indicates the data to be stored must be located in a specific country, then the correct answer is the one that lets you limit where the data is stored.
Application Design and Cost Considerations
In addition to specifying business and product strategy, business requirements may state things that you should consider in application design, such as a preference for managed services and the level of tolerance for disruptions in processing. Implicit in business requirements is the need to minimize costs while meeting business objectives.
One measure of costs is total cost of ownership (TCO). TCO is the combination of all expenses related to maintaining a service, which can include the following:
Software licensing costs
Cloud computing costs, including infrastructure and managed services
Cloud storage costs
Data ingress and egress charges
Cost of DevOps personnel to develop and maintain the service
Cost of third-party services used in an application
Charges against missed service-level agreements
Network connectivity charges, such as those for a dedicated connection between an on-premises data center and Google Cloud
While you will want to minimize the TCO, you should be careful not to try to minimize the cost of each component separately. For example, you may be able to reduce the cost of DevOps personnel to develop and maintain a service if you increase your spending on managed services. Also, it is generally a good practice to find a feasible technical solution to a problem before trying to optimize that solution for costs.
Some of the ways to reduce costs while meeting application design requirements include managed services, using preemptible virtual machines, and data lifecycle management. Google also offers sustained uses discounts and reserved VMs, which can help reduce costs.
Managed Services
Managed services are Google Cloud Platform services that do not require users to perform common configuration and maintenance operations. For example, Cloud SQL is a managed relational database service providing MySQL, SQL Server, and PostgreSQL databases. Database administration tasks, such as backing up data and patching operating systems, are performed by Google and not by customers using the service. Managed services are good options in the following cases:
Users do not need low-level control over the resources providing the service, such as choosing the operating system to run in a VM.
Managed services provide a functionality that would be difficult or expensive to implement, such as developing a machine vision application.
There is little competitive advantage to performing resource management tasks. For example, the competitive advantage that may come from using Apache Spark for analytics stems from the algorithms and analysis methodologies, not from the administration of the Spark cluster.
Architects do not necessarily need to know the details of how managed services work. This is one of their advantages. Architects do not need to develop an expertise in natural language processing to use the Natural Language AI, but they do need to understand what kinds of functions managed services provide. See Table 2.1 for brief descriptions of some of the Google Cloud Platform managed services.
TABLE 2.1 Examples of Google Cloud Platform managed services
Service Name | Service Type | Description |
---|---|---|
AutoML Tables | AI and machine learning | Machine learning models for structured data |
Recommendations AI | AI and machine learning | Personalized recommendations |
Natural Language AI | AI and machine learning | Entity recognition, sentiment analysis, and language identification |
Cloud Translation | AI and machine learning | Translate between languages |
Cloud Vision | AI and machine learning | Understand contents of images |
Dialogflow Essentials | AI and machine learning | Development suite for voice and text conversational apps |
BigQuery | Analytics | Data warehousing and analytics |
Cloud Datalab | Analytics | Interactive data analysis tool based on Jupyter Notebooks |
Dataproc | Analytics | Managed Hadoop and Spark service |
Cloud Data Fusion | Data management | Data integration and ETL tool |
Data Catalog |
|