People are always asking us about our journey to the cloud and how we do what we do at Kingland.
Part of that secret is in our Platform and how we build what we've learned about cloud into it each and every release.
Recently, Kingland President Tony Brownlee and I discussed our journey and found that our cloud experience has been similar to raising teenagers in many ways. As parents of teenagers, we thought about everything we've learned in our cloud journey. In the past five years, we started seeing commonalities that many executives and parents can relate to.
If you're an executive moving to the cloud or considering moving to the cloud, this piece is for you.
Teenagers struggle to turn off the lights when they leave a room.
The same thing happens when it comes to cloud instances. Teams will create many different Dev, Test, and Production instances, all of which require many other cloud services. But not all cloud services are created equal. Choosing services that only charge when used can produce significant cost savings.
Imagine the difference between motion-controlled lights vs. lights that stay on in your home.
Using AWS as an example, services like Lambda and or CloudRun in Google Cloud Platform (GCP) can be set up so that they only run when compute is required. If you utilize a cloud service that is not "motion" controlled, such as AWS RDS or GCP CloudSQL, costs will continue to incur and add up. In these cases, we've invested in automation to control how and when these services are on or off, and can be scheduled via additional services such as AWS CloudWatch and GCP Cloud Operations.
While the lights in your home may not cost you thousands of dollars a year, the principal still applies. If your Dev and Test environments are only required available 10 hours a day, turning them off could yield a ~60% savings in your cloud costs related to those services.
As every parent knows, kids can be expensive.
Activities, clothes, food, gas, and everything in between add up to requests for money nearly every week. The cloud is no different. New environments and processing are easy, but just like teenagers, take budget and boundaries to ensure success long term.
Cloud environments can be much more cost-efficient to run.
Still, they can end up costing significantly more than on-premise, fixed-cost systems if not used wisely. While the cloud makes it easy to scale and expand processing, those costs add up.
One common budget challenge in the cloud involves performance testing.
That's where the cloud allows you to test the extremes of nearly any usage scenario as often as a team would like. To budget an allowance for your cloud environment, we recommend performance testing based on expected usage. Performance testing will give you an idea of how the system scales and ensure your fixed-size services such as AWS RDS or AWS EC2 are sized appropriately. You can also understand how services such as AWS EKS and GCP GKE can scale up and down or will behave.
But this testing isn't free.
As your teams look to optimize performance and improve the user experience, they'll need to budget. Once you understand how your system behaves under load, you can set an appropriate budget allowance and manage accordingly on current and future applications.
Teenagers love their phones and spend a lot of time on them.
Many parents think that time could be better spent on other activities. The same holds true for development teams when it comes to the cloud.
In our cloud journey, we often see dev teams spend more time on infrastructure than feature development.
Cloud services are new and exciting but can be a time drain if engineering teams aren't careful. It's critical when using the cloud to plan a certain amount of time related to setting up and maintaining the cloud infrastructure and working to stick to this allocation in your plans. For example, we would recommend identifying repetitive needs such as cloud service provisioning and maintenance activities early and planning time to automate these functions through Infrastructure as Code (IaaC). If not, time on these infrastructure tasks will steal from your feature development week by week, and you'll be asking yourself why are we not making the progress we'd like?
The infrastructure is powerful and exciting, but it's essential to set expectations up front to ensure the right approach for your teams' long-term productivity.
We've all been there - the boy or girl who starts to catch the teenager's attention.
The same holds true when it comes to the cloud. With so many new cloud services and tools coming out every month, your teams must choose wisely. Cloud providers are constantly releasing new features. Just because a new service or feature claims to solve a problem your teams are experiencing and looks impressive, it doesn't mean it's right for you.
In our journey, we have found that new services typically take a year to be ready for the production expectations of our enterprise-class clients.
Instead of using a service right away, we recommend that you test the service through iterations of your application and make sure that it fully meets your needs. In teenage terms, talk first, date later, and get engaged only when you've really tested the relationship - or service in this case.
When testing a service, make sure you understand what it provides currently and what it's planning to provide in the future.
Understand gaps in functionality. Keep a watchful eye on the service as it matures and you'll be in a great position to make a wise choice to use the service at some point in that product's maturity lifecycle.
The beauty of teenagers is that they have so much potential and will do amazing things in the months and years ahead of them. They simply need space for experimentation, clear guidelines, and guidance along the way.
We've found the same is true for the cloud.
How has your cloud journey been like raising a teenager? We'd love to hear your experience and have you join us as we continue to learn how best to nurture exceptional outcomes in the years ahead.