|
2 | 2 |
|
3 | 3 | ## Introduction |
4 | 4 |
|
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. |
9 | 6 |
|
| 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. |
0 commit comments