DevOps Automation Platform
Agile Stacks DevOps automation platform allows to standardize and automate stack and application build processes as code. It allows to automate IT infrastructure with a GitOps approach, helping IT Ops, ML Ops and SRE teams to become more agile and more efficient. GitOps relies on version-controlled code repositories, typically housed in Git or GitHub, for everything from application configuration and CI/CD pipelines to infrastructure management. GitOps limits direct access to production, as well as manual system administration tasks, in favor of automated processes to deploy and update applications and infrastructure configurations.
An infrastructure stack is a collection of infrastructure services defined, maintained, and deployed as a unit. A stack template is the code that declares what a stack should be. Stacks are typically managed by automation tools such as Hashicorp Terraform, AWS CloudFormation, and Ansible. Using Agile Stacks, DevOps automation scripts can be dynamically created and stored as code in a Git repository, avoiding the need to manually create Terraform and CloudFormation templates. A their automation in source-control systems, usually Git.
The Agile Stacks DevOps platform allows our customers to automate agile software delivery. With application deployment pipelines and stack templates, you can create DevOps automation that provides the ability to iterate quickly and move your applications between different environments - from development to test to production. You can build your stack from auto-generated infrastructure as code scripts, significantly reducing the effort to integrate cloud services and tools into the deployment. Agile Stacks also offers a catalog of open source tools and commercial products for Kubernetes clusters. In addition to automated implementations and upgrades, Agile Stacks integrates and automates security and single sign-on throughout the entire provisioned stack.
Organizations tend to rely on multiple clouds and multiple tools from different vendors, which inevitably leads to silos of automation that often reduce overall efficiency. Agile Stacks provides a DevOps Portal that helps development teams to use multiple platforms more consistently. Through the self-service portal, teams are empowered to continuously build, support and improve the shared stack templates and machine learning pipelines. Overlay stacks are not limited only to Kubernetes and containers - DevOps Portal can manage any programmable infrastructure using Terraform, CloudFormation, or Ansible scripts.
Composable Stack Templates
Using SuperHub® Automation Hub, you can deploy one of the pre-integrated stack templates as is, or you can create stack templates to define your technology stack and standardized environments. Stack components are available via simple catalog selection and provide plug-and-play support for monitoring, logging, analytics, and testing tools. Composable stack services can be combined to solve a much broader range of tasks within a stack compared to using self-contained, non-composable stacks. Our goal is to address the composability problem, so we provide a single, unified tool for running common stack operations such as:
Powerful set of tools for continuous integration, testing, and delivery of applications.
Jenkins, Spinnaker, GitLab, Docker Registry, Vault, Sonar, Selenium, WireMock, Artillery, Chaos Monkey, Okta
Contains everything needed to secure and run a container-based set of services in a sound architectural way. more details
Docker, Kubernetes, Flannel, ElasticSearch, Kibana, Prometheus, Grafana, Sysdig, Vault, Dex, Traefik, Istio, PostgreSQL, MongoDB, Redis, Portworx, Minio, Okta
Lets users derive the maximum benefits out of the AWS Serverless Application Model for automatic deployment of AWS resources.
User management, serverless application templates, networks, security, S3 buckets, CI/CD pipeline
Machine learning toolset that supports the full lifecycle of an ML application. It provides cloud based tools for data ingestion, analysis, transformation, storage management, model training, simulation, and serving, as well as monitoring, logging, and other operational tools to run machine learning on Kubernetes. more details
KubeFlow, Jupyter Notebook, Keras, TensorFlow, TensorBoard, Caffe, Argo, Seldon, Minio, Ceph, HDFS, PostgreSQL, Cassandra
Stack Automation Hub
At the heart of the Agile Stacks platform is SuperHub® automation hub, which accelerates software delivery with composable stacks for application development and machine learning. The SuperHub automation hub technology empowers users to create customized stacks from best-of-breed tools, and substitute tools as necessary. Stack components are auto-configured to deploy, upgrade, rollback, promote, clone. The Hub is also responsible for enforcing enterprise grade security: Single sign-on, SSL, encryption at rest, secret storage of passwords, RBAC, etc. As a result, deployment of cloud infrastructure services and open source software is made faster, more reliable, more stable, and more secure.
DevOps Control Plane
Agile Stacks Control Plane is available on-demand to all project teams across an enterprise in a self-service fashion. It allows teams to create and manage a standardized set of cloud-based environments, based on stack templates. Applications can be deployed in portable containers or serverless functions, and they can be promoted from one environment to another via an automated CI/CD pipeline. All tools in the DevOps toolchain are easily accessible from the Control Plane, and secured with single sign-on and SSL.
Agile Stacks Lifecycle (GitOps)
Based on GitOps approach, Git can be used as the primary tool that developers and operations need to drive their DevOps tasks. Infrastructure deployment, application source code, environment configuration, CI/CD pipelines, automated tests are stored declaratively in Git source control. Changes are made to definitions and then rolled out to systems through automated processes that include thorough validation. Using Git for managing both infrastructure definitions and application source code reduces complexity and allows for infinite customization.
Stack templates allow to codify and automate deployment of Dev, Test, Stage, and Production environments using Git for Operations approach. Deployment configuration is stored to a common Git repository where changes to all infrastructure and application deployments are maintained. This repository contains the desired state of all environments. An application can be moved through various runtime environments, typically with an increasing level of maturity. For example, an application might start out in a Development environment, then be promoted to a Stage environment for further testing, before finally being promoted into a Production environment. As changes are introduced in the application, again the changes will start in Development and be promoted to Stage and Production. All changes are performed in Git first, and then applied to environments: taking the same set of best practices that software developers are using for managing application source code, and applying it to infrastructure. The history of changes and differences between environments can be reported on.
Application Starter Kit automatically creates properly configured Jenkins and Spinnaker pipelines based on selected application template, environment, and stack. Developers can push application code to Git, and have it automatically built, tested, and deployed to either Kubernetes clusters or AWS lambda serverless functions.
Using Application Templates, developers and data scientists can easily create powerful cloud native applications or AI/ML solutions. To jump start your project, select from a catalog of application templates: Java application, NodeJS application, Web frontend, machine learning workflow. Your new application will be automatically deployed from Git to your AWS cloud accounts or Kubernetes clusters.
Application Templates are basic application that are built on your stacks to help you get started with the infrastructure services and to give you some best practices. Each application template includes:
- Source code boilerplate for new application is created in your Git repository
- CI/CD pipelines for Jenkins and Spinnaker are configured to automatically build and deploy your app
- Step-by-step instructions that you can use to extend the application and pipeline with additional services, automated testing steps, etc.
Automated Security (SecOps)
Agile Stacks integrates and automates security though the entire provisioned stack. All passwords, license keys, GitHub tokens, client certificates and private keys are securely encrypted inside of HashiCorp Vault secrets service and injected into stack provisioning automation code. Security Model for Teams and Environments does not allow end users to elevate security access by storing security permissions into Git or CI/CD pipeline and gaining unauthorized access to cloud environments, customer data or applications. Certificates are regularly rotated and provide a revocation method. Without proper safeguards, how do you make sure that application developers do not have unrestricted access to cloud environments and user data? Permission model is propagated to all tools provisioned by Agile Stacks and protected by Single Sign-On and role based access control.
To release quickly, continuous delivery needs the automated testing toolset that can replace manual error-prone QA processes with automated testing workflow. Agile Stacks provides CI/CD pipeline templates for Jenkins and Spinnaker that include support for performance/reliability/security testing leveraging multiple testing tools such as Lint, Selenium, Allure, Artillery, Evident ESP, JUnit. Automated code scanning tools can help you to identify and correct problems with the quality or security of your code, including cloud infrastructure code, without having to execute the app or write test cases. Each problem is reported with a description message and a severity level, so that you can quickly prioritize the critical improvements that need to be made. There are several tools that scan source files for potential bugs and optimization improvements for correctness, security, performance, usability, accessibility, and internationalization. Automated testing process allows developers to quickly create testing environments and confidently promote releases through staging environments to production without compromising quality or security.
The following screen shot shows how automated test results (such as lint errors and Selenium errors) are shown in Jenkins Tests detailed view.
To jump start DevOps automation, Agile Stacks provides the ability to generate CI/CD pipelines for applications or microservices. Application Builder automatically creates properly configured Jenkins and Spinnaker pipelines based on selected application blueprint, environment, and stack. Application deployments can then be monitored and managed through a self-service DevOps Control Plane.
- Control Plane simplifies stack configuration and allows to create a standardized set of cloud based environments, stacks, and applications.
- The applications can be deployed to Docker containers, cloud VMs, serverless functions, or CDNs and promoted from one environment to another via automated CI/CD pipeline.
- Continuous Delivery pipelines enable teams to deploy new features and bug fixes in small batches when they are ready, without batching them into formal releases. Continuous Deployment pipelines go one step further and allow to automatically push each change live once it has passed the automated tests, security scanning, canary analysis, load testing, and other checks.
- Using DevOps-First approach, software engineering and IT operations teams can achieve Agility: ability to iterate quickly, and move your applications between different environments, from development to production.
Get in touch with our Support team to discuss your CI/CD pipeline requirements and customize it for your preferred automated testing and deployment approach. Agile Stacks generates CI/CD pipelines based on Open Jenkins Design approach which can be easily extended and customized to implement even the most complex continuous testing and continuous deployment requirements.