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.
Learning Objectives
- 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
Intended Audience
- 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
Prerequisites
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.
Resources
Congratulations and thank you for making it all the way through this course with me! Kubernetes is a very complicated and intricate system for managing containers, and Google Cloud Platform is a constantly and rapidly evolving environment, both of which can make it challenging to adopt containers into a development workflow. Hopefully, this course helped you navigate through the noise and discover how containers can actually make development easier instead of harder.
Now that we’re able to work with containers seamlessly in our IDE during development, and can easily deploy those same containers to Google-hosted staging and production environments, we have effectively eliminated many common development hurdles from our workflow. We never have to worry about unusual server hardware or software creating bugs in our code. We never have to worry about rolling out application updates. We never have to worry about adding or upgrading servers. There’s no doubt that it can be difficult to get started with it, but adopting a Kubernetes-based approach to your development workflow can save you an immeasurable amount of time in the long run.
For those eager to learn more, look into the Google Cloud Operations suite so you can add log monitoring to your GCP resources as a next step. Make sure you have a strong understanding of source control and the features in Git, so you can manage changes and roll back mistakes when they inevitably happen. If you don’t have a software methodology or framework implemented into your development workflow, you might consider investigating the options most suitable to your project to further optimize for efficiency. This becomes especially important as a team grows in size. If you are thinking about complex deployments with Deployment Manager, you will also want a strong grasp of Python programming.
As a final note, I strongly encourage familiarizing yourself with your GCP project billing settings to make sure your costs don’t get out of hand. While it’s certainly quite handy for a development team to have access to all these integrated Google services, they are not always aware of the hard costs involved. Google Cloud SQL is super convenient to use for example, but it’s also considerably more expensive than running a SQL server in a container ourselves. Make sure your development team understands that cloud operations are not free, and not all operations are of equal value. Making design decisions that are most appropriate rather than most convenient can have a big impact on your bottom line. If your developers are lacking in this form of discretion, you can set up budget alerts in your billing settings to notify you when costs get out of hand, and there are many reports available to break down what services in your project are breaking the bank.
Thanks again for joining me, I hope I was able to help you ease into Kubernetes-based development with this course, and have given you the foundations needed to learn more about software development methodologies and Continuous Integration/Continuous Delivery pipelines in cloud-based environments. Please consider taking a few minutes to rate your experience with this course, and submit any questions or feedback you might have. Thanks once again, and keep learning something new every day!
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.