Calluna is a tool that lets almost any Netguru developer build staging environments on AWS by doing the hard work for them.
It allows our team to quickly submit a request to Calluna, which then automatically spins up the necessary AWS resources and provides a working instance of a staging environment within a few minutes.
Calluna sets up the infrastructure and allows team members to easily configure everything with infrastructure-as-code. Due to the volume of projects we receive, we wanted to find an even faster way to let our team make these requests without advanced knowledge or relying on specific teams. And so, Calluna was born.
Staging is a critical part of the software deployment process since a new piece of software must first be developed and then tested locally. The goal of the staging phase is to check the code in "real-life" conditions – it mimics the production environment with which the end users will interact.
In the staging phase, the software usually runs on remote machines. Developers and quality assurance specialists can run final tests of the software, the scripts, and the configuration. They have to be sure that if it works on the staging environment, it will work on the production environment.
We do a lot of AWS setups as Select Consulting Partners in the Amazon APN Network – Calluna plays a vital role in our teams.
Although the tasks Calluna performs could be done manually, it's time-consuming and created a lot of dependence on specialized individuals.
Usually, you would configure the infrastructure individually since it's not a task you do very often. At Netguru we deal with a high volume of AWS set-ups. That's why we needed to create a custom tool that would help us save time, be more efficient, and ensure quality.
At Netguru we are passionate about software development. The most exciting thing is the progress in technology.
Software engineers can be so much more productive nowadays thanks to innovations such as infrastructure as code (IaC). IaC is the process of managing and provisioning computing and infrastructure assets through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.
The DevOps methodology comes very handy in a situation like this.
We understand DevOps as a teamwork process that's a part of the broader culture. The framework has many advantages over the older environments. It provides open feedback, team communication, makes automation and scaling much easier, and allows team members to learn continuously.
We deploy and support many projects. With time the products we build with our customers gain market traction and heavy traffic comes in. We perform numerous migrations – so we need to do it fast, accurately, and with a relatively small team of elite DevOps engineers that know how to automate processes where it's possible, so they can focus on the most challenging tasks that come up.
That's how we got to the point where we realized a tool like Calluna would come very handy. We developed Calluna to provide the highest quality services at scale to our clients as well as bring additional value to our DevOps service.
Everybody knows Amazon's core business - e-commerce. However, with time the company also became a dominant player in the cloud computing services market. Today, Amazon is at the vanguard of service-oriented software engineering, which makes it so much easier to deploy scalable code.
The tech giant provides over 175 different cloud services.
Migrating software to AWS can reduce infrastructure costs, improve performance, and give you access to useful services. You pay only for the resources you use and it's so much easier to scale your application up when it gains market traction or down depending on seasonal peaks.
"We’ve developed an in-house solution to cut out the middleman and let our teams setup staging all on their own, in just a few minutes instead of hours"
AWS is a great solution for most software. However, you should be aware of the challenges you may face when migrating to Amazon:
Netguru is a member of the AWS Partner Network as an official Select Consulting Partner. If you'd like to learn more about our take on AWS and Serverless computing, read this post by one of our developers.
Before launching the product, we ran a Net Promoter Score (NPS) survey internally. We questioned over 600 developers. The NPS index measures the willingness to recommend the product to other developers. It ranges between -100 and 100. Calluna got a score of 60, which is considered good.
Calluna’s name was taken from the hometown of an early developer. Our graphic designers combined a flower with a rocket, symbolizing fast growth and agility.
Setting up a staging environment normally takes a few hours. With Calluna, we can do it in less than 15 minutes.
With the tool we can set up infrastructure faster, our team has more time to focus on the most important challenges your project faces, and on quality control so that the final result is as good as possible. Calluna takes care of most of the tedious manual tasks, limiting the risk of mistakes.
Here's how things have changed since we introduced our tool.
Staging environment setup before Calluna:
After Calluna was introduced:
Calluna builds staging environments using Terraform. Terraform enables users to define and provision datacenter infrastructure using a high-level configuration syntax stored in JSON files.
The Calluna tool spins up all the necessary AWS resources and sets up a working instance within a few minutes.
Currently, any authenticated Netguru team member can create a new staging environment.
It’s important for the team to remember that a staging environment consists of two major parts:
- Infrastructure: this is what Calluna does for us.
- Deployment setup: each team member can configure this on their own.
Calluna allows the Netguru team to quickly configure many applications in different repositories.
Things can get a little more challenging when it comes to CodeDeploy, since it's a relatively new service.
This is why we're planning to introduce a set of templates and most common configurations for everyone to pick it up and start immediately. You can set an environment up with just a few clicks and customize it later.
Calluna was launched internally just before Easter 2019. Although it's only our internal tool, we did everything as if it was a market product. We have done market research, our designers created an awesome brand identity, and we treat the developers that use Calluna like external clients, creating a learning center and providing full customer service
With Calluna, we deploy a new staging stack in less than 15 minutes. There's no time for quality trade-off. The tool is very new, but we've already set up staging environments for over 80 projects in addition to numerous sandbox environments for developers to train and do research.
It works. We can configure apps on multiple repositories. We can set up the main app and the secondary app, and more.
Calluna is getting better in what it can do. We are gathering feedback from the users and already put it into the standard product development loop.
From our perspective, the most interesting part about the project is that it allowed our team of 650 to reach a new level of development.
We have grown so much that we can benefit from building internal automation tools to assist clients even faster.