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.
To make software development more efficient, it's helpful to clearly define separate environments for each life cycle stage the code will move through. The number and type of different environments required for a project can vary based on a number of factors.
The choice of software development methodology used and the software development life cycle model to use along with it will depend on the needs and goals of the project itself. These needs will vary from project to project and team to team, and can sometimes even change over the course of a single project.
As a development team grows, it's possible to introduce further testing environments into the software development life cycle, improving the reliability and security of the finished application. This can be especially important for very large, complicated applications with a high volume of users.
Introducing more development environments and extra steps into your software development life cycle increases the complexity of the entire project, and results in longer times between version releases. If speed of development is important to the project, it helps to keep the number of additional development environments low.
There are costs involved with operating more development environments, so just simple financial limitations can restrict the number of environments we are feasibly able to manage at one time. Reducing the number of development environments we require can save us money.
There is really no quick and easy answer to tell us exactly what and how many development environments to use. You will need to weigh these factors with your own development team to determine what’s right for the needs of your current project. A good general rule to follow is to keep your development pipeline as simple as possible. Reducing complexity increases how quickly we can release updates to our application, and is especially important with smaller development teams with limited resources.
In the next video, we will take a closer look at some of the ways our development workflow is impacted when we’re working with cloud-based infrastructure.
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.