A few weeks ago TechTarget published a great article by Kurt Marko: "To build or to buy? That is the DevOps toolchain question”
At the end Kurt summarizes an organization's decision to three factors: expertise and comfort toward deploying open source tools, opinionated versus non-opinionated tooling choices, and the underlying PaaS. Allow me to add another important criterion: automation. More to the point, should the automation code play a role in your decision to build or buy?
Until now, development and operations teams have had to choose between a custom-built DevOps pipeline or pre-made toolchain bundled with cloud provider or PaaS offering. A pre-made toolchain is simpler than individually collected tools, but it sacrifices flexibility and control. Organizations that don't want to use an opinionated PaaS stack and pre-defined toolchains, yet don't have the time or expertise to stitch together and manage a myriad of DevOps point products, now have a new option that combines the best of both worlds: full stack automation with machine generated DevOps pipelines. Agile Stacks can provide customizable DevOps toolchain and create standardized environments, based on machine generated stack automation code.
1) bundled DevOps tools lack depth, making it very difficult to implement advanced use cases;
2) lack of flexibility, requires an organization to adopt to a tool, instead of tool adopting to preferred develpment and operations process;
3) vendor lock-in - for example, it's impossible to use AWS bundled DevOps services outside of AWS;
4) bundled services are moving at much slower pace than the best of breed open source and commercial products - harming efficiency of DevOps pipeline which is a key factor of success for development and operations teams.
A case for options other than build custom or buy bundled.
DevOps toolchains continue to evolve quickly, and organizations likely have distinct needs for creating value from it. Yet one virtue remains consistent - that implementing an automated delivery pipeline will accelerate how and when your software gets to your customers. DevOps automation is not an area where development teams can afford anything less than the best-of-breed approaches because DevOps automation makes such a huge impact on software agility, velocity, quality and cost.
Organizations worried about buy or build of DevOps tooling now have a new option combining the best of both worlds: full stack automation powered by machine generated code. Agile Stacks platform provides customizable DevOps toolchains and creates standardized environments based on infrastructure-as-code. Gone are the long nights and weekends spinning up machines and debugging automation scripts.
We released in GA this month the Agile Stacks DevOps stack. Just like walking up to the farmers market and picking your fresh ingredients, any tooling from the list below that can be selected, integrated, deployed and managed using the Agile Stacks automation platform:
A typical DevOps toolchain consists of a number of tools that can be automatically deployed and managed using Agile Stacks DevOps automation platform:
- Project planning and issue tracking (Atlassian Jira or GitLab)
- Source code repository and version control (GitHub, GitLab)
- Continuous Integration (Jenkins, TeamCity)
- Automated build (maven, ant, gradle)
- Functional testing (Selenium, Allure)
- Performance testing (Artillery, Gatling)
- Security testing, security scanning, static code analysis (Twistlock, Black Duck, Clair)
- Monitoring (Sysdig, Prometheus)
- Log Mangement (Splunk, Elasticsearch, Fluentd, Kibana)
- User authentication and authorization (Active Directory, Okta, LDAP)
- SSO for all tools in the DevOps toolchain (Okta)
- Secrets management (Vault, pwm)
- Docker registry (GitLab, ECR)
- Infrastructure as Code (Terraform, Helm, CloudFormation, Chef, Ansible)
- Container Management (Docker, Kubernetes)
- Continuous Deployment (Spinnaker)
Any combination or permutation of choices above are saved as a template for reuse and redeployment at anytime to any environment whether it be dev, test, or prod.
Agile Stacks DevOps stack template includes a powerful set of tools for continuous integration, testing, and delivery of applications. This standardized, pre-integrated stack is developed from proven best practices and methodologies. It is available as a managed service which includes monitoring, scaling, and automated updates. DevOps stack is designed to tightly integrate with other Agile Stacks such as Docker/Kubernetes stack.
Until now, organizations had to choose between a custom-built DevOps pipeline that maximizes flexibility in using best-of-breed tools at a considerable cost in time and resources or an all-in-one solution limited to a platform-as-a-service (PaaS) or cloud vendor’s designated tools.
With Agile Stacks, development and operations teams no longer need to compromise. Agile Stacks empowers teams to deploy full-function DevOps cloud stacks using their tools of choice. Using this set of tools, you can achieve Agility: ability to iterate quickly, and move your applications between different environments, from development to production.
Instead of having to choose between building custom or buying bundled, you can now generate a modular stack of best of breed DevOps tools.