Defining Development Environments
Working with Kubernetes Locally
Integrating GCP into our Development Workflow
Deploying to Google Cloud Platform
In this course, we will explore some of the tools available to build and manage development environments intended for deployment on Google Cloud Platform products. We will also demonstrate how to easily push builds from our local machine to Google-hosted services.
We will start the course by covering the different types of development environments and their purposes. We will touch briefly on popular software methodologies and frameworks as they relate to choices in number and type of development environments.
This course will focus on container-based application development environments, tools, and services. We will first walk through installing and using Docker and Kubernetes on your local machine. Then we will explore how to push projects to Google Cloud Run and Google Kubernetes Engine.
Writing applications using Kubernetes or Cloud Run can be further streamlined with Google Cloud Code, which provides direct IDE support for development on these platforms. We will examine how to install and use Google Cloud Code with Visual Studio Code.
- Understand the types of development environments and when to use them
- Install a container-based local development environment
- Add Google Cloud Code support to VS Code
- Push code from a local development environment and run on Google Cloud Platform using:
- Google Cloud Run
- Google Kubernetes Engine
- Google Deployment Manager
- Programmers interested in developing containerized applications on Google Cloud Platform
- Solo developers new to working on a development team
- Anyone preparing for the Google Professional Cloud DevOps Engineer certification
To get the most out of this course, you should:
- Have a Google Cloud Platform account
- Have Google Cloud SDK installed and initialized
- Be familiar with IAM role management for GCP resources
- Have Visual Studio Code, Python 3, and Git installed
Knowledge of Python would also be beneficial for scripting with GCP, but it's not essential.
Even the simplest of software development life cycles begins with a Development environment, and ends with a Production environment. Depending on the methodology or framework being used, we could have several other environments in between. A very commonly used cycle is Development - Testing - Staging - Production. Let's break down each of these steps further.
The development environment is typically the developer's own machine, where changes can be made and immediately tested with a locally running copy of the code. This environment will use test databases and API connections, so it won't impact the functionality of the production environment in any way.
The testing environment is the latest working version of the application, where developers push their updates after they have tested them on their local development environment. A Quality Assurance team may be tasked with checking this environment for bugs, often with the help of automated testing tools. This environment will also use test data sources and API connections, to avoid any potential impact on the production environment.
When the testing environment is considered stable, it is ready to move to staging. The staging environment is similar to a testing environment, but uses production resources instead of test databases and API connections. This allows us to check for any bugs or breakage caused by differences between data sources on our testing and production environments before going live with a new version. The staging environment can also be used to allow certain end users early access to a new build, allowing us to gain some valuable early feedback before changes are rolled out to the entire user base.
Once the staging environment is confirmed to be working properly, only then is our code ready to move to the production environment. The production environment is our finished product and represents an officially released version of the application. This environment obviously uses live databases and API connections, and is intended for our end users to use.
For large, complex applications, there could be several additional environments defined for more specific roles like Quality Assurance or User Acceptance Testing. In the next video, we will look at some of the factors that determine how many and what type of development environments to use on a project.
Arthur spent seven years managing the IT infrastructure for a large entertainment complex in Arizona where he oversaw all network and server equipment and updated many on-premise systems to cloud-based solutions with Google Cloud Platform. Arthur is also a PHP and Python developer who specializes in database and API integrations. He has written several WordPress plugins, created an SDK for the Infusionsoft API, and built a custom digital signage management system powered by Raspberry Pis. Most recently, Arthur has been building Discord bots and attempting to teach a Python AI program how to compose music.