SlideShare a Scribd company logo
Author: Developer Support Team-Luoyangyang 00525118
(DTSE of Huawei Cloud)
Instructor: Jirayut Nimsaeng
HUAWEI CONNECT 2022 Bangkok: Hands-on Lab
September 21, 2022
Introduction of
CCE and DevCloud
https://bit.ly/opsta-huawei-hol-devcloud-cce-2022
Introduction of CCE and DevCloud
Instructor
Jirayut Nimsaeng (Dear)
Jirayut has been involved in DevSecOps, Container, Cloud Technology
and Open Source for over 10 years. He has experienced and
succeeded in transforming several companies to deliver greater
values and be more agile.
● He is Founder and CEO of Opsta (Thailand) Co.,Ltd.
● He is Cloud/DevSecOps Transformation Consultant and
Solution Architecture
● He is the first Certified Kubernetes Administrator (CKA) and
Certified Kubernetes Security Specialist (CKS) in Thailand
Introduction of CCE and DevCloud
Agenda
● Docker, Kubernetes and CCE
● Code repository and CI/CD
● DevCloud
● Workshop
Introduction of CCE and DevCloud
Prerequisite
Introduction of CCE and DevCloud
Prerequisite
1. https://bit.ly/opsta-huawei-hol-devcloud-cce-2022
2. Register Huawei Cloud Account
3. Activate Coupon
4. Apply Huawei Cloud Developer Forum
Introduction of CCE and DevCloud
Step to Become a Member of Huawei Cloud Developer Forum
1. Log in with your Huawei Cloud account and go
to the Huawei Cloud Developer Forum.
2. Agree to the Developer Forum Privacy Notice and Terms.
3. And then, begin to browse, write posts and reply in the Forum.
Introduction of CCE and DevCloud
Introduction
Introduction of CCE and DevCloud
What is Docker?
● Docker is a software platform.
● It supports rapid construction, test and deployment of application.
● Docker packages software into standardized units called Container, which
have all the features needed to run the software, including libraries, system
tools, code and runtime.
● With Docker, people can quickly deploy and scale applications upon any
environment.
● Docker containers are virtualized at the operating system level, with
resource isolation (CPU, memory, disk space) and isolation of process,
network and user id through Linux's cgroup and namespace, respectively.
Introduction of CCE and DevCloud
What is Docker?
Introduction of CCE and DevCloud
What is Kubernetes?
● Kubernetes, originated from google, is an open source system for scheduling
and orchestration of containerized applications.
● For application developers, kubernetes can be regarded as a cluster
operating system.
● Kubernetes provides functions such as service discovery, scaling, load
balancing, self-healing, and even leader election, freeing developers from
infrastructure-related configurations.
● When using Kubernetes, it's like you run a large number of servers as one on
which your applications run. Regardless of the number of servers in a
Kubernetes cluster, the method for deploying applications in Kubernetes is
always the same.
Introduction of CCE and DevCloud
What is Kubernetes?
Introduction of CCE and DevCloud
What is Cloud Container Engine(CCE)?
● CCE provides highly scalable, high-performance, enterprise-class Kubernetes
clusters and supports Docker containers. With CCE, you can easily deploy,
manage, and scale containerized applications in the cloud.
● It supports heterogeneous computing architectures such as GPU, NPU, and Arm.
Supporting multi-AZ and multi-region disaster recovery, CCE ensures high
availability of Kubernetes clusters.
● Huawei Cloud is one of world's first Kubernetes Certified Service Providers
(KCSPs) and China's first participant in the Kubernetes community.
● Huawei Cloud is also a founder and platinum member of Cloud Native
Computing Foundation (CNCF).
● CCE is one of the world's container services to first pass the Certified Kubernetes
Conformance Program.
Introduction of CCE and DevCloud
What is Cloud Container Engine(CCE)?
Introduction of CCE and DevCloud
What is Code repository?
● Code repository is an archive of code, documents, web pages, notes etc.
● Code repository supports committing of code, code rollback, code merge
and many other code version control functions.
● Code repository (private or public) is the must tool for any business
successful software project.
● Normally, using git as the basic command tool.
● Huawei Cloud provides a git-based online code repository, CodeHub, which
is a component of DevCloud.
Introduction of CCE and DevCloud
What is Code repository?
Introduction of CCE and DevCloud
What is CI/CD?
● CI is the short for Continuous Integration, which means continuously
integrate any changes of the software into the main branch
● CD is the short for Continuous Delivery, which means reliable software can be
released at any time with simple and repeatable deployment.
● Pipeline integrates the CI and CD process, providing visualized, customizable
automatic delivery to shorten the delivery period and improve efficiency.
● Huawei Cloud’s product CloudPipeline provides a visualized and automated
task scheduling platform, which is one of DevCloud components.
Introduction of CCE and DevCloud
What is DevCloud?
● DevCloud is a one-stop, cloud-based DevOps platform that provides a bundle
of out-of-the-box cloud services covering requirement delivery, code commit,
code build, verification, deployment, and release.
● DevCloud consists of ProjectMan, CodeHub, CloudPipeline, CloudBuild,
CloudDeploy and CloudRelease.
● ProjectMan provides agile project management and collaboration, supports
management of sprints, milestones, and requirements across projects, tracks
bugs, and provides multi-dimensional statistics reports.
Introduction of CCE and DevCloud
What is DevCloud?
● CloudBuild provides an easy-to-use hybrid language build platform to implement
cloud-based build, and supports continuous and efficient delivery.
● With CloudBuild, you can create, configure, and run build tasks with a few clicks.
CloudBuild also supports automation of code retrieval, build, and packaging, as well as
real-time status monitoring.
● CloudDeploy provides visualized, one-click deployment. It supports deployment on VMs
or containers by using Tomcat, Spring Boot, and other templates or by flexibly
orchestrating atomic actions.
● CloudDeploy also supports parallel deployment and seamless integration with
CloudPipeline, providing standard deployment environments and implementing automatic
deployment.
● CloudRelease helps software development teams manage the software release process in
a standardized, visualized, and traceable way
Introduction of CCE and DevCloud
What is DevCloud?
Introduction of CCE and DevCloud
Workshop
Introduction of CCE and DevCloud
Summary Steps
1. Prepare before DevCloud
1.1. Register Huawei Cloud Account
1.2. Activate Coupon
1.3. Apply Huawei Cloud Developer
Forum
1.4. Change to AP-Singapore Region
1.5. Create VPC
1.6. Create CCE Cluster
1.7. Create SWR Organization
1.8. Buy DevCloud
1.9. Create DevCloud Project
2. DevCloud CI/CD
2.1. Create CodeHub Repository
a. Put Dockerfile
b. Put K8s deployment file
2.2. Create CloudBuild prebuild step
2.3. Create CloudBuild build step
2.4. Create CloudDeploy to K8s
2.5. Create & Run CloudPipeline
2.6. Create Service for deployment
2.7. Test Result
Introduction of CCE and DevCloud
Workshop 1
Prepare before
DevCloud
Introduction of CCE and DevCloud
1.5 Create VPC
Basic Information
● Name: vpc-cce
● IPv4 CIDR Block:
Select 192.168.0.0/16-24
Default Subnet
● Name: subnet–cce
Introduction of CCE and DevCloud
1.6.1 Create CCE: Configure
● Billing Mode: Pay-per-use
● Cluster Name: cce-devcloud
● Number of master nodes: 1
● I already know the following constraints: checked
● VPC: vpc-cce(192.168.0.0/16)
● Subnet: subnet-cce(1923.168.0.0/24)
● Network Model: Tunnel network
● Container Network Segment: Automatically select
Introduction of CCE and DevCloud
1.6.2 Create Node
● Specifications: c6s.xlarge.2
● EIP: Automatically assign
● Bandwidth: 3
● Password: [YOUR_SECURE_PASSWORD]
Introduction of CCE and DevCloud
1.6.3 Confirm
● I am aware of the above limitation: checked
Introduction of CCE and DevCloud
1.7 Create SWR Organization
● Organization Name: [YOUR_UNIQUE_ORG_NAME]
Introduction of CCE and DevCloud
1.8.1 Buy DevCloud: Try for free
Introduction of CCE and DevCloud
1.8.2 Buy DevCloud
● All Default
Introduction of CCE and DevCloud
1.8.3 Buy DevCloud: Pay
● All Default
Introduction of CCE and DevCloud
1.8.4 Buy DevCloud: Pay
Introduction of CCE and DevCloud
1.9 Create DevCloud Project
● Project Template: Scrum
● Project Name: Spring Web
● Project Code: spring_web
Introduction of CCE and DevCloud
Workshop 2
DevCloud CI/CD
Introduction of CCE and DevCloud
2.1.1 Create CodeHub Repository
1. Go to Code > CodeHub
2. Click on arrow next to Create Directly >
Use Template
Introduction of CCE and DevCloud
2.1.2 Create CodeHub Repository
1. Search for Java Web Demo and select it
2. Click Next
3. Repository Name: spring_web
Introduction of CCE and DevCloud
2.1.3 Create CodeHub Repository: Result
Introduction of CCE and DevCloud
2.1.4 Create Dockerfile
1. Go to your spring_web repository
2. Click on plus sign next to spring_web repository name > Create File
Introduction of CCE and DevCloud
2.1.5 Dockerfile Content
# This is the jdk base image in the SWR devcloud_test_luoyangyang repository
# The image would be uploaded to the destination by following later CloudBuild step
FROM swr.ap-southeast-3.myhuaweicloud.com/[YOUR_UNIQUE_ORG_NAME]/java:openjdk-8-jdk-alpine
# Copy the jar to the docker container inside
# The jar would be created by following later CloudBuild step
COPY ./target/demoapp.jar demoapp.jar
# Run the java -jar demoapp.jar command when the image instanced was created
ENTRYPOINT ["java", "-jar", "demoapp.jar"]
Introduction of CCE and DevCloud
2.1.6 Commit Dockerfile
● Create File: Dockerfile
● Put the content of Dockerfile
Introduction of CCE and DevCloud
2.1.7 devcloud-demo-deployment.yaml Content
kind: Deployment
apiVersion: apps/v1
metadata:
name: devcloud-demo
namespace: default
labels:
appgroup: ''
# Use the pipeline parameter versionTag, which would be explained in later CloudPipeline step
version: {{versionTag}}
spec:
# The number of replicas of the pod
replicas: 1
selector:
matchLabels:
app: devcloud-demo
template:
metadata:
creationTimestamp: null
labels:
app: devcloud-demo
annotations:
metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"","path":"","port":"","names":""}]'
spec:
containers:
- name: container-0
image: 'swr.ap-southeast-3.myhuaweicloud.com/[YOUR_UNIQUE_ORG_NAME]/spring_web:{{versionTag}}'
resources:
requests:
cpu: 250m
memory: 512Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: default-secret
affinity: {}
schedulerName: default-scheduler
tolerations:
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoExecute
tolerationSeconds: 300
- key: node.kubernetes.io/unreachable
operator: Exists
effect: NoExecute
tolerationSeconds: 300
dnsConfig:
options:
- name: timeout
value: ''
- name: ndots
value: '5'
- name: single-request-reopen
strategy:
type: Recreate
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
Introduction of CCE and DevCloud
2.2 Create CloudBuild
Introduction of CCE and DevCloud
2.2.1 Create CloudBuild: prebuild
Introduction of CCE and DevCloud
2.2.2 CloudBuild prebuild: Add Parameters
● Docker Organization Name
○ Parameter Name: dockerOrg
○ Parameter Value: [YOUR_UNIQUE_ORG_NAME]
Introduction of CCE and DevCloud
2.2.3 Create CloudBuild: prebuild
Result
Introduction of CCE and DevCloud
2.2.4 CloudBuild prebuild: Edit Shell
echo 'hello'
# Create a file named Dockerfile-java
echo 'FROM java:openjdk-8-jdk-alpine' > Dockerfile-java
Introduction of CCE and DevCloud
2.2.5 CloudBuild prebuild: Edit Build Image
● Organization: ${dockerOrg}
● Image Name: java
● Image Tag: openjdk-8-jdk-alpine
● Dockerfile Path: ./Dockerfile-java
Introduction of CCE and DevCloud
2.2.6 CloudBuild prebuild: Add Parameters
● Task Name: spring_web-prebuild
● Create
Introduction of CCE and DevCloud
2.2.7 CloudBuild prebuild: Run
Introduction of CCE and DevCloud
2.2.4 CloudBuild prebuild: Run Log
Introduction of CCE and DevCloud
2.3.1 CloudBuild build: Build Image
● Docker Organization Name
○ Parameter Name: dockerOrg
○ Parameter Value: [YOUR_UNIQUE_ORG_NAME]
● Version Tag
○ Parameter Name: versionTag
○ Parameter Value: v1.1
1. Create Task CloudBuild
2. Choose spring_web repository
3. Choose Blank Template
Introduction of CCE and DevCloud
2.3.2 CloudBuild build: Add Actions
Introduction of CCE and DevCloud
2.3.3 CloudBuild build: Build Image
● Organization: ${dockerOrg}
● Image Name: spring_web
● Image Tag: ${versionTag}
Introduction of CCE and DevCloud
2.3.4 CloudBuild build: Build Image
● Build Package Directory: *.yaml
● Release Version: yaml
● Package Name: spring_web
Introduction of CCE and DevCloud
2.3.5 CloudBuild build: Build Image
● Task Name: spring_web-build
● Create
Introduction of CCE and DevCloud
2.3.6 CloudBuild build: Run Parameter
Introduction of CCE and DevCloud
2.3.7 Check result in CloudArtifact
Introduction of CCE and DevCloud
2.3.8 Check result in SWR
Introduction of CCE and DevCloud
2.4.1 CloudDeploy: Create Task
Introduction of CCE and DevCloud
2.4.2 CloudDeploy: Create Task
Introduction of CCE and DevCloud
2.4.3 CloudDeploy: Edit Deploy Configure
● Cluster Type: CCE Cluster
● Cluster Name: cce-devcloud
● Namespace Name: default
● Deployment YML File or Folder:
/devcloud-demo/yaml/devcloud-demo.yaml
Introduction of CCE and DevCloud
2.4.4 CloudDeploy: Task Parameter
● Version Tag
○ Parameter Name: versionTag
○ Parameter Value: v1.1
Introduction of CCE and DevCloud
2.4.5 CloudDeploy: Basic Information
● Parameter Value: deploy-cce
Introduction of CCE and DevCloud
2.5.1 CloudPipeline: Create Pipeline
Introduction of CCE and DevCloud
2.5.2 CloudPipeline: Choose Repository
Introduction of CCE and DevCloud
2.5.3 CloudPipeline: Blank Template
Introduction of CCE and DevCloud
2.5.4 CloudPipeline: Add Parameter
● Version Tag
○ Parameter Name: versionTag
○ Parameter Value: v1.1
Introduction of CCE and DevCloud
2.5.5 CloudPipeline: Edit Build Stage
● Name: Build
● Task Execution: Serial
Introduction of CCE and DevCloud
2.5.6 CloudPipeline: Add Prebuild Task
● Name: Prebuild
● Select Task: spring_web-prebuild
● Repository: spring_web
Introduction of CCE and DevCloud
2.5.7 CloudPipeline: Add CloudBuild Task
● Name: CloudBuild
● Select Task: spring_web-build
● Repository: spring_web
● VersionTag: ${versionTag}
Introduction of CCE and DevCloud
2.5.8 CloudPipeline: Add Deploy Stage
● Name: Deploy
● Task Execution: Serial
Introduction of CCE and DevCloud
2.5.9 CloudPipeline: Add CloudDeploy Task
● Type: Deployment
● Name: CloudDeploy
● Select Task: deploy-cce
● VersionTag: ${versionTag}
Introduction of CCE and DevCloud
2.5.10 CloudPipeline: Edit Name
● Name: pipeline-cce
Introduction of CCE and DevCloud
2.5.11 CloudPipeline: Execute CloudPipeline
Introduction of CCE and DevCloud
2.6.1 Check CCE Deployment Status
Introduction of CCE and DevCloud
2.6.2 Create Service for Pod
Introduction of CCE and DevCloud
2.6.3 Create Service for Pod
● Access Type: NodePort
● Container Port: 8080
Introduction of CCE and DevCloud
2.6.4 Access to Web
Introduction of CCE and DevCloud
2.6.5 Web Result
Introduction of CCE and DevCloud
Destroy Resources
Introduction of CCE and DevCloud
Destroy Steps
3.1. Unsubscribe DevCloud
3.2. Delete CCE Cluster
3.3. Delete all SWR Image
3.4. Delete SWR Organization
Introduction of CCE and DevCloud
3.1.1 Unsubscribe DevCloud
Introduction of CCE and DevCloud
3.1.2 Unsubscribe DevCloud
Introduction of CCE and DevCloud
3.1.3 Unsubscribe DevCloud
Introduction of CCE and DevCloud
3.1.4 Unsubscribe DevCloud
Introduction of CCE and DevCloud
3.2.1 Delete CCE Cluster
Introduction of CCE and DevCloud
3.2.2 Delete CCE Cluster
Introduction of CCE and DevCloud
3.3.1 Delete All SWR Image
Introduction of CCE and DevCloud
3.3.2 Delete All SWR Image
Introduction of CCE and DevCloud
3.4.1 Delete SWR Org
Introduction of CCE and DevCloud
3.4.2 Delete SWR Org
Introduction of CCE and DevCloud
3.4.3 Delete SWR Org
Introduction of CCE and DevCloud
Wrap Up
Introduction of CCE and DevCloud
DevSecOps Platform on Huawei Cloud
CodeHub
SWR
CloudBuild
*CloudTest
Cloud
Deploy
Monitoring
Automation &
Infrastructure as Code
Automation Security
Apps
dev uat prd
CCE
ProjectMan
DevCloud
AOM
Log Tank
Service
APM
CGS KMS
*CodeCheck
*CloudIDE
DEW
Cloud
Pipeline
Load Testing
CPTS
Introduction of CCE and DevCloud
Contact Us
jirayut@opsta.co.th
Jirayut Nimsaeng
CEO & Founder
Opsta (Thailand)
086-069-4042
Facebook

More Related Content

PDF
Introduction to CICD
PDF
Deploy Application on Kubernetes
PDF
Introduction to Kubernetes with demo
PDF
Introduction to docker
PDF
An overview of the Kubernetes architecture
PDF
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
PDF
DevOps - Interview Question.pdf
PDF
Deploy 22 microservices from scratch in 30 mins with GitOps
Introduction to CICD
Deploy Application on Kubernetes
Introduction to Kubernetes with demo
Introduction to docker
An overview of the Kubernetes architecture
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
DevOps - Interview Question.pdf
Deploy 22 microservices from scratch in 30 mins with GitOps

What's hot (20)

PPTX
Introduction to kubernetes
PPTX
Gitlab CI/CD
PDF
Rancher Rodeo
PPTX
Kubernetes PPT.pptx
PPTX
Kubernetes Introduction
PPTX
GitLab for CI/CD process
PDF
Deploying your first application with Kubernetes
PDF
Kubernetes Basics
PDF
EKS vs GKE vs AKS - Evaluating Kubernetes in the Cloud
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
PDF
Docker 101: Introduction to Docker
PPTX
DevOps introduction
PDF
DevOps with Ansible
PDF
Infrastructure as Code
PDF
Terraform GitOps on Codefresh
PDF
Docker Introduction
PDF
Achieving CI/CD with Kubernetes
PPTX
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
PDF
Kubernetes Deployment Strategies
PPTX
Introduction to Azure Pipelines Presentation
Introduction to kubernetes
Gitlab CI/CD
Rancher Rodeo
Kubernetes PPT.pptx
Kubernetes Introduction
GitLab for CI/CD process
Deploying your first application with Kubernetes
Kubernetes Basics
EKS vs GKE vs AKS - Evaluating Kubernetes in the Cloud
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Docker 101: Introduction to Docker
DevOps introduction
DevOps with Ansible
Infrastructure as Code
Terraform GitOps on Codefresh
Docker Introduction
Achieving CI/CD with Kubernetes
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Kubernetes Deployment Strategies
Introduction to Azure Pipelines Presentation
Ad

Similar to Introduction of CCE and DevCloud (20)

PPTX
[20200720]cloud native develoment - Nelson Lin
PPTX
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
PPTX
Using Docker EE in a CI/CD Workflow
PPTX
20170321 docker with Visual Studio 2017
PDF
My kubernetes toolkit
PDF
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
PDF
What's New in Docker
PDF
Docker Birthday #3 Slides - Overview
PDF
Docker Birthday #3 - Intro to Docker Slides
PDF
DockerPenang Meetup#1
PDF
How to build DevSecOps Platform on Huawei Cloud
PDF
Introduction to kubernetes
PDF
A curtain-raiser to the container world Docker & Kubernetes
PDF
Containers and microservices for realists
PDF
Containers and Microservices for Realists
PDF
[@NaukriEngineering] Docker 101
PDF
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
PPTX
Docker Bday #5, SF Edition: Introduction to Docker
PDF
Developer workflow with docker
PDF
Docker Birthday #5 Meetup Cluj - Presentation
[20200720]cloud native develoment - Nelson Lin
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
Using Docker EE in a CI/CD Workflow
20170321 docker with Visual Studio 2017
My kubernetes toolkit
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
What's New in Docker
Docker Birthday #3 Slides - Overview
Docker Birthday #3 - Intro to Docker Slides
DockerPenang Meetup#1
How to build DevSecOps Platform on Huawei Cloud
Introduction to kubernetes
A curtain-raiser to the container world Docker & Kubernetes
Containers and microservices for realists
Containers and Microservices for Realists
[@NaukriEngineering] Docker 101
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Docker Bday #5, SF Edition: Introduction to Docker
Developer workflow with docker
Docker Birthday #5 Meetup Cluj - Presentation
Ad

More from Opsta (20)

PDF
Let's build Developer Portal with Backstage
PDF
Kubernetes Secrets Management on Production with Demo
PDF
Make a better DevOps with GitOps
PDF
Platform Engineering
PDF
Manage Kubernetes Clusters with Cluster API and ArgoCD
PDF
Security Process in DevSecOps
PDF
How we can do Multi-Tenancy on Kubernetes
PDF
Scaling DevSecOps Culture for Enterprise
PDF
Introduction to Kubernetes and GKE
PDF
Introduction to Google Cloud Platform
PDF
Managing traffic routing with istio and envoy workshop
PDF
How to pass the Google Certification Exams
PDF
How to Become DevOps
PDF
DevOps: The Future of Software Development
PDF
Real World CI/CD with Kubernetes
PDF
Journey of Kubernetes Scaling
PDF
DevOps Transformation in Technical
PDF
Performance Testing with Tsung
PDF
What you have to know about Certified Kubernetes Administrator (CKA)
PDF
Introduction to Kubernetes and Google Container Engine (GKE)
Let's build Developer Portal with Backstage
Kubernetes Secrets Management on Production with Demo
Make a better DevOps with GitOps
Platform Engineering
Manage Kubernetes Clusters with Cluster API and ArgoCD
Security Process in DevSecOps
How we can do Multi-Tenancy on Kubernetes
Scaling DevSecOps Culture for Enterprise
Introduction to Kubernetes and GKE
Introduction to Google Cloud Platform
Managing traffic routing with istio and envoy workshop
How to pass the Google Certification Exams
How to Become DevOps
DevOps: The Future of Software Development
Real World CI/CD with Kubernetes
Journey of Kubernetes Scaling
DevOps Transformation in Technical
Performance Testing with Tsung
What you have to know about Certified Kubernetes Administrator (CKA)
Introduction to Kubernetes and Google Container Engine (GKE)

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Electronic commerce courselecture one. Pdf
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Digital-Transformation-Roadmap-for-Companies.pptx
Empathic Computing: Creating Shared Understanding
NewMind AI Monthly Chronicles - July 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Network Security Unit 5.pdf for BCA BBA.
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
Understanding_Digital_Forensics_Presentation.pptx
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The AUB Centre for AI in Media Proposal.docx
Electronic commerce courselecture one. Pdf

Introduction of CCE and DevCloud

  • 1. Author: Developer Support Team-Luoyangyang 00525118 (DTSE of Huawei Cloud) Instructor: Jirayut Nimsaeng HUAWEI CONNECT 2022 Bangkok: Hands-on Lab September 21, 2022 Introduction of CCE and DevCloud https://bit.ly/opsta-huawei-hol-devcloud-cce-2022
  • 2. Introduction of CCE and DevCloud Instructor Jirayut Nimsaeng (Dear) Jirayut has been involved in DevSecOps, Container, Cloud Technology and Open Source for over 10 years. He has experienced and succeeded in transforming several companies to deliver greater values and be more agile. ● He is Founder and CEO of Opsta (Thailand) Co.,Ltd. ● He is Cloud/DevSecOps Transformation Consultant and Solution Architecture ● He is the first Certified Kubernetes Administrator (CKA) and Certified Kubernetes Security Specialist (CKS) in Thailand
  • 3. Introduction of CCE and DevCloud Agenda ● Docker, Kubernetes and CCE ● Code repository and CI/CD ● DevCloud ● Workshop
  • 4. Introduction of CCE and DevCloud Prerequisite
  • 5. Introduction of CCE and DevCloud Prerequisite 1. https://bit.ly/opsta-huawei-hol-devcloud-cce-2022 2. Register Huawei Cloud Account 3. Activate Coupon 4. Apply Huawei Cloud Developer Forum
  • 6. Introduction of CCE and DevCloud Step to Become a Member of Huawei Cloud Developer Forum 1. Log in with your Huawei Cloud account and go to the Huawei Cloud Developer Forum. 2. Agree to the Developer Forum Privacy Notice and Terms. 3. And then, begin to browse, write posts and reply in the Forum.
  • 7. Introduction of CCE and DevCloud Introduction
  • 8. Introduction of CCE and DevCloud What is Docker? ● Docker is a software platform. ● It supports rapid construction, test and deployment of application. ● Docker packages software into standardized units called Container, which have all the features needed to run the software, including libraries, system tools, code and runtime. ● With Docker, people can quickly deploy and scale applications upon any environment. ● Docker containers are virtualized at the operating system level, with resource isolation (CPU, memory, disk space) and isolation of process, network and user id through Linux's cgroup and namespace, respectively.
  • 9. Introduction of CCE and DevCloud What is Docker?
  • 10. Introduction of CCE and DevCloud What is Kubernetes? ● Kubernetes, originated from google, is an open source system for scheduling and orchestration of containerized applications. ● For application developers, kubernetes can be regarded as a cluster operating system. ● Kubernetes provides functions such as service discovery, scaling, load balancing, self-healing, and even leader election, freeing developers from infrastructure-related configurations. ● When using Kubernetes, it's like you run a large number of servers as one on which your applications run. Regardless of the number of servers in a Kubernetes cluster, the method for deploying applications in Kubernetes is always the same.
  • 11. Introduction of CCE and DevCloud What is Kubernetes?
  • 12. Introduction of CCE and DevCloud What is Cloud Container Engine(CCE)? ● CCE provides highly scalable, high-performance, enterprise-class Kubernetes clusters and supports Docker containers. With CCE, you can easily deploy, manage, and scale containerized applications in the cloud. ● It supports heterogeneous computing architectures such as GPU, NPU, and Arm. Supporting multi-AZ and multi-region disaster recovery, CCE ensures high availability of Kubernetes clusters. ● Huawei Cloud is one of world's first Kubernetes Certified Service Providers (KCSPs) and China's first participant in the Kubernetes community. ● Huawei Cloud is also a founder and platinum member of Cloud Native Computing Foundation (CNCF). ● CCE is one of the world's container services to first pass the Certified Kubernetes Conformance Program.
  • 13. Introduction of CCE and DevCloud What is Cloud Container Engine(CCE)?
  • 14. Introduction of CCE and DevCloud What is Code repository? ● Code repository is an archive of code, documents, web pages, notes etc. ● Code repository supports committing of code, code rollback, code merge and many other code version control functions. ● Code repository (private or public) is the must tool for any business successful software project. ● Normally, using git as the basic command tool. ● Huawei Cloud provides a git-based online code repository, CodeHub, which is a component of DevCloud.
  • 15. Introduction of CCE and DevCloud What is Code repository?
  • 16. Introduction of CCE and DevCloud What is CI/CD? ● CI is the short for Continuous Integration, which means continuously integrate any changes of the software into the main branch ● CD is the short for Continuous Delivery, which means reliable software can be released at any time with simple and repeatable deployment. ● Pipeline integrates the CI and CD process, providing visualized, customizable automatic delivery to shorten the delivery period and improve efficiency. ● Huawei Cloud’s product CloudPipeline provides a visualized and automated task scheduling platform, which is one of DevCloud components.
  • 17. Introduction of CCE and DevCloud What is DevCloud? ● DevCloud is a one-stop, cloud-based DevOps platform that provides a bundle of out-of-the-box cloud services covering requirement delivery, code commit, code build, verification, deployment, and release. ● DevCloud consists of ProjectMan, CodeHub, CloudPipeline, CloudBuild, CloudDeploy and CloudRelease. ● ProjectMan provides agile project management and collaboration, supports management of sprints, milestones, and requirements across projects, tracks bugs, and provides multi-dimensional statistics reports.
  • 18. Introduction of CCE and DevCloud What is DevCloud? ● CloudBuild provides an easy-to-use hybrid language build platform to implement cloud-based build, and supports continuous and efficient delivery. ● With CloudBuild, you can create, configure, and run build tasks with a few clicks. CloudBuild also supports automation of code retrieval, build, and packaging, as well as real-time status monitoring. ● CloudDeploy provides visualized, one-click deployment. It supports deployment on VMs or containers by using Tomcat, Spring Boot, and other templates or by flexibly orchestrating atomic actions. ● CloudDeploy also supports parallel deployment and seamless integration with CloudPipeline, providing standard deployment environments and implementing automatic deployment. ● CloudRelease helps software development teams manage the software release process in a standardized, visualized, and traceable way
  • 19. Introduction of CCE and DevCloud What is DevCloud?
  • 20. Introduction of CCE and DevCloud Workshop
  • 21. Introduction of CCE and DevCloud Summary Steps 1. Prepare before DevCloud 1.1. Register Huawei Cloud Account 1.2. Activate Coupon 1.3. Apply Huawei Cloud Developer Forum 1.4. Change to AP-Singapore Region 1.5. Create VPC 1.6. Create CCE Cluster 1.7. Create SWR Organization 1.8. Buy DevCloud 1.9. Create DevCloud Project 2. DevCloud CI/CD 2.1. Create CodeHub Repository a. Put Dockerfile b. Put K8s deployment file 2.2. Create CloudBuild prebuild step 2.3. Create CloudBuild build step 2.4. Create CloudDeploy to K8s 2.5. Create & Run CloudPipeline 2.6. Create Service for deployment 2.7. Test Result
  • 22. Introduction of CCE and DevCloud Workshop 1 Prepare before DevCloud
  • 23. Introduction of CCE and DevCloud 1.5 Create VPC Basic Information ● Name: vpc-cce ● IPv4 CIDR Block: Select 192.168.0.0/16-24 Default Subnet ● Name: subnet–cce
  • 24. Introduction of CCE and DevCloud 1.6.1 Create CCE: Configure ● Billing Mode: Pay-per-use ● Cluster Name: cce-devcloud ● Number of master nodes: 1 ● I already know the following constraints: checked ● VPC: vpc-cce(192.168.0.0/16) ● Subnet: subnet-cce(1923.168.0.0/24) ● Network Model: Tunnel network ● Container Network Segment: Automatically select
  • 25. Introduction of CCE and DevCloud 1.6.2 Create Node ● Specifications: c6s.xlarge.2 ● EIP: Automatically assign ● Bandwidth: 3 ● Password: [YOUR_SECURE_PASSWORD]
  • 26. Introduction of CCE and DevCloud 1.6.3 Confirm ● I am aware of the above limitation: checked
  • 27. Introduction of CCE and DevCloud 1.7 Create SWR Organization ● Organization Name: [YOUR_UNIQUE_ORG_NAME]
  • 28. Introduction of CCE and DevCloud 1.8.1 Buy DevCloud: Try for free
  • 29. Introduction of CCE and DevCloud 1.8.2 Buy DevCloud ● All Default
  • 30. Introduction of CCE and DevCloud 1.8.3 Buy DevCloud: Pay ● All Default
  • 31. Introduction of CCE and DevCloud 1.8.4 Buy DevCloud: Pay
  • 32. Introduction of CCE and DevCloud 1.9 Create DevCloud Project ● Project Template: Scrum ● Project Name: Spring Web ● Project Code: spring_web
  • 33. Introduction of CCE and DevCloud Workshop 2 DevCloud CI/CD
  • 34. Introduction of CCE and DevCloud 2.1.1 Create CodeHub Repository 1. Go to Code > CodeHub 2. Click on arrow next to Create Directly > Use Template
  • 35. Introduction of CCE and DevCloud 2.1.2 Create CodeHub Repository 1. Search for Java Web Demo and select it 2. Click Next 3. Repository Name: spring_web
  • 36. Introduction of CCE and DevCloud 2.1.3 Create CodeHub Repository: Result
  • 37. Introduction of CCE and DevCloud 2.1.4 Create Dockerfile 1. Go to your spring_web repository 2. Click on plus sign next to spring_web repository name > Create File
  • 38. Introduction of CCE and DevCloud 2.1.5 Dockerfile Content # This is the jdk base image in the SWR devcloud_test_luoyangyang repository # The image would be uploaded to the destination by following later CloudBuild step FROM swr.ap-southeast-3.myhuaweicloud.com/[YOUR_UNIQUE_ORG_NAME]/java:openjdk-8-jdk-alpine # Copy the jar to the docker container inside # The jar would be created by following later CloudBuild step COPY ./target/demoapp.jar demoapp.jar # Run the java -jar demoapp.jar command when the image instanced was created ENTRYPOINT ["java", "-jar", "demoapp.jar"]
  • 39. Introduction of CCE and DevCloud 2.1.6 Commit Dockerfile ● Create File: Dockerfile ● Put the content of Dockerfile
  • 40. Introduction of CCE and DevCloud 2.1.7 devcloud-demo-deployment.yaml Content kind: Deployment apiVersion: apps/v1 metadata: name: devcloud-demo namespace: default labels: appgroup: '' # Use the pipeline parameter versionTag, which would be explained in later CloudPipeline step version: {{versionTag}} spec: # The number of replicas of the pod replicas: 1 selector: matchLabels: app: devcloud-demo template: metadata: creationTimestamp: null labels: app: devcloud-demo annotations: metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"","path":"","port":"","names":""}]' spec: containers: - name: container-0 image: 'swr.ap-southeast-3.myhuaweicloud.com/[YOUR_UNIQUE_ORG_NAME]/spring_web:{{versionTag}}' resources: requests: cpu: 250m memory: 512Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: IfNotPresent restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst securityContext: {} imagePullSecrets: - name: default-secret affinity: {} schedulerName: default-scheduler tolerations: - key: node.kubernetes.io/not-ready operator: Exists effect: NoExecute tolerationSeconds: 300 - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 300 dnsConfig: options: - name: timeout value: '' - name: ndots value: '5' - name: single-request-reopen strategy: type: Recreate revisionHistoryLimit: 10 progressDeadlineSeconds: 600
  • 41. Introduction of CCE and DevCloud 2.2 Create CloudBuild
  • 42. Introduction of CCE and DevCloud 2.2.1 Create CloudBuild: prebuild
  • 43. Introduction of CCE and DevCloud 2.2.2 CloudBuild prebuild: Add Parameters ● Docker Organization Name ○ Parameter Name: dockerOrg ○ Parameter Value: [YOUR_UNIQUE_ORG_NAME]
  • 44. Introduction of CCE and DevCloud 2.2.3 Create CloudBuild: prebuild Result
  • 45. Introduction of CCE and DevCloud 2.2.4 CloudBuild prebuild: Edit Shell echo 'hello' # Create a file named Dockerfile-java echo 'FROM java:openjdk-8-jdk-alpine' > Dockerfile-java
  • 46. Introduction of CCE and DevCloud 2.2.5 CloudBuild prebuild: Edit Build Image ● Organization: ${dockerOrg} ● Image Name: java ● Image Tag: openjdk-8-jdk-alpine ● Dockerfile Path: ./Dockerfile-java
  • 47. Introduction of CCE and DevCloud 2.2.6 CloudBuild prebuild: Add Parameters ● Task Name: spring_web-prebuild ● Create
  • 48. Introduction of CCE and DevCloud 2.2.7 CloudBuild prebuild: Run
  • 49. Introduction of CCE and DevCloud 2.2.4 CloudBuild prebuild: Run Log
  • 50. Introduction of CCE and DevCloud 2.3.1 CloudBuild build: Build Image ● Docker Organization Name ○ Parameter Name: dockerOrg ○ Parameter Value: [YOUR_UNIQUE_ORG_NAME] ● Version Tag ○ Parameter Name: versionTag ○ Parameter Value: v1.1 1. Create Task CloudBuild 2. Choose spring_web repository 3. Choose Blank Template
  • 51. Introduction of CCE and DevCloud 2.3.2 CloudBuild build: Add Actions
  • 52. Introduction of CCE and DevCloud 2.3.3 CloudBuild build: Build Image ● Organization: ${dockerOrg} ● Image Name: spring_web ● Image Tag: ${versionTag}
  • 53. Introduction of CCE and DevCloud 2.3.4 CloudBuild build: Build Image ● Build Package Directory: *.yaml ● Release Version: yaml ● Package Name: spring_web
  • 54. Introduction of CCE and DevCloud 2.3.5 CloudBuild build: Build Image ● Task Name: spring_web-build ● Create
  • 55. Introduction of CCE and DevCloud 2.3.6 CloudBuild build: Run Parameter
  • 56. Introduction of CCE and DevCloud 2.3.7 Check result in CloudArtifact
  • 57. Introduction of CCE and DevCloud 2.3.8 Check result in SWR
  • 58. Introduction of CCE and DevCloud 2.4.1 CloudDeploy: Create Task
  • 59. Introduction of CCE and DevCloud 2.4.2 CloudDeploy: Create Task
  • 60. Introduction of CCE and DevCloud 2.4.3 CloudDeploy: Edit Deploy Configure ● Cluster Type: CCE Cluster ● Cluster Name: cce-devcloud ● Namespace Name: default ● Deployment YML File or Folder: /devcloud-demo/yaml/devcloud-demo.yaml
  • 61. Introduction of CCE and DevCloud 2.4.4 CloudDeploy: Task Parameter ● Version Tag ○ Parameter Name: versionTag ○ Parameter Value: v1.1
  • 62. Introduction of CCE and DevCloud 2.4.5 CloudDeploy: Basic Information ● Parameter Value: deploy-cce
  • 63. Introduction of CCE and DevCloud 2.5.1 CloudPipeline: Create Pipeline
  • 64. Introduction of CCE and DevCloud 2.5.2 CloudPipeline: Choose Repository
  • 65. Introduction of CCE and DevCloud 2.5.3 CloudPipeline: Blank Template
  • 66. Introduction of CCE and DevCloud 2.5.4 CloudPipeline: Add Parameter ● Version Tag ○ Parameter Name: versionTag ○ Parameter Value: v1.1
  • 67. Introduction of CCE and DevCloud 2.5.5 CloudPipeline: Edit Build Stage ● Name: Build ● Task Execution: Serial
  • 68. Introduction of CCE and DevCloud 2.5.6 CloudPipeline: Add Prebuild Task ● Name: Prebuild ● Select Task: spring_web-prebuild ● Repository: spring_web
  • 69. Introduction of CCE and DevCloud 2.5.7 CloudPipeline: Add CloudBuild Task ● Name: CloudBuild ● Select Task: spring_web-build ● Repository: spring_web ● VersionTag: ${versionTag}
  • 70. Introduction of CCE and DevCloud 2.5.8 CloudPipeline: Add Deploy Stage ● Name: Deploy ● Task Execution: Serial
  • 71. Introduction of CCE and DevCloud 2.5.9 CloudPipeline: Add CloudDeploy Task ● Type: Deployment ● Name: CloudDeploy ● Select Task: deploy-cce ● VersionTag: ${versionTag}
  • 72. Introduction of CCE and DevCloud 2.5.10 CloudPipeline: Edit Name ● Name: pipeline-cce
  • 73. Introduction of CCE and DevCloud 2.5.11 CloudPipeline: Execute CloudPipeline
  • 74. Introduction of CCE and DevCloud 2.6.1 Check CCE Deployment Status
  • 75. Introduction of CCE and DevCloud 2.6.2 Create Service for Pod
  • 76. Introduction of CCE and DevCloud 2.6.3 Create Service for Pod ● Access Type: NodePort ● Container Port: 8080
  • 77. Introduction of CCE and DevCloud 2.6.4 Access to Web
  • 78. Introduction of CCE and DevCloud 2.6.5 Web Result
  • 79. Introduction of CCE and DevCloud Destroy Resources
  • 80. Introduction of CCE and DevCloud Destroy Steps 3.1. Unsubscribe DevCloud 3.2. Delete CCE Cluster 3.3. Delete all SWR Image 3.4. Delete SWR Organization
  • 81. Introduction of CCE and DevCloud 3.1.1 Unsubscribe DevCloud
  • 82. Introduction of CCE and DevCloud 3.1.2 Unsubscribe DevCloud
  • 83. Introduction of CCE and DevCloud 3.1.3 Unsubscribe DevCloud
  • 84. Introduction of CCE and DevCloud 3.1.4 Unsubscribe DevCloud
  • 85. Introduction of CCE and DevCloud 3.2.1 Delete CCE Cluster
  • 86. Introduction of CCE and DevCloud 3.2.2 Delete CCE Cluster
  • 87. Introduction of CCE and DevCloud 3.3.1 Delete All SWR Image
  • 88. Introduction of CCE and DevCloud 3.3.2 Delete All SWR Image
  • 89. Introduction of CCE and DevCloud 3.4.1 Delete SWR Org
  • 90. Introduction of CCE and DevCloud 3.4.2 Delete SWR Org
  • 91. Introduction of CCE and DevCloud 3.4.3 Delete SWR Org
  • 92. Introduction of CCE and DevCloud Wrap Up
  • 93. Introduction of CCE and DevCloud DevSecOps Platform on Huawei Cloud CodeHub SWR CloudBuild *CloudTest Cloud Deploy Monitoring Automation & Infrastructure as Code Automation Security Apps dev uat prd CCE ProjectMan DevCloud AOM Log Tank Service APM CGS KMS *CodeCheck *CloudIDE DEW Cloud Pipeline Load Testing CPTS
  • 94. Introduction of CCE and DevCloud Contact Us jirayut@opsta.co.th Jirayut Nimsaeng CEO & Founder Opsta (Thailand) 086-069-4042 Facebook