On successful completion of this assessment item a student will have demonstrated competence in the following area:
Design and develop a cloud service solution using PaaS and IaaS services
In order to meet the learning outcome above, the work you will undertake individually for this assessment is considered from a cloud ‘infrastructure-as-code’ perspective. This approach allows you to specify all the cloud resources needed for your assessment work in a declarative format using YAML. You should also use supporting Python or Jinja2 templates to parameterize your configuration(s) and allow reuse of common cloud deployments. Essentially, you can treat your cloud configuration files as code and perform repeatable deployments using the same code.
You are responsible for the design, development, and deployment of ‘scalable’ cloud resources for a small-medium enterprise (SME) to support the growth of its business at both the regional UK level, and the multi-regional level via European markets. The business focus is on offering services around home monitoring with internet enabled sensors such as lights, cameras and temperature sensors.
Your role as a cloud consultant is to manage the development and deployment of the required cloud PaaS and IaaS services to support the SMEs compute needs (e.g. app engine, virtual machines) and web traffic (load balancers, virtual networks/VPNs), regional and multi-regional storage (SQL/NoSQL/bucket), and suitable remote admin access. To undertake the work you must employ the use of the Google Cloud Platform and its Deployment Manager (DM) service. Using the DM service you will create flexible template and configuration files to create deployments that use a variety of GCP services to support the business, with such services configured to work together. By utilising the cloud it enables the business to quickly react to the growing requirements of the their web traffic, storage requirements, and mobile service needs. In addition to the technical requirements, you must also provide a cloud infrastructure design blueprint, in the form of a one- page (single side) diagram.
The main technical objective of this assessment is to design and develop a YAML configuration file and associated Jinja2/Python templates to deploy the cloud resources you have selected and specified to meet the SMEs needs. You will not be supplied with a definitive list of cloud resources to create and deploy to meet the organisation’s requirements, and instead should use the knowledge and skills you have gained from the module and independent study to provide the most appropriate solution that you can – note there is no single correct solution as there are many cloud resources type solutions that could fit. Essentially, each student can demonstrate their intellectual
curiosity and technical creativity when designing and developing their own solution. However, it should be assumed that the deployment should include core resources such as virtual machine instances in the form of app and database instances, identify access management permissions, and a virtual network(s) where appropriate. It is assumed that you will use both PaaS and IaaS services.
Part 1 - Cloud Infrastructure Diagram
For the first part of this assessment you are to design and present your cloud infrastructure solution using a visual tool such as Microsoft Visio/Powerpoint (free to students)
Using the selected visual tool, you will visually represent your cloud infrastructure to include all cloud resource types you have chosen to create and deploy through your configuration and templates files, in order to sufficiently meet the needs of the organisation as described earlier. A very basic and generic example of the type of cloud infrastructure diagram that can be created is shown below. This is to give you an idea on how the icon packs can be used. You are advised to design your infrastructure diagram first, before you start work on your configuration and template files. Your diagram must only contain the actual services you have deployed for part 2 of this assessment, do not include extra services in your diagram that have not been implemented in part 2. When finished please convert your diagram to the PDF format for submission. Your diagram must only be a single side of A4 in size and be clearly legible.
Part 2 - YAML Configuration Files and Jinja/Python Templates
With part 1 completed, you will be in an informed position by understanding the collection of cloud resource types that you need to create and deploy. The YAML configuration file and associated Jinja/Python template files should create, configure and deploy a collection of cloud resource types that are comprised of appropriate PaaS and IaaS services. The configuration and template files you create should adopt an optimal approach to limit code repetitiveness, with the emphasis on reusable templates as building blocks for importing in your configuration file. You are also expected to provide clearly written code that is suitably commented throughout both the configuration file and templates. Properties and parameters for all cloud resource types should be used correctly to define their deployment to a good standard.
Your entire solution must be able to run from a single YAML configuration file named with your studentID, for example 12345678.yaml, of course this single configuration file can automatically import and run as many Jinja/Python template files as your solution contains.
As a level 3 / 4 student you are expected to learn advanced material independently - there are substantial opportunities to develop your configuration files with relevant and advanced materials not covered in the module. Examples are (but not limited to!) the inclusion of cloud functions or VPN tunnelling through your configuration file and templates – please read the accompanying CRG document for more detailed information.
In summary, you should develop a YAML configuration file, with one or more Jinja or Python templates for deployment to the Google Cloud Platform. The deployment should be carried out on your personal Google Cloud Project space as supplied to you by the module delivery team. If aiming for higher marks, particularly for the 1st criteria, you are expected to learn advanced concepts independently to implement additional advanced cloud resource features as part of your deployment, again please refer to the CRG grading criteria.