Cloud computing has been around for more than two decades, and despite the technical efficiencies and cost-related benefits it delivers to DevOps teams, a large portion of the agile community continues to create and run their products without this technology.
As Dell reports, 29% of U.S. businesses keep all of their vital data and systems up and running on in-house server infrastructures. However, 94% of companies that are already using cloud servers say that it is the cloud infrastructure that makes it easier to meet DevOps challenges like cybersecurity, big data processing, mobility, and sustainability. Those businesses enjoy up to 62% faster revenue growth than their competitors.
There is no doubt that cloud infrastructures will remain a dominating trend to support virtual services and resources in custom product development, DevOps, and continuous delivery. Google cloud platform (GCP) has been recognized as a leading cloud computing solution for DevOps and product teams to build and manage infrastructure in the cloud, using virtual machines and services. Google offers one of the largest networks in the world to deliver fast, consistent, and scalable performance.
Here below we talk about the basics of deploying and managing infrastructure in the cloud using Google cloud platform.
When you as a DevOps engineer need to create and manage your product in the cloud, you should find answers to at least these questions:
And a lot of other questions are likely to come.
At Intersog, we want to help you with cloud development, DevOps and continuous delivery. Here are the tools and technologies we use:
We break down the whole process into two phases. The first phase is to set up the infrastructure, and the second one is to build and deploy the product. Let’s see each in detail.
To get this done, you will need Terraform, Puppet, Helm, Kubernetes, and Google cloud services. As the block-scheme demonstrates below, the setup process is straightforward.
Let’s get in detail. Here are the eight essential steps to set up infrastructure on Google cloud platform:
resource "google_container_cluster" "primary" {
name = "development"
location = "us-central1"
remove_default_node_pool = true
initial_node_count = 1
master_auth {
username = ""
password = ""
client_certificate_config {
issue_client_certificate = false
}
}
}
# Global variables
export nodes="node1,node2,nodeN"
export repo_path="/path/to/infrastructure"
export project="admin"
####
# PostgreSQL installation
# Mount additional volume
bolt plan run pear_ai::mount \
--nodes=${nodes}
--u centos --run-as root \
--private-key ${repo_path}/terraform/${project}/id_rsa \
--modulepath ${repo_path}/puppet/modules \
--no-host-key-check mount_path='/var/lib/pgsql'
# Install PostgreSQL
bolt plan run pear_ai::postgres_install \
--nodes=${nodes} --u centos --run-as root \
--private-key ${repo_path}/terraform/${project}/id_rsa \
--modulepath ${repo_path}/puppet/modules \
--no-host-key-check
When you have taken all these steps to get your cloud infrastructure ready, next you proceed to the product development phase. Make sure, you create users and grant permissions for additional software.
Your product development starts with Jira, an issue tracking system, where you have a story point and several related tasks. With this system, you can automate the process of building and deploying your product as much as possible. Take the following steps to get this done:
For each of these branches you need to do some configuration including: create webhooks to Jenkins and Jira, grant permissions for admin and development groups, create a flow for "Pull Request", and check CI. Each developer needs to create a new branch with the same name as in Jira.
You installed and configured plugins for working with GitHub, GCP, Kubernetes, Jira, Slack and etc. As mentioned above, Jenkins needs to be installed into the Kubernetes cluster, and for Slaves you use Jenkins Kubernetes agent with running on pod into the cluster.
When you have a Ticket branch, we use "Pull Request" and webhooks for building your applications. Each application should work with Docker. You start building the application using Jenkins server, and then you send a request to the Jenkins plugin for creating a slave pod.
As we mentioned above, Jenkins server works with the admin cluster. You can manage users and their privileges using FreeIpa via a secured VPN tunnel. Nobody can access FreeIpa from outside the network; however, Jenkins server is still available because you use Github webhooks, Jira CI, and Slack notifications.
In Jenkins server, you use PostgreSQL to store essential data (ticket numbers, service names, QA reporting, and more). All Github jobs and Jenkins pipelines are saved on Groovy.
podTemplate(containers: [
containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat')
]) {
node(build) {
stage('Get a Maven project') {
git 'https://github.com/jenkinsci/kubernetes-plugin.git'
container('maven') {
stage('Build a Maven project') {
sh 'mvn -B clean install'
}
}
}
stage('Get a Golang project') {
git URL: 'https://github.com/hashicorp/terraform.git'
container('golang') {
stage('Build a Go project') {
sh """
mkdir -p /go/src/github.com/hashicorp
ln -s `pwd` /go/src/github.com/hashicorp/terraform
cd /go/src/github.com/hashicorp/terraform && make core-dev
"""
}
}
}
}
Intersog, a leading technology partner, gains recognition on Clutch's prestigious list for game-changing software developers…
In the shift towards widespread remote work, the adoption of advanced digital tools marks a…
In the quest for innovation, the fusion of AI and Machine Learning with global remote…
In an era marked by rapid technological progress, the fusion of cloud computing and artificial…
Explore Intersog's unique approach to tech recruitment, offering a transparent, direct path to genuine career…
Explore the critical role and innovative strategies of efficient software maintenance for ensuring software stability,…
This website uses cookies.