2017: The Year of Kubernetes and Microservices
2017 is wrapping up. What a year. Here’s my retrospective.
Major Achievements
1. Kubernetes Migration
Migrated our entire production infrastructure from EC2 to Kubernetes. Took 3 months, but worth it:
- 33% cost reduction
- 6x faster deployments
- Auto-scaling that actually works
This was the biggest technical project I’ve led. Learned a ton about distributed systems, networking, and operations.
2. Microservices with Go
Built 5 microservices in Go. They’re fast, reliable, and use minimal resources. Go has become my go-to language for backend services.
3. Vue.js Adoption
Standardized on Vue.js for frontend. The team loves it. Productivity is way up compared to our old jQuery spaghetti.
Technologies I Learned
Kubernetes
From zero to production in 6 months. Now comfortable with:
- Deployments, Services, Ingress
- StatefulSets and PersistentVolumes
- Helm for package management
- Monitoring with Prometheus
Go
Went from beginner to confident. Built production services handling thousands of requests per second.
Java 9
Explored the new module system. Decided to stick with Java 8 for now. The ecosystem isn’t ready.
ES2017
Async/await changed how I write JavaScript. No more Promise chains.
Projects I’m Proud Of
1. Zero-Downtime Deployments
Implemented blue-green deployments with Kubernetes. We can deploy 10+ times a day with zero downtime.
2. Monitoring Stack
Set up Prometheus + Grafana + ELK. We now have visibility into everything. Incidents are caught before users notice.
3. CI/CD Pipeline
Jenkins Pipeline + Docker + Kubernetes. Push to master → automated tests → deploy to staging → manual approval → deploy to production.
Mistakes I Made
1. Over-Microservicing
Split a service into 3 microservices that should have been one. Added complexity without benefits. Merged them back.
Lesson: Start with a monolith. Split when you have a clear reason.
2. Not Monitoring Enough
Deployed a service without proper monitoring. It had a memory leak that went unnoticed for 2 weeks.
Lesson: Monitoring is not optional.
3. Premature Optimization
Spent a week optimizing code that wasn’t the bottleneck. Should have profiled first.
Lesson: Measure, then optimize.
Technical Lessons
1. Simplicity Scales
Simple solutions are easier to understand, debug, and maintain. Complexity is the enemy.
2. Observability is Key
You can’t fix what you can’t see. Invest in logging, metrics, and tracing.
3. Automate Everything
Manual processes don’t scale. Automate deployments, testing, monitoring.
4. Small Interfaces
In Go, the best interfaces have 1-2 methods. Keep abstractions small and focused.
Soft Skills
1. Technical Leadership
Led the Kubernetes migration. Learned to:
- Break down large projects
- Communicate with stakeholders
- Manage risk
- Make decisions with incomplete information
2. Mentoring
Mentored 2 junior developers. Teaching others solidified my own understanding.
3. Writing
Published 52 blog posts this year (one per week). Writing helps me learn and connect with the community.
Books I Read
- Site Reliability Engineering - Google’s approach to running systems
- Kubernetes Up & Running - Best Kubernetes book
- The Go Programming Language - Comprehensive Go guide
- Release It! - Patterns for production systems
Blog Stats
- 52 posts published (goal achieved!)
- ~50,000 page views
- Most popular: “Kubernetes in Production: 6 Months Later”
What I’m Excited About for 2018
Technologies
- Istio: Service mesh for Kubernetes
- Go 1.10: Improved build cache
- Vue CLI 3.0: Better tooling
- Java 10: Var keyword, performance improvements
Skills
- Distributed systems design
- Performance optimization
- Security best practices
- Public speaking
Goals for 2018
- Speak at a conference: Share Kubernetes lessons
- Contribute to open source: Give back to the community
- Learn Rust: Interested in systems programming
- Build a SaaS product: Apply what I’ve learned
- Write 52 blog posts: Continue the streak
Advice to My Past Self
- Kubernetes is worth learning, but start small
- Go is great for microservices
- Don’t over-engineer
- Monitoring is not optional
- Automate everything
- Write more, share more
Thank You
Thanks to everyone who read my blog, answered my questions, and helped me learn. The developer community is amazing.
Here’s to 2018! 🎉
What did you learn in 2017? What are your goals for 2018?