FOSS DevOps Toolchain For Startups
When we started Loves Cloud (www.loves.cloud) last year in November, we were more than committed to use and evangelize free and open source software (FOSS) for our customers and for ourselves for all devops requirements. After going through more than a dozen tools, we have zeroed in on 6 tools that makes a fabulous devops toolchain for startups. These tools resolves most of the common use cases for a variety of workloads for most organizations and specifically for startups.
These devops tools are free, open source, popular and cloud agnostic in nature. This toolchain is adequately supported by all major cloud platforms such as AWS, Azure, GCP and OpenStack through a combination of their IaaS, PaaS and SaaS offerings.
As a startup, you would want to implement devops from day 1, to reduce your time to market, to increase collaboration between teams and increase agility, among other benefits. You surely wouldn’t want to spend a fortune on either paid tools or on a small army of qualified devops resources that are hard to find and harder to keep 🙂
Let us take a brief look at these tools along with their most common use cases:
- Jenkins : Everybody loves Jenkins! It is our weapon of choice for all things continuous integration and continuous deployment. There are thousands of plug-ins available for virtually every tool out there. We have used it in vanilla use cases and for advanced use cases such as pipeline as a code and it works beautifully well. Use Jenkins to automate your build and deployment process. Implement best practices for continuous integration such as checking in code multiple times in a day to ensure you fail fast and blast radius is as little as possible.
- Docker : Virtually all workloads are a prospective use case for Docker. We have customers who use couple of containers and ones who use scores of them, running on cloud and on data centers. Use Docker to fix “It works on my machine” issues. Ensure that your code runs in all environments all the way from developers workstation to production servers. Reduce your debugging time and focus on building great products.
- Kubernetes : We started using Kubernetes early this year when we found that Docker Swarm has better alternative available :-). Even though Kubernetes is used only in one project as of now, we are investing heavily in building competency for it as we believe all container workloads will need Kubernetes for scaling and management requirements.
- Ansible : We are a bit biased towards Ansible among most common configuration management platforms such as Puppet, Chef and SaltStack. We have found reusable playbooks for all our cloud workloads and developed plenty of such playbooks in house as well.
- Terraform : We started off with AWS CloudFormation for our infrastructure as a code requirement for one of our customer. While researching, we stumbled upon Terraform and found it amazingly simplistic when compared to any other tool out there. It provides a single command infrastructure deployment while staying cloud agnostic, free and open source at same time. Tear down and rebuild your environment using terraform, it truly takes you to another level of devops maturity.
- Graylog : While researching for our logging and monitoring solution, we initiated a pilot project using Graylog, and we were blown away by results we got. I must say that Graylog is one of the most underrated product for logging and monitoring. You can use it to work with terabytes of log data without a sweat. This is easy to use and supports all features that you’d find in a typical paid logging tool.
I’ll be writing individual articles about each of these 6 tools in next few weeks. These articles will have case studies for our implementation of each of these tools along with solution architecture for each implementation and open source code for these solutions.
P.S. This is certainly not an exhaustive list of all FOSS devops tools, however, these tools will handle your most common devops requirements. Since they are very popular, it will be relatively easier for you to find resources (people, solutions, references, training etc.) for these tools.
You can reach out to me at email@example.com if you need information/solution/training related to any of these tools, devops, cloud or security.