TLDR: We launched automated release management for SkyU.io! Share, discover, and implement the feature built to automate your experience as a release manager. Learn how, why, and what to try first, below.
A note from Heshan
Hey all, Heshan here. Here’s a little about the "Project Releases" feature the team has been working on.
If you've ever shipped software, you know the drill. Release days can be absolute nightmares. Last-minute fixes, versioning confusion, and that awful moment when something goes wrong in production... it's hectic!
But with "Project Releases," we're finally tackling this head-on.
- Streamlined releases, from start to finish: Get a clear view of your entire release process, from code freeze all the way to deployment. No more scattered tools and endless email chains.
- Automation that actually makes a difference: Ditch the manual work and embrace automated deployments, testing, and even rollbacks.
- Ship with confidence, every single time: "Project Releases" helps you reduce errors, keep tabs on your progress in real-time, and release with peace of mind.
In the end, we’re building a culture where releases are smooth, reliable, and even (dare I say) enjoyable. We want to help you reclaim those release days and turn them into a celebration of your team's hard work.
So give "Project Releases" a shot and let us know what you think! We're always looking for feedback.
Solving for X: So what is “Project Releases”?
Imagine the time and effort involved when getting your application deployed out there. In most development cases, this consists of the deployment of multiple environments for the app as well. It could be development environments, staging environments, or production environments. It could be N number of environments depending on the specific deployment strategy followed by a specific team.
Now imagine having a microservices architecture. Each service is deployed across multiple environments, collectively working together to provide functionality to an application. With each new service and environment, the deployment complexity increases drastically while also introducing a lot of other challenges.
- How do you track applications that are up to date?
- How can you deploy everything at once?
- Did each application deploy successfully?
- If one fails, do you proceed with the deployment of others?
- If one failed, where and why did it fail?
- How can you rollback?
Moreover, these services and applications can be of many different types. Mobile apps, web apps, Kubernetes orchestrations, Lambdas, etc.
The SkyU platform offers a wide range of features when it comes to deployments, and one of its core features is “Project Releases”.
Why we built this feature
We built the Project Releases feature to simplify and streamline the deployment process for software release/delivery teams. As we discussed, as applications grow in complexity, managing multiple services and their dependencies becomes increasingly difficult. This feature enables release managers to handle all applications and their dependencies as a single “bundle”. This makes it easier to maintain consistency, reduce human error, and improve deployment efficiency. By offering the ability to promote or roll back multiple components at once, we empower teams to deploy with confidence and agility. Save time and reduce the risk of deployment-related issues.
What exactly does this look like?
Let’s imagine a simple coffee shop scenario. The overall project is the coffee shop itself, which we’ll call “Bean & Brew.” This project includes a website (a web application) and services for handling user authentication, orders, carts, and catalogues (containerised APIs).
Once we create these five applications in SkyU service catalogue, the setup might look something like this:
Let’s take a look at how we can overcome the above-mentioned challenges in the context of Bean & Brew.
- How do you track applications that are up to date?
At a glance, this can be seen via the colour variations. However, behind the scenes, SkyU compares commit SHAs. Why? So you don’t have to!
The development environment is updated each time changes are made in the application repositories, thanks to straightforward “Git” operations running in the background. If your team follows a specific branching strategy, “Staging” and “Production” environments are also updated periodically through designated branch patterns and merges. However, the SkyU project release feature is flexible and will work even if you have just a single main branch for each application.
How do you deploy EVERYTHING, EVERYWHERE ALL AT ONCE?
SkyU makes it easy to promote these applications across environments, giving complete control to the person handling the release. You can choose to deploy all applications at once or selectively pick the ones you want to deploy.
This will start the deployment process of these applications as you can see here.
Give it a few minutes and then it’s done.
Did individual applications deploy successfully?
Yes, and you can confirm this visually from the SkyU console. The platform verifies that all promoted applications were successfully deployed. Verifying updates depends on the application type: for instance, if it's a web application, you only need to check if the newly promoted environment reflects the changes from the previous environment.
If one fails, do you proceed with the deployment of others?
If even one application fails, the deployment enters a "Ready to deploy" state. From here, you can decide whether to partially deploy the successful applications. This decision is left to the user and may depend on factors such as the interdependencies between services.
If one failed, where and why did it fail?
To demonstrate, let's intentionally fail a deployment. A failed deployment is marked with a red dot, which links to the pipeline's execution logs, showing where and why the issue occurred.
The specific issue can be uncovered from these logs afterwards. Along with many other SkyU features like AI-powered debugging and AI-suggested solutions to fix these issues.
- How can you roll back?
Rollbacks are just as simple as releases. This is because SkyU tracks the release history of your project.
This makes it so that going back to a previous deployment is as easy as selecting the deployment you want to roll back to. That’s it.
What about complex projects?
This approach works seamlessly for a straightforward project, like our Coffee shop example. But what about a more complex scenario? We decided the ultimate test case for SkyU was… SkyU itself. Enter the concept of “SkyU on SkyU.”
SkyU is a sophisticated application, with over 25 microservices and a continuously evolving tech stack. And, currently, 100% of SkyU’s deployments are managed by SkyU itself. This automation allows our developers to focus on development rather than deployment complexities, making “SkyU on SkyU” a true showcase of the platform's potential.
In our view, deployment doesn’t get more complex than this. And if it does, it may signal inefficiencies in the process. That’s where we can help, so feel free to reach out if you're facing deployment challenges.
Want to try out this feature?
Experience the power of SkyU's seamless deployment management for yourself. Get access to the “Project Releases” feature in any of the pricing tiers available with the SkyU platform (Startup, Growth or Enterprise). Reach out to us for a quote. Or if you would like to chat about releases and how you can improve your development velocity, book a demo.