CaaStle is a full-stack microservices deployment tool for Google Kubernetes Engine (GKE) and Amazon ECS.
Platform of containerized applications/microservices includes application/web servers, container orchestration engine clusters, and application’s external resource dependencies such as managed database servers.
Key elements of CaaStle
Application-centric abstractions:
Environment is the top level abstraction. It defines container orchestration engine cluster and managed cloud services needed by the application. Application is composed of one or more application containers and is deployed in the environment. You get a shell customized for the environment with ability to directly use cloud-native CLIs against the platform elements created in that environment.
Declarative platform definition:
environment yaml file is used to define managed cloud resources within an environment; application yaml is used to define application container (for single container applications); pod/deployment yaml or ecs's task yaml is supported for multi-container applications. No need for platform inputs using command line parameters.
Platform element association:
Integrated creation and binding of cloud resources with application containers provides view of the entire application run-time environment with appropriate platform elements associations.
Environment change history:
History of operations that change the state of an environment is maintained for traceability and repeatability.
Non-hosted implementation:
CaaStle is a non-hosted implementation. There is no centralized server like PaaS implementations. CaaStle can be installed anywhere alongside Docker. This architecture enables effective local development with Docker environments setup on the individual workstations or laptops. The non-hosted nature also simplifies integration of CaaStle with any DevOps workflow.
Read this for more details about CaaStle
CaaStle FAQ
CaaStle Roadmap
Developed and Tested on:
- Ubuntu 14.04, 16.04
- Mac OS (El Capitan 10.11.4)
Requires:
- Docker 1.6 and above
- Python 2.7
CaaStle requires Docker to be installed. If you do not have Docker, you can install it following steps from:
https://docs.docker.com/engine/installation/
On Mac OS, make sure the command shell from which you are installing CaaStle is able to run docker commands without sudo. You can achieve this by executing following command in the shell once Docker VM is up and running:
eval "$(docker-machine env default)"
Once you have installed Docker follow these steps:
Clone this repository
Install CaaStle
$ ./install.sh
Do cloud setup
$ cld setup aws
$ cld setup gcloud
Start CaaStle server
$ ./start-caastle.sh
Choose a sample application from examples folder and follow the steps in the included README
$ cld --help
usage: cld [--version] [-v | -q] [--log-file LOG_FILE] [-h] [--debug]
CloudARK command-line tool to create and manage cloud environments for containerized applications.
Commands:
env create
env list
env show
env exec
env shell
env delete
container create
container list
container show
container delete
app deploy
app list
app show
app logs
app delete
setup aws
setup gcloud
- CaaStle setup: https://youtu.be/88kClIy8qp4
- Wordpress deployment on GKE: https://youtu.be/c7pO7TO0KzU
- Wordpress deployment on ECS: https://youtu.be/psgFyCa2PQA
Environment definition
Create environment
$ cld env create wpenv environment-rds-ecs.yaml
Create application container
$ cld container create wordpresscont ecr
Deploy application
$ cld app deploy wordpressapp wpenv app-ecs.yaml
Check application status
$ cld app show wordpressapp
Wordpress deployment complete
AWS console
Suggestions/Issues are welcome.