Kubernetes is a platform to orchestrate the deployment, scaling, and management of container-based applications.
You have probably read about Kubernetes, and maybe even dipped your toes in and used it in a side project or even at work. But understanding what Kubernetes is all about, how to use it effectively, and what the best practices are requires much more effort. Kubernetes is a big open source project and ecosystem with a lot of code and a lot of functionality. Kubernetes came out of Google, but joined the Cloud Native Computing Foundation (CNCF) and became the clear leader in the space of container-based applications.
In this article, Gigi Sayfan, author of the bestseller Mastering Kubernetes, Third Edition, shared his methodologies and the approach he followed to create a powerful resource to acquaint learners all over the globe with the fundamentals and more advanced concepts of Kubernetes.
Dealing with real-world Kubernetes situations
Kubernetes is a huge platform and it still evolves and adds new key capabilities in every release. I noticed that even developers and administrators that work regularly with Kubernetes are often unaware of all the goodness.
The book presents a lot of facets of Kubernetes that readers might miss otherwise and opens a window with enough information to let the curious reader follow up and integrate their knowledge into the systems they build. I made a great effort to introduce multiple options and tools that can be used to solve different real-world problems and shared my opinions and preferences too.
Impact of Kubernetes on the future of technology
Kubernetes is here to stay. I believe that Kubernetes will become the default layer for distributed systems. You can tell by the amazing ecosystem that emerged around it and an incredible number of integrations across multiple levels from cloud providers, to networking and storage solutions and all the way to custom hardware. The Kubernetes community is doing a fantastic job of shepherding the project.
Kubernetes is the best managed large-scale open source project I have ever seen. — Gigi Sayfan
Development of coding languages over time and my experience with them
I indeed started my career as a COBOL programmer. I will get printed code from my manager with comments in a red pen that told me what changes to make. It only lasted a year, but it started my journey of ongoing learning and trying to find the most productive programming languages, development environment, frameworks and methodologies.
My favorite languages from the pack were Python, C# and Go. C and C++ are important languages, but there aren’t too many developers that love them.
- C# is a huge language that somehow manages to remain coherent. It is truly an impressive feat.
- Python is a super productive language and probably the best mainstream language for both beginners and advanced developers. It had a rough time in the transition from Python 2 to Python 3 and I wish its packaging story was better.
- Go is a real surprise. It’s kind of the opposite of C# in that it’s a very simple language, but somehow it is also super productive and its tooling is superb.
There are many interesting languages out there I plan to get into in the future such as Rust, TypeScript, Elm and Kotlin. I’m a constant learner.
Kubernetes skills are going to be in high demand for a long time. But many established technologies will also be in high demand. What separates Kubernetes from the rest of the pack is that the most innovative and interesting projects are now built on Kubernetes.
Readers who master Kubernetes will be in a great position to participate in the most rewarding projects and even lead them. The ubiquity and growth of Kubernetes ensure that readers will be able to utilize their knowledge and skills in many different contexts and organizations.
About the Author
Gigi Sayfan has been developing software professionally for more than 20 years in domains as diverse as instant messaging, morphing, chip fabrication process control, embedded multimedia applications for game consoles, brain-inspired machine learning, custom browser development, web services for 3D distributed game platforms, IoT sensors, virtual reality and genomics. His technical expertise includes databases, low-level networking, distributed systems, unorthodox user interfaces, DevOps and general software development life cycle.