Introduction
Quick Demonstration
Architecture Review
Build and Packaging
Docker Setup
MongoDB Setup
Test and Validation
Summary
The course is part of these learning paths
This course is designed to help you master the skills of designing and building cloud-native applications.
Observe first hand the end-to-end process of building a sample cloud-native application using React, Go, MongoDB, and Docker. By taking this course you'll not only get to see firsthand the skills required to create a robust, enterprise-grade, cloud-native application, but you'll also be able to apply them yourself as all code and deployment assets are available for you to perform your own deployment:
Source Code:
https://github.com/cloudacademy/voteapp-frontend-react
https://github.com/cloudacademy/voteapp-api-go
Full Install Script:
https://github.com/cloudacademy/language-vote-app
Learning Objectives
What you'll learn:
- Understand the basic principles of building cloud-native applications
- Understand the benefits of using React for frontend web development
- Understand the benefits of using Go for backend API development
- Understand the benefits of using MongoDB as a database system
- And finally, you’ll learn how to package and run microservices as lightweight containers using Docker
Demonstration
This training course provides you with several hands-on demonstrations where you will observe first hand how to
- Build a React-based web frontend
- Build a Go-based API
- Deploy and configure a MongoDB database
- Deploy the full end-to-end application to Docker running locally
Prerequisites
- A basic understanding of web-based software development
- Previous exposure to containers and containerization - in particular, docker
Intended Audience
- Anyone interested in learning how to architect cloud-native applications
- Anyone interested in using modern development tools such as React, Go, MongoDB and Docker
- Anyone interested in containerization
- DevOps Practitioners
Hello and welcome to this Cloud Academy course on building a Cloud-Native Application using React, Go, MongoDB and Docker.
In this lecture, we'll cover off the course agenda, intended audience, learning objectives, and course prerequisites. I'm really excited to be taking you through this course. React, Go, MongoDB and Docker are best of breed tools for building cloud-native applications, as you'll see.
Before we start, I'll quickly introduce myself. My name is Jeremy Cook. I'm one of the trainers here at Cloud Academy, specializing in DevOps. Feel free to connect with either myself or the wider team here at Cloud Academy regarding anything about this course. You can email either myself and/or the Cloud Academy team at support@cloudacademy.com.
This training course takes you through the process of building a real-world cloud-native architected web application from an initial concept and then all the way through to the end product, packaged into Docker containers. We'll finish the course by spinning up a locally hosted version of the application for testing and validation purposes. The follow-up course, Deploying a Cloud-Native application into Kubernetes, will then take you through the process of deploying this same application into a Kubernetes cluster. In that course, you'll get to see first hand the skills required and the techniques used to deploy a fully working solution within a Kubernetes cluster.
So what exactly is cloud native? Cloud native is a design in which applications are architected as loosely coupled microservices, packaged into lightweight containers, and are then more often than not deployed into and managed by a container orchestrator such as Kubernetes, which is itself hosted on cloud infrastructure, enabling you to exploit and benefit from the associated cloud computing model.
This course is going to be centered around taking you through the process of designing a basic cloud-native application and then packaging it into Docker containers. We'll create a sample web-based application which provides a simple voting interface allowing an end user to vote for their favorite programming language. We'll demonstrate how to compile and package the application into Docker containers and then spin up the application locally. To help you follow along, all of the coding assets as used and demonstrated within this course are hosted within the following three Cloud Academy GitHub repositories:
https://github.com/cloudacademy/voteapp-frontend-react
https://github.com/cloudacademy/voteapp-api-go
https://github.com/cloudacademy/language-vote-app
You are encouraged to clone these repositories and perform the same build and deployment on your own work station. So, in summary, during this course I'll show you how to build a basic cloud-native application using the following technologies: React, used for fronting web development, Go, used for backend API development, MongoDB provides the backend database, and Docker, used for packaging and running lightweight containers.
The intended audience for this course includes anyone interested in learning how to architect cloud-native applications, anyone interested in using modern development tools, anyone interested in microservices and containerization, and/or anyone practicing DevOps.
By completing this course, you will learn and understand the basic principles of building cloud-native applications, understand the benefits of using React for frontend web development, understand the benefits of using Go for backend API development, understand the benefits of using MongoDB as a database system, and finally, you'll learn how to package and run microservices as lightweight containers using Docker.
The following prerequisites will be both useful and helpful for this course: a basic understanding of web-based software development, a basic understanding of Linux administration, and/or previous exposure to containers and containerization, in particular, Docker.
Okay, the course introduction has now been completed. Go ahead and close this lecture and we'll see you shortly in the next one.
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).