Скачать книгу

improve latency and disaster recovery capabilities.

      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.

      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.

       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.

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

Скачать книгу