I know you guys on this platform push learn by doing heavily. I want to learn more on docker and kubernetes but i don't have a project idea right now that needs me to use those tools. How would you suggest me learn? I'm just trying to get off learning everything from a tutorial.
Also I found this platform from twitter and wanted to know what you guys thought of it? https://labs.iximiuz.com/ since it has labs and technically you're doing... lol
Have you tried asking ChatGPT? If not:
Building projects is a great way to learn Kubernetes and Docker. Consider creating a multi-container application using Docker, then orchestrate it with Kubernetes. Some ideas include:
1. Microservices Application: Develop a simple microservices-based application with different services running in separate containers. Dockerize each service and use Kubernetes for orchestration.
2. DevOps Dashboard: Build a dashboard to monitor and manage your Docker containers and Kubernetes clusters. Use tools like Prometheus and Grafana for monitoring.
3. Continuous Deployment Pipeline: Create a CI/CD pipeline that automates building Docker images, pushing them to a registry, and deploying them to Kubernetes clusters. You can use Jenkins, GitLab CI, or another CI/CD tool.
4. Scalable Web App: Develop a web application and set up auto-scaling using Kubernetes. Experiment with load balancing and scaling policies to handle varying workloads.
5. Stateful Application: Learn about StatefulSets in Kubernetes by deploying a stateful application, like a database, and manage its persistent data storage.
6. Health Checks and Self-healing: Implement health checks in your application and configure Kubernetes to perform rolling updates and automatic healing based on these checks.
7. Service Mesh Integration: Explore service mesh technologies like Istio or Linkerd. Implement features like traffic splitting, load balancing, and security policies.
8. Monitoring and Logging Stack: Set up a comprehensive monitoring and logging solution using tools such as Prometheus, Fluentd, and Elasticsearch. Monitor resource usage, application performance, and log data.
9. Multi-Cluster Deployment: Deploy your application across multiple Kubernetes clusters. Explore strategies for load balancing, data synchronization, and resilience in a multi-cluster setup.
10. Security Practices: Focus on securing your Docker containers and Kubernetes clusters. Implement RBAC (Role-Based Access Control), network policies, and image scanning for vulnerabilities.
Remember to document your progress, challenges, and solutions. This will not only help you solidify your understanding but also serve as a valuable reference for others.
One of your perks as a Taro member is a discount for CodeCrafters.io where you can literally go build your own Docker instance. If you're interested, you can redeem it here: https://app.codecrafters.io/join?via=TaroCareer
The link you shared seems pretty good, but then again, I'm not a Docker/Kubernetes expert. These 2 stacks are harder to do side projects for as they're more on the infra side. I recommend going through your network for the best practical resources as well.