AIM:
This course is specially designed for complete beginners. On completion of this course the participant will gain in-depth knowledge about Developing and supporting Cloud Native Application. Delegats will learn and master most in demand skills such as Docker, Kubernetes, Helm package management system, Source control system (GIT), Go Programing Language (GoLang), The modern general purpose programming language. Delegates will be confidently able to build and deploy containerized applicaions end to end with CI/CD (Continuous Integration and Continuous Delivery) methodology. Delegats will be able to comfirtably adopt Conatiner Orchestration platform across multiple public cloud offerings.
Participants will be confident around concepts of modern, containerised software delivery life cycle (SDLC) along with Configuration and Management of services on the Kuberentes Platform.
This course is designed for anyone and everyone who is interested in kick starting their IT career in the modern world.Delegates will gain good hands-on experience which will help them to start a new career with multiple, good long term opportunities. All softwares and applications outlined in this course are FREE and OpenSource. Welcome to the world of OpenSource.
Delegates will become a very good :
- Cloud Native Engineer.
- Kubernetes Administrator.
- Cloud Native Application developer.
- Kubernetes Support Engineer.
- GO Application developer.
- Automation Engineer.
- Build and Release specialist.
Prerequisites :
At least one of the following.
- Desire to learn and master new skills.
- Problem solving Atitude.
- Good Team Player.
- Interested in exploring new career opportunities.
- Open minded.
Every delegate will need their own laptop or desktop computer.
Fundamentals :
- YAML
- JSON
- What is API?
- Take example of public API e.g
githuborgitlab - Familieries with
curlandwgetutility.
- Take example of public API e.g
- Basic understanding to Web standards.
Docker :
- Virtual machines vs Containers.
- What is an IP Address and how applications and devices communicate.
- What is a container ?
- Why Docker Containerization ?
- Get familier with
dockerCli. - Learn basic Docker operations.
docker run,docker exec,docker rm, etc.
- Understanding docker image concept.
- Learn about Docker-Hub (A free docker image repository)
- Understanding image tags.
- Pull a basic busybox and alpine image from dockerhub.
- docker
pull
- docker
- List all images available local on your system.
- docker
images
- docker
- Inspect a docker image to gain insight of the image.
- docker image
inspect
- docker image
- Familierise with basic LINUX utilities through a container.
- Understand different Dockerfile commands.
- Build container from default images.
- Create docker image from running container.
- Write DockerFile to build container image from scratch.
- Build a custom web server image using nginx webserver.
- docker build
- Docker Compose to run multiple containers.
Go Programing Language : PART 1
- Why Learn Go Programming Language?
- Install the latest version of Go.
- Install an editor to prepare
gocode. - Understand basic
gosyntax, importance ofpackage,import,func main()inmain.go - Understand difference between
Interpreted vs Compiledprogramming language. - Write up first
gocode to print some text. Println,Print,Printffromfmtpackage.- Familierise with
GO(Beginners Level) : - Variables
- Constants
- Value types:
- Strings
- Integers
- Floats
- Booleans
- Operators:
- Conditional operators
= , == , != , < , > , <= , >=
- Logical operators
And - &&,OR - ||,NOT - !
- Conditional operators
- Pointers.
- The
&and*operators.
- The
- Conditional statements:
- if
- if/else
- if/else..if
- Switch
- For loop. Only one loop.
- Arrays, Slices and Map
- Functions.
- Develop your first application in GO with confidence
- We will develop our first application in
goandpackageit in a dockercontainerto learn a Real World Scenario to automate application deployment using containers.
- We will develop our first application in
Kubernetes K8S
- What is
Kubernetes? - Why
kuberneteadoption is on rise ? DockervsKubernetes- comparision.- High level Architectural diagram of Kubernetes and core components.
- What is
kubernetesAPI ? - Setup
kubernetes. - Install
kubectl- A command line management utility. - Query
k8sapi with kubectl and get familier with basics. - Kubernetes resources :
Namespaces
- Whats ia a
NAMESPACE? Understand importance ofNS - When to use different namespaces ?
- Switch between namespaces permenantly vs temperory options.
- Create a new namespace (Imperative way)
- Understand
ImperativevsDeclarativeapproach to create resources. - Create a new namespace (Declarative way)
Pods
- What is a
POD? - Understand difference between
PODvsContainer- Create a
PODwith one of thenginx imagewe prepared earlier(Imperative). - Create a
POD(Declaratice).
- Create a
- Understanding pod lifecycle.
- Pod logs.
- Pod Internals:
Labels and Selectors
- Importance of Labels and selectors ?
- Syntax and character set.
- List, Watch and filter kubernetes resources.
Service
- What is a service ?
- Service types in
k8s:- ClusterIP (Default)
- NodePort
- LoadBalancer
- Externalname
- Setup a default service for the
PODcreated in previous step. - Query services with
kubectlto verify details. - Query the service endpoint from
web browserorcURLto confirm its working as expected. - Setup a
NodePortserivce for the same pod and check again.
ConfigMap
- What is a configMap ?
- Create config map from literals.
- Create config map from files.
- Configure pod to setup configuration / parameters from configMap.
- Configure pod to setup environment variables from configMap.
- Configure pod to setup configuration from volume.
Secrets
- What is a secret ?
- Overview of secrets. understand base64 encoding / decoding.
- Create a secret.
- Retrieve a secret.
- Configure a pod to retrieve credentials/parameters from a secret.
Deployments
- What is a deployment ?
- Deployment manifest (template).
- Prepare a custom deployment using imperative command and different options.
- Create a deployment.
- Update a deployment.
- Practice Deploy commands:
rollout,scale,autoscale
- Check history and status of deployment.
- Recreate deployment. (rolling update vs recreate)
- Pausing and Resuming deployment.
Replicasets
- What is a replicaset ?
- When to use Replicaset ?
- Scaling a replicaset.
Volumes
- Type of volumes.
- Persistent Volumes.
- Persistent Volume Claim.
- Storage classes.
- Whats ia a
Helm Package manager.
- What is a package maanager ?
- Why
helmforkubernetes package management ? - Setup helm locally on your system.
- helm repositories :
- add, remove, list repositories.
- Prepare a helm chart to deploy
nginxweb server.- helm create
chart_name[flags]
- helm create
- Gain better insight about helm :
- Charts
- Releases
- Revisions
- Template
- Values.yaml
- Deploy your first helm release.
- Query deployed helm release and validate.
- get
- list
- status
- Make ammendment to helm release and upgrade existing helm release.
SCM or VCS ( Theory + Practical ):
Source control management / Version Control System
- What is SCM/VCS and why it is important ?
- Download / Install
git. - Configure local git preferences.
- Getting familiar with command line options/help.
- Create a FREE GitLab account.
- Private vs Public repository.
- Create a new project repository on GitLab.
- Concepts about Users,Groups and Permissions.
- Cloning repository.
- Commit new changes and raise new merge request.
- Peer review pending merge requests and approvals.
- Push new changes to GitLab.
- Advance concepts of branches and tags.
- Learn about
gitlab-ci.ymlconfigurations. - Prepare your first pipeline to
buildandpublishcustomdocker image.
Go Programing Language : PART 2
- Will learn more with real world scenarios.
Continue
- Understand
Control Statementswith more examples ? StructandInterfaces- Prepare a simple web server with GoLang.
- Package it with
docker image, run it, test it withdocker run. - Prepare a
poddefinition and deploy to kubernetes. - Prepare a
deploymentdefinition and deploy to kubernetes. - Prepare a custom config and update the pod when it starts to change web server content.
- Package it with
- Prepare a simple web app to store information in flat file.
- Extend our app to store data in a database.
- We will work with 2 containers now. (First test this with plain Docker)
- Deploy on kubernetes.
ConcurrancyGoroutinesandChannels
Introduction to API Development
- Will build a real world project in this section.
Quizzes, home work and more hands on lab work will be available during the course to get particepants ready for interviews.
** Required information and basic knowledge will be provided depends on delegate’s requirement.
#kubernetes #k8s #cncf #golang #linux #docker
Duration of the course : 3 - 4 Months : PartTime schedule (2 - 3 hours / per week)
Learn from experienced and certified professionals.