Skip to content

Commit da7aa89

Browse files
committed
Updates for new versions
1 parent 631d7db commit da7aa89

19 files changed

Lines changed: 1631 additions & 1003 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.DS_Store
22
site/
33
.vscode/
4-
node_modules/
4+
node_modules/
5+
workspace_config.yaml

docs/cloud/index.md

Lines changed: 161 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,165 @@
22

33
## Introduction
44

5-
Cloud is everywhere. Today, many companies want to migrate their
6-
applications on to cloud. For this migration to be done, the
7-
applications must be re-architected in a way that they fully utilize the
8-
advantages of the cloud.
5+
Cloud is everywhere. Today, many companies want to migrate their applications on to cloud. For this migration to be done, the applications must be re-architected in a way that they fully utilize the advantages of the cloud.
96

7+
Cloud computing has fundamentally changed how organizations build, deploy, and operate software. Rather than maintaining physical servers and infrastructure, businesses can now leverage on-demand computing resources that scale dynamically based on their needs.
8+
9+
## What is Cloud Computing?
10+
11+
Cloud computing is the delivery of computing services—including servers, storage, databases, networking, software, and analytics—over the internet ("the cloud"). This model provides faster innovation, flexible resources, and economies of scale.
12+
13+
### Key Characteristics
14+
15+
- **On-demand self-service** - Provision resources automatically without human interaction
16+
- **Broad network access** - Services available over the network from any device
17+
- **Resource pooling** - Computing resources are pooled to serve multiple consumers
18+
- **Rapid elasticity** - Capabilities can be scaled up or down based on demand
19+
- **Measured service** - Resource usage is monitored and charged based on consumption
20+
21+
## Cloud Service Models
22+
23+
There are three primary cloud service models, each offering different levels of control and responsibility:
24+
25+
### Infrastructure as a Service (IaaS)
26+
27+
IaaS provides virtualized computing resources over the internet. Users manage operating systems, middleware, and applications while the provider manages the physical infrastructure.
28+
29+
**Examples:** IBM Cloud Virtual Servers, AWS EC2, Azure Virtual Machines
30+
31+
**Use Cases:**
32+
33+
- Development and test environments
34+
- High-performance computing
35+
- Big data analysis
36+
- Website hosting
37+
38+
### Platform as a Service (PaaS)
39+
40+
PaaS provides a platform for developing, running, and managing applications without the complexity of maintaining the underlying infrastructure.
41+
42+
**Examples:** IBM Cloud Foundry, Red Hat OpenShift, Heroku, Google App Engine
43+
44+
**Use Cases:**
45+
46+
- Application development
47+
- API development and management
48+
- Business analytics
49+
- IoT applications
50+
51+
### Software as a Service (SaaS)
52+
53+
SaaS delivers software applications over the internet on a subscription basis. The provider manages everything from infrastructure to application updates.
54+
55+
**Examples:** IBM Watson, Salesforce, Microsoft 365, Slack
56+
57+
**Use Cases:**
58+
59+
- Email and collaboration
60+
- Customer relationship management
61+
- Enterprise resource planning
62+
- Human resources management
63+
64+
## Cloud Deployment Models
65+
66+
### Public Cloud
67+
68+
Resources are owned and operated by a third-party provider and shared across multiple organizations. This model offers cost efficiency and scalability.
69+
70+
### Private Cloud
71+
72+
Cloud infrastructure is used exclusively by a single organization. This provides more control and security but requires more management.
73+
74+
### Hybrid Cloud
75+
76+
Combines public and private clouds, allowing data and applications to move between them. This offers flexibility and more deployment options.
77+
78+
### Multi-Cloud
79+
80+
Uses services from multiple cloud providers to avoid vendor lock-in and leverage best-of-breed services from each provider.
81+
82+
## Why Migrate to the Cloud?
83+
84+
Organizations are moving to the cloud for several compelling reasons:
85+
86+
### Cost Optimization
87+
88+
- **Reduce capital expenditure** - No need to purchase and maintain hardware
89+
- **Pay-as-you-go pricing** - Only pay for what you use
90+
- **Economies of scale** - Benefit from the provider's large-scale infrastructure
91+
92+
### Agility and Speed
93+
94+
- **Rapid provisioning** - Deploy new resources in minutes, not months
95+
- **Global reach** - Deploy applications worldwide quickly
96+
- **Faster time to market** - Focus on development rather than infrastructure
97+
98+
### Scalability
99+
100+
- **Elastic resources** - Scale up or down based on demand
101+
- **Handle traffic spikes** - Automatically accommodate increased load
102+
- **Global distribution** - Serve users from locations closest to them
103+
104+
### Reliability
105+
106+
- **Built-in redundancy** - Data replicated across multiple locations
107+
- **Disaster recovery** - Quick recovery from failures
108+
- **High availability** - SLAs guaranteeing uptime
109+
110+
### Innovation
111+
112+
- **Access to latest technology** - AI, ML, IoT, and analytics services
113+
- **Experimentation** - Low-cost environment for trying new ideas
114+
- **Continuous updates** - Automatic access to new features
115+
116+
## Cloud Migration Strategies
117+
118+
When migrating applications to the cloud, organizations typically follow one of these strategies (the "6 R's"):
119+
120+
| Strategy | Description | When to Use |
121+
| -------- | ----------- | ----------- |
122+
| Rehost | "Lift and shift" - Move as-is to the cloud | Quick migration, minimal changes |
123+
| Replatform | Make minimal optimizations | Leverage some cloud benefits |
124+
| Repurchase | Move to a SaaS solution | Replace with commercial product |
125+
| Refactor | Re-architect for cloud-native | Maximize cloud benefits |
126+
| Retain | Keep on-premises | Compliance or technical constraints |
127+
| Retire | Decommission the application | No longer needed |
128+
129+
## Cloud-Native Applications
130+
131+
Cloud-native is an approach to building and running applications that fully exploit the advantages of the cloud computing model. Cloud-native applications are designed from the ground up for the cloud.
132+
133+
### Characteristics of Cloud-Native Applications
134+
135+
- **Microservices architecture** - Loosely coupled, independently deployable services
136+
- **Containerized** - Packaged with dependencies for consistent deployment
137+
- **Dynamically orchestrated** - Managed by platforms like Kubernetes
138+
- **DevOps practices** - Continuous integration and delivery
139+
- **API-driven** - Services communicate through well-defined APIs
140+
141+
### The Twelve-Factor App
142+
143+
The [Twelve-Factor App](https://12factor.net/) methodology provides best practices for building cloud-native applications:
144+
145+
1. Codebase - One codebase tracked in version control
146+
2. Dependencies - Explicitly declare and isolate dependencies
147+
3. Config - Store configuration in the environment
148+
4. Backing services - Treat backing services as attached resources
149+
5. Build, release, run - Strictly separate build and run stages
150+
6. Processes - Execute the app as stateless processes
151+
7. Port binding - Export services via port binding
152+
8. Concurrency - Scale out via the process model
153+
9. Disposability - Maximize robustness with fast startup and graceful shutdown
154+
10. Dev/prod parity - Keep development and production as similar as possible
155+
11. Logs - Treat logs as event streams
156+
12. Admin processes - Run admin tasks as one-off processes
157+
158+
## Getting Started
159+
160+
This bootcamp will guide you through the key technologies and practices for cloud-native development:
161+
162+
1. **[Containers](../containers/index.md)** - Package applications with their dependencies
163+
2. **[Kubernetes/OpenShift](../openshift/index.md)** - Orchestrate containerized applications
164+
3. **[DevOps](../devops/index.md)** - Automate the software delivery pipeline
165+
166+
By the end of this bootcamp, you will have hands-on experience building and deploying cloud-native applications on Kubernetes and OpenShift.

docs/devops/argocd/index.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,28 @@ configuration so that teams can benefit from the same assurance as they do for t
1717
- Git push reconciled with the state of the running system with the state in the Git repository
1818

1919
## ArgoCD Overview
20+
21+
ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. It automates the deployment of applications by continuously monitoring Git repositories and synchronizing the desired application state with the live state in Kubernetes clusters.
22+
23+
### Key Features
24+
25+
- **Declarative and version controlled** - Application definitions, configurations, and environments are declarative and version controlled in Git
26+
- **Automated deployment** - Automatically syncs application state from Git to Kubernetes
27+
- **Multi-cluster support** - Manage deployments across multiple Kubernetes clusters
28+
- **SSO Integration** - Integrates with OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, and Microsoft
29+
- **Rollback capabilities** - Roll back to any application state committed in the Git repository
30+
- **Health status analysis** - Real-time view of application deployment health
31+
- **Web UI and CLI** - Visualize and manage applications through a web interface or command line
32+
- **Webhook integration** - Trigger deployments automatically from Git events
33+
34+
### How ArgoCD Works
35+
36+
1. You define your application's desired state in a Git repository (Kubernetes manifests, Helm charts, or Kustomize)
37+
2. ArgoCD continuously monitors the Git repository for changes
38+
3. When changes are detected, ArgoCD compares the desired state with the live state
39+
4. ArgoCD automatically or manually syncs the cluster to match the desired state
40+
5. You can visualize the sync status and health of your applications in real-time
41+
2042
## Presentations
2143

2244
[GitOps Overview :fontawesome-regular-file-pdf:](../materials/05-Understanding-GitOps.pdf){ .md-button target=_blank}

docs/devops/devopsTools.md

Lines changed: 119 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,119 @@
1-
# DevOps Tools
1+
# DevOps Tools
2+
3+
DevOps relies on a variety of tools to automate and streamline the software development lifecycle. These tools help teams collaborate more effectively, automate repetitive tasks, and deliver software faster and more reliably.
4+
5+
## Categories of DevOps Tools
6+
7+
DevOps tools can be organized into several categories based on the stage of the development lifecycle they support:
8+
9+
### Source Code Management
10+
11+
Source code management (SCM) tools help teams track changes to code, collaborate on development, and maintain version history.
12+
13+
- **Git** - The most widely used distributed version control system
14+
- **GitHub** - Cloud-based Git repository hosting with collaboration features
15+
- **GitLab** - Complete DevOps platform with built-in CI/CD
16+
- **Bitbucket** - Git repository management with Jira integration
17+
18+
### Continuous Integration / Continuous Delivery
19+
20+
CI/CD tools automate the building, testing, and deployment of applications.
21+
22+
- **Tekton** - Kubernetes-native CI/CD building blocks for creating pipelines
23+
- **Jenkins** - Open-source automation server with extensive plugin ecosystem
24+
- **GitHub Actions** - CI/CD integrated directly into GitHub repositories
25+
- **GitLab CI/CD** - Built-in CI/CD capabilities within GitLab
26+
- **Travis CI** - Cloud-based CI service for open source projects
27+
- **CircleCI** - Cloud-native CI/CD platform
28+
29+
### Container Orchestration
30+
31+
These tools manage containerized applications at scale.
32+
33+
- **Kubernetes** - Industry-standard container orchestration platform
34+
- **Red Hat OpenShift** - Enterprise Kubernetes platform with additional features
35+
- **Docker Swarm** - Native clustering for Docker containers
36+
37+
### GitOps & Continuous Deployment
38+
39+
GitOps tools use Git as the source of truth for deployment automation.
40+
41+
- **ArgoCD** - Declarative GitOps continuous delivery for Kubernetes
42+
- **Flux** - GitOps toolkit for Kubernetes
43+
- **Spinnaker** - Multi-cloud continuous delivery platform
44+
45+
### Infrastructure as Code
46+
47+
IaC tools allow infrastructure to be defined and managed through code.
48+
49+
- **Terraform** - Multi-cloud infrastructure provisioning tool
50+
- **Ansible** - Agentless automation and configuration management
51+
- **Pulumi** - Infrastructure as code using familiar programming languages
52+
- **AWS CloudFormation** - Infrastructure as code for AWS resources
53+
54+
### Configuration Management
55+
56+
These tools help maintain consistent configurations across environments.
57+
58+
- **Ansible** - Simple, agentless automation
59+
- **Chef** - Infrastructure automation with Ruby-based DSL
60+
- **Puppet** - Model-driven configuration management
61+
62+
### Containerization
63+
64+
Container tools package applications with their dependencies for consistent deployment.
65+
66+
- **Docker** - Industry-standard containerization platform
67+
- **Podman** - Daemonless container engine compatible with Docker
68+
- **Buildah** - Tool for building OCI container images
69+
70+
### Monitoring & Observability
71+
72+
Monitoring tools provide visibility into application and infrastructure health.
73+
74+
- **Prometheus** - Open-source monitoring and alerting toolkit
75+
- **Grafana** - Visualization and analytics platform
76+
- **Datadog** - Cloud monitoring and analytics
77+
- **Splunk** - Log management and analysis
78+
- **ELK Stack** - Elasticsearch, Logstash, and Kibana for log analysis
79+
80+
### Artifact Management
81+
82+
Artifact repositories store and manage build artifacts and dependencies.
83+
84+
- **JFrog Artifactory** - Universal artifact repository
85+
- **Nexus Repository** - Component and artifact management
86+
- **Docker Hub** - Container image registry
87+
- **Quay.io** - Enterprise container registry
88+
89+
### Collaboration & Communication
90+
91+
These tools facilitate team communication and collaboration.
92+
93+
- **Slack** - Team messaging and collaboration
94+
- **Microsoft Teams** - Unified communication platform
95+
- **Jira** - Project and issue tracking
96+
- **Confluence** - Team collaboration and documentation
97+
98+
## Choosing the Right Tools
99+
100+
When selecting DevOps tools, consider these factors:
101+
102+
1. **Integration capabilities** - How well does the tool integrate with your existing stack?
103+
2. **Scalability** - Can the tool grow with your organization?
104+
3. **Community and support** - Is there active community support and documentation?
105+
4. **Learning curve** - How quickly can your team become productive?
106+
5. **Cost** - What are the licensing and operational costs?
107+
108+
## Tools Used in This Bootcamp
109+
110+
Throughout this bootcamp, you will gain hands-on experience with several key DevOps tools:
111+
112+
| Tool | Purpose | Lab |
113+
| ---- | ------- | --- |
114+
| Tekton | CI/CD Pipelines | [Tekton Lab](../labs/devops/tekton/index.md) |
115+
| ArgoCD | GitOps Deployment | [ArgoCD Lab](../labs/devops/argocd/index.md) |
116+
| Jenkins | CI/CD Automation | [Jenkins Lab](../labs/devops/jenkins/index.md) |
117+
| IBM Toolchain | IBM Cloud DevOps | [IBM Toolchain Lab](../labs/devops/ibm-toolchain/index.md) |
118+
119+
These tools represent modern approaches to implementing CI/CD pipelines and GitOps workflows in cloud-native environments.

0 commit comments

Comments
 (0)