If you’re having trouble with constant deployments that take hours of DevOps, manually scaling your servers and high cloud spend, we’re going to show you how to overcome them by using a cloud infrastructure management tool.
In this article, you’re going to learn how to use Bunnyshell to automate and increase the speed and accuracy of:
- Cloud setup
- Deployments
- Web server scaling
- Log aggregation
- Security and data protection
- & more.
All of this so you and your team of developers can focus on building new features and iterate faster. Let’s get started.
Summary
- Increasing productivity- what you’re wasting too much time on
- Reducing costs- what you’re spending too much money on
- Improving processes - where you need to improve internal processes
- The Bunnyshell solution
3 Ways a Cloud Infrastructure Management Solution Significantly Improves Your SaaS Business
1. Increasing productivity– what you’re wasting too much time on
Save countless hours on menial daily tasks that are required as part of operating complex applications in a cloud environment, such as:
- Cloud Setup
- Security and Data Protection
- Round-the-clock Monitoring
- Application Management
- Back-ups
Bunnyshell takes all of these menial tasks from coding to UI processes.
No more writing code and running command lines for repetitive jobs that take hours on end. Just set them up once and then click and run whenever you need them. Let’s take a closer look at how.
Cloud Setup
Bunnyshell currently offers integrations with Amazon Web Services, Microsoft Azure, DigitalOcean and Vultr. All you have to do is connect your account/s from the Settings section through this simple process:
After connecting your cloud account, you can easily create a Virtual Machine. First, select the webserver type you want to go with:
Then you can select one or more programming languages that will be installed on the machine in the setup process, which will remove the DevOps time needed to complete this process.
After selecting your programming languages, you can also select one or more database/caching services that will be installed and configured during the setup process. This removes even more DevOps time from your cloud management processes.
Then you can select the cloud provider that you want your machine to be created in.
This is where the Bunnyshell platform adds even more value and saves you even more time: instead of going through a complex user interface that requires you to know how to use it and get from A to B in order to even select a machine that you want to create (which is the case for Azure or AWS) you only have to pick out three things in order to get your machine up and running:
1. Location– the data center in which you want the virtual machine to be set up:
2. The VM Size – select one of the VM plans that your cloud provider offers according to your needs and budget:
3. Your VM Name – just type in your desired name and you’re good to go.
If you already have a virtual machine or a server up and running and you want to have it managed by Bunnyshell, all you have to do is log in to the server via SSH or however it is your login to your asset and run your Bunnyshell install command:
That’s it, you now have a new VM for one of your projects, with no DevOps included in your timeline!
Security and Data Protection
When creating your web servers and virtual machines with Bunnyshell, the setup process also configures the firewall and controls which ports are left open and which are not, making sure that only your apps can be accessed through the desired channels and that no malevolent third party can gain access to your servers.
That means you’re saving time on implementing these basic security measures since they’re automatically done in Bunnyshell.
Round-The-Clock Monitoring
With Bunnyshell’s bulletproof automation system, there’s no need to worry about the effects of long nights and lack of caffeine on a Monday morning. And if an error does happen, whether human or not, you can rest easy knowing that the Bunnyshell alert system will notify you.
Just set up an alert template and you can hop right back in production, with no need to perform extensive daily checks. The system will send you notifications on the most important processes and will alert you if and where a closer look is required.
Along with the automated alerts that are sent when something that requires manual input happens, you can also set specific alerts from the OPS -> Alarms section, for various cases such as MySQL queries, Network Inbound Bandwith, Storage, Memcached Available Cache Size, and many more which you can see for yourself!
These alerts can substantially decrease the time it takes from when a service fails and until you can identify a solution to bring it back up, whether it is resizing the virtual machine or something else, in case this cannot be solved automatically by the agent.
Application Management
What if for example, you decide that you need an app/tool such as WordPress or OwnCloud? Normally you would create a VM and then configure the languages you need to run the said software and then the dependency services such as databases and then proceed to install and configure the software.
The Bunnyshell platform offers one-click apps which you can install on existing managed virtual machines or create a new virtual machine in the process of creating the said app.
This cuts the DevOps time of setting up any such app that isn’t related to the development of your products but can help your processes and not impact your development time or timelines.
Back-ups
Back-ups are another productivity-enhancing feature. The Bunnyshell platform allows you to create automatic backups for your databases or app, via its interface. This helps you roll back easily in case of errors and can help avoid great/any data loss depending on your backup settings.
Backups can be found in the OPS section under the Backups tab. Restoring a database backup is as easy as pressing a button – no more manual connections to the server and doing the restore operations by hand.
You can use snapshots to restore a previous state of your virtual machine by creating a new one from the actions menu in the virtual machine/webserver view, to replace the one that has been corrupted/polluted or has become undesirable.
You can also use this feature to create and manage multiple staging environments – for example, staging and production. You can do this by simply cloning your production machines with snapshots and creating a few machines with the same setup to use for staging.
Snapshots can be found in the OPS section under the Snapshots tab.
With our Bunnyshell agent, we can clone any environment on virtual, bare metal, or even your own computer, maintaining the infrastructure configurations in sync.
This allows you to propagate any modification across all environments, without having to worry about missing extensions or different configurations that cause problems.
2. Reducing Costs – What You’re Spending Too Much Money On
Optimizing Cloud Resources
Load balancing
At Bunnyshell, every web server comes with a software load balancer as part of our application stack. Your servers can be easily scaled horizontally, depending on the workload and business needs.
You can also see a list of created instances and restart/stop/delete machines that are not masters, or assign another machine as a master.
These software load balancers help to evenly distribute web requests in times of high traffic and help to ensure high availability to your web application. Zero downtime, no excessive costs.
Load balancing refers to the process of distributing a set of tasks over a set of resources (computing units), with the aim of making their overall processing more efficient. Load balancing techniques can optimize the response time for each task, avoiding unevenly overloading compute nodes while other compute nodes are left idle.
Reducing Cloud Spend
Auto-scaling
Almost all billing for cloud services is tied to expected and actual usage. That’s why having visibility into usage metrics and trends is critical.
In addition to horizontal scaling, in Bunnyshell you also have the option of auto-scaling up and down based on some options that you can set, for example, CPU utilization, based on which you can decide to scale down to 1 instance for low usages and scale up to 12 instances – for example if you have a usage spike – and then scale down after the spike passes.
The auto-scaling feature can optimize your cloud budget because it will only scale up when it is needed and it will scale down automatically when there is no more need for the extra resources.
This can drastically improve your cloud bills since you will only pay for the resources when you are using them and not have to worry about scaling up and down yourself, which sometimes has downtime and you end up paying for resources that you didn’t actually need in those time frames.
Once you start using Bunnyshell’s Auto-Scale feature, we maintain proactive control and ongoing analysis of your cloud infrastructure. That includes:
- A defined, though the fast process to bring up new cloud instances;
- An ongoing review of usage;
- A mechanism to remove unused instances and right-size underused instances.
All this information can help you find a balance to make sure that your organization has the computing capacity that it needs without oversubscribing and paying too much just to be safe.
As an added bonus, our partnerships with cloud providers like Amazon and DigitalOcean mean that we can offer cost free migration, so there’s no cost overlapping across different providers, while migrating servers.
Expensive DevOps
Working directly with a cloud service provider (Amazon, Google Cloud, Azure) requires great, in-depth knowledge, a steep learning curve, and dedicated employee(s). That’s usually where a hard-to-find and expensive-to-hire full-time DevOps comes in handy.
Using a cloud infrastructure management platform like Bunnyshell means you won’t need a dedicated DevOps, since you can do everything yourself, easily and automated.
3. Improving Processes – Where You Need To Improve Internal Processes
These Bunnyshell features help you and your team improve internal processes. That way, you can focus on writing software and not worry about DevOps time for deployments or log aggregation.
Deployments
With Bunnyshell you can run application deployments:
- All at once
- Rolling deployment
- Rolling deployment with extra provisioning
- Immutable
- Blue/Green
Start by connecting your code repository platform. Bunnyshell offers integrations with the 3 major repositories or you can add your own.
Then you can create a new deployment for one of your repositories.
You can then choose:
- an application type, such as Custom, PHP, Node, Python etc;
- the path where the code should be deployed such as the HTML directory of a web server;
- the application user (which is normally the webserver user if you use a web server for your application).
Then you’ll be redirected to that deployment’s dashboard.
In the Servers tab, you can add virtual machines from your list to which this repository will be deployed.
This feature will automatically cut all your DevOps time spent on configuring deployments on your servers or the time spent on manually deploying your software solutions
You also have support for secrets that can’t be located in the repository next to the code.
Deployment Steps
You might be wondering by now what if you need to perform custom actions after a deployment such as restarting a service or restart a process that has had it’s files updated and so on. That’s where the deployment steps feature comes in.
You can add actions to two hooks. One hook is executed after the new code is pulled but not yet updated in the symlink created (which actually updates the code files where they are run), and the second hook is executed after the new code files are symlinked where they are run.
So for example, if you want to stop a process before the deployment finishes, you would use the pre symlink hook, and if you want to start that process after the deployment finishes you would use the post symlink hook.
There are a lot of options for the add-action feature. You can see them all for yourself on the Bunnyshell platform.
Defining Cron Jobs
Aside from this you also have a section in which to define cron jobs if your apps need them and a list of deployments to check when your last deployment was created and so on.
This feature streamlines and simplifies your deployment process, cutting DevOps time to 0 for each deployment, allowing you to move fast and focus more on your products.
Self-Healing
The Bunnyshell agent which helps run your deployments and processes constantly checks for anomalies and deficiencies, and in the case of process failure due to any reason, restarts the process so there is no downtime.
There is no need for manual input due to the selection of the best possible course of action for rising issues automatically.
And in the event of failure and no automatic solution a critical notification email will be sent.
Log Aggregation for Debugging
Our log aggregation feature helps you identify and fix the anomaly right away, preventing deficiencies.
Access logs, application logs, errors, system logs – everything can be aggregated in a ELK stack that allows you to easily spot spikes and anomalies. Modern logging solutions are a must.
Here’s how that looks:
Logs are collected and can be downloaded as log files to be inspected and to identify the issues of your apps/deployments/virtual hosts/web servers, so your team no longer has to search for logs on the server and identify the errors, which saves time.
Take a look at a log file example:
The Bunnyshell solution
Together, all these features allow Bunnyshell to secure, measure, optimize, and manage your SaaS stack in the same way that you’d expect to manage your own network or on-premise software stack.
A cloud infrastructure management solution saves you time, money, and effort. It increases productivity and lets you get back to production, where your skills are needed.
With Bunnyshell, you can:
- Spend more time launching features than fixing bugs;
- Coordinate your team and get back to the product roadmap;
- Reduce time-to-market;
- Only pay for the computing capacity you actually need (without overpaying just to be safe);
- Optimize your cloud spend and hosting subscription levels and costs;
- Spend money on things that help grow revenue by offering a better product and customer experience;
- Focus your time and resources on what matters – your product;
We’re constantly improving our product, so if you have any questions or would like a demo, we’re onboarding new clients step-by-step and would be happy to walk you through anything that might be unclear.
Let’s schedule a demo and find the best solution for you, your team, and your product.