DevOps Automation Platform

An infrastructure stack is a collection of infrastructure services defined and changed 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 Heptio Ksonnet. 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.

Agile Stacks DevOps platform allows to automate Agile software delivery.  With application deployment pipelines and stack templates you can create DevOps automation that provides ability to iterate quickly, and move your applications between different environments - from development to test to production.  You can build your own stack from auto-generated infrastructure as code scripts, significantly reducing the effort to integrate cloud services and tools into the stack.  Agile Stacks also offers a catalog of open source tools and commercial products that can be deployed on Kubernetes clusters. In addition to automated deployments and upgrades, Agile Stacks integrates and automates security and Single Sign-On throughout the entire provisioned stack.

 

Composable Stack Templates

With Agile Stacks, you can deploy one of the pre-integrated stack templates as is, or you can create stack templates to define your own reference architecture. Stack services 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 larger range of tasks within a stack compared to using self-contained, non-composable stacks.   The composability problem is addressed by providing a single, unified tool for running common stack operations such as deploy, upgrade, undeploy, backup, restore, test, clone, as well as monitoring, logging, security, and other operational tools.

Stack Name

Description

Stack Services

Powerful set of tools for continuous integration, testing, and delivery of applications.

more details

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, Evident ESP, Okta

AWS Serverless

Lets users derive the maximum benefits out of the AWS Serverless Application Model for automatic deployment of AWS resources.

User management, Lambda application blueprints (Java, Node, Python), 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, 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, TensorFlow, Caffe, Argo, Ksonnet, Seldon, CI/CD pipeline, Ceph, HDFS, PostgreSQL, Cassandra

 

 

Stack Automation Hub (SuperHub)

Agile Stacks Automation Hub technology lets users create composable stacks from best-of-breed tools, and substitute tools as necessary.  Automation Hub automatically schedules execution of scripts for deployment of stacks.   Stack components are auto-configured for deploy, upgrade, rollback, promote, clone, backup, test script generation, merging, performance testing, security scanning, and functional testing.   The Hub is also responsible for enforcing enterprise grade security: Single sign-on, SSL, encryption at rest, secret storage of passwords, RBAC, etc.
 

 

Automation Hub

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.

DevOps Control Plane

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.   

 

GitOps

 

Application Templates

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.

 

starter_kit

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.  

Automated Testing 

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.


jenkins_tests2

CI/CD Pipeline 

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.

CI/CD Pipeline

 

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.

 

Book a Demonstration

 

Agile Stacks is a registered trademark of Agile Stacks, Inc. All product names and registered trademarks are property of their respective owners.