Google Cloud Platform DevOps OverviewOct 29, 2020
Simply put technically, DevOps is an enterprise software development phrase that is used to describe an optimal agile relationship between development and IT operations.
The main goal of DevOps is to change and improve the relationship of teams by advocating better communication and collaboration between these two or more business units.
Effectively, removing silos and enhancing collaboration and understanding accidents can happen. Ensuring proper action can reduce mistakes and costs for the organization.
DevOps is not only a technical shift in the way of running enterprise software deployments but also a cultural shift from the enterprises old ways of running software releases, testing, updates and integrations, etc.
Another common way to look at DevOps is that it is a software development lifecycle (SDLC) and its central goal is to provide a cultural change.
Check out the Google Cloud Professional DevOps Certification – All in One Guide.
Developers and non-developers work in an environment where the two departments may not be working together but instead against each other.
Organizations that take improvement seriously won’t tolerate this lack of collaboration and will invest in a DevOps strategy to effect change.
To sum up DevOps it is a movement which enhances collaboration between Development and Operations, hence, the name DevOps and will remove the silos.
DevOps is about collaboration and removing silos but also its best to focus on speeding recovery than preventing accidents.
A pipeline (mainline) in the world of software development is a term used to describe effectively a workflow for your working copies.
In some vendor implementations a workflow specifically has stages or phases as they may also be referred to.
A phase is when you advance a stage moving towards a production deployment of software.
Pipelines should ideally be designed for businesses that want to improve applications frequently and require a reliable automated delivery process
Overview of how pipelines compare compared to the phases of the development lifecycle
We can see from the diagram above that Continuous Integration is focused on the Code to Integrate phases.
Continuous Delivery takes it to the release phase which is still manually driven. Mature SDLC and Agile organization make it the Continuous Deployment where automation can be realized with efficiency.
Continuous Integration (CI) is the practice of merging all developer working copies to a shared pipeline several times a day.
In practice, CI involves a centralized server that continually pulls in all new source code changes as developers commit them and builds the software application from scratch, notifying the team of any failures in the process
A CI pipeline at its simplest form would be similar to this whether it was deployed on premises or in the cloud.
Benefits of Continuous Integration (CI)
The main benefits of Continuous Integration are really focused on cost efficiency, reduction of risk and the removal of manual processes
Continuous Delivery is the ability to facilitate changes of all types with developer copies which includes new features, configuration changes, bug fixes and experiments into production, or into the hands of users, safely and quickly in a sustainable way.
Continuous Deployments can be thought of as an extension of continuous integration, aiming at minimizing lead time, the time elapsed between development writing one new line of code and this new code being used by live users, in production
Benefits of Continuous Delivery
The main benefits of Continuous Delivery are focused on the lower risk of release, faster time to market and the high quality of software that is produced at lower costs
Continuous Deployments can be thought of as an extension of continuous integration effectively minimizing lead time which is the time elapsed between development writing one new line of code and this new code being used by live users, in production
Continuous deployment is just as difficult and typically takes significant investment of which only a few small and mid-size organizations can invest in.
Benefits of Continuous Deployment
The main benefits of Continuous Deployments are lower risks, reduce lead time to market, quicker feedback and an improved Return on Investment (ROI) as well.
With Google Cloud Platform I generally like to highlight the workflow and describe why the code is kept in a Github and how the pipeline works from the start to finish.
For example, when reviewing Google Cloud Services, you want to get an idea what DevOps services are supported and how they are supported.
- Cloud Source Repositories is a “GitHub” that is hosted on GCP.
- Cloud Build is the service that can be used to execute your builds.
- Container Registry is used for artifact management and support secure containers, revision control and management.
- Kubernetes Engine is Google Cloud’s hosted Docker container service. (PaaS).
Check out the Google Cloud Professional DevOps Certification – All in One Guide.
Deployment Manager is an Infrastructure as Code solution we can use for rapidly and consistently deploying cloud resources.
Deployment Manager uses a configuration which describes all the resources you want for a single deployment. A configuration is a file written in YAML syntax that lists each of the resources you want to create and its respective resource properties.
Deployment Manager bases its execution on config files (YAML) and templates (JINJA2 or PYTHON) and allows you to define your resources. Resources are represented in Cloud Deployment Manager by API Resources.
Deployment Manager is a GCP-only tool and as such allows you to access both Beta and Alpha features.
We can “preview” this deployment by use the preview flag.
gcloud deployment-manager deployments create example-config –config configuration-file.yaml –preview
Previewing a configuration allows you see the resources that Deployment Manager would create if actually deployed.
The preview flag can be used to verify resources before actually deploying.
Deployment Manager will be covered much more in another post.
Stackdriver (Google Operations) Stackdriver is a hybrid Monitoring, logging, and diagnostics for applications on Cloud Platform and AWS.
Stackdriver was purchased by Google and was rebranded to Google Stackdriver. It now has been recently rebranded again to “Operations”
Stackdriver monitors the clouds service layers in a single SaaS solutions Stackdriver also has native integration with Google Cloud data tools such as BigQuery, Cloud Pub/Sub, Cloud Storage, Cloud Datalab, and out-of-the-box integration with all your other application components.
Stackdriver has several features and components
- Error Reporting
- Application Performance Management (APM) which includes Trace, Debugger and Profiler.
Stackdriver is covered in the post/tutorial below.
Google Kubernetes Engine is a cluster manager and orchestrator for running Docker containers. Kubernetes Engine schedules containers into a cluster and automatically manages them based on requirements you define declaratively using configuration files.
GKE is built on the open source Kubernetes system, and integrates with other Google Cloud Platform services using dedicated client libraries for a variety of supported languages.
Kubernetes Engine clusters run on Compute Engine instances or virtual machines known as nodes. In this lab, you create the container cluster using the Cloud SDK and then use the kubectl command line tool to deploy and scale containers running your application on Kubernetes.
- Continuous Integration (CI) is the practice of merging all developer working copies to a shared pipeline several times a day. Tests all code with the master code
- Continuous Delivery (CD) is the ability to facilitate changes of all types with developer working copies. This is a manual approval is generally required.
- Continuous Deployment is an extension of Continuous Integration (CI) which aims to effectively minimize lead time thru automation. This is the next logical step after Continuous Delivery where automation is implemented.
- DevOps is an enterprise software development phrase that is used to describe an optimal agile relationship between development and IT operations.
- Pipeline (mainline) in the world of software development is a term used to describe effectively a workflow for your working copies.
- Artifacts are container images, binaries, etc that stored in Container Registry or Cloud Storage.
- Triggers are used to sync up changes to appropriate branch when changes are made to your code.
Check out my full course on Google Cloud Platform DevOps!
Looking to accomplish your Google Cloud Platform Certification or just learn more about GCP DevOps options and services? This course will focus on what DevOps is and how it applies to GCP Services. We will cover the major services as they relate to deploying a CI Pipeline or a CD Pipeline. We will also review Kubenetes Engine, App Engine and Cloud Functions.
Demand for Google Cloud Professionals .
Cloud Technology is growing at an exceptional speed; Cloud Architects have long agreed to accept the challenge of AWS and Azure certifications. Now the cloud platform that has consistent demand is Google Cloud. Google Cloud is a niche play still, but with that comes some great salary demand.
CLO – TechCommanders
Join TechCommanders Today.
Over 60 Courses and Practice Questions!
Coaching and CloudINterviewACE
Stay connected with news and updates!
Join our mailing list to receive the latest news and updates from our team.
Don't worry, your information will not be shared.
We hate SPAM. We will never sell your information, for any reason.