Home - woveon/wovtools GitHub Wiki
WovTools is a Kubernetes CLI framework that enables a DevInOps approach of continuous development, i.e. Development In Operations. WovTools manages the configuration and staging for a Kubernetes development/DevOps team. WovTools versions code, secrets/config, database and Kubernetes settings to allow systems to be concurrently developed: locally (on each developer's machines), across stages of development and across varried clusters. WovTools strives to use existing tools (Git, Kubectl, Docker, Kops) and coding practices as much as possible as it pushes and deploys versions of your system.
WovTools was created at Woveon. Woveon is an enterprise conversation management software. Using AI and machine learning, it helps businesses take control of their conversations - to provide exceptional customer experience, audit for compliance, and maximize revenue.
____ _____ _____ _
| __ )| ____|_ _|/ \
| _ \| _| | | / _ \
| |_) | |___ | |/ ___ \
|____/|_____| |_/_/ \_Software and Documentation
This is an early piece of software so documentation constantly improving. We'd love any and all feedback and collaboration.
- Scenario - a story of how WovTools would work in your developnent.
- Concepts - concepts and terminology
- Tutorial - a video tutorial and guide
How it Works in 3 Steps
...init
Ok, I just got my code to work. I need to get this into our cluster.
Run wov-init
to convert your microservice into a WovTools project.
...push
Cool, now to verify the DevOps generated files.
Check that the generated recipes for your Docker container and Kubernetes deployment is correct. Then wov-push
to build a runnable WovTools version.
...deploy
Ok, let's run it.
Run wov-deploy
to run your micorservice in your personal stage in a cluster.
That worked. Push it to the dev stage for testing and eventual production.
Guiding Philosophies
- Kubernetes is effecient, logical and robust... after it is setup.
- Existing dev and ops tools work well but have different data needs and forms... the more data redundancies/overlaps we create, the more error prone our system will be
What Type of Project Uses WovTools
- Startups - WovTools can rapidly set up your cluster, get your laptop's code running in the Cloud and help you setup and maintain your CI/CD pipeline.
- Small Companies - Exploring Kubernetes to help with company growing pains? Use WovTools to help you learn and avoid Kubernetes gotchas as you upgrade your infrustracture.
- Enterprise - Flooded with cluster configurations and poor orchestration? Use WovTools to integrate and manage your microservices, clusters and teams in a single master project.
- Enterprise - Picking apart a monolith? WovTools with WovService can help decompose functionality into Microservices, espcially at the data/persistence/entity layer.
Avoid Lock-in
Don't like WovTools? Well, WovTools generates files and configuration FOR Kubernetes and other tools. If you stop using WovTools, all the Kubernetes Yaml files and Docker Containers are still functional. Just edit and manage them directly. /s Remember to write though. We like letters and funny pictures. /s
Getting Started
- WovTools Installation
- Project Creation - configure your current project to be a WovTools supported project
- Cluster Creation - create a cluster in the cloud to run your project(s)
- Stage Creation -create different stages for dev, prod and each developer
- DataBase Server Creation - create a database to use in your cluster (Postgres currently)
- Database Creation - a database in a database server to support a stage
Documentation
- Container Creation - writing recipes to create Docker containers for Kubernetes and its deployment
- K8s YAML - an intro to writing basic K8s yaml files for a microservice
- Workflow - how WovTools enables your team to develop
- Workflow Locally - projects are developed and placed into versioned repositories that are deployed by WovTools into a running Kubernetes Cluster - Database Archive - a git repository that tracks database schema changes. - K8s Archive - a fileserver (AWS S3) that stores versioned Kubernetes configuration YAML scripts - Container Archive (Docker Repository)- builds your project into Docker container(s) to be Deployed to a cluster
- Workflow On Cluster - Developing your application on a machine in your cluster [Development In-Pod]
- Workflow To Cluster - Deploying versions and patches to a running deployment
- Workflow Rolling Stages - Merging stages from developers to dev and prod (production)
- DataSets - manage sets of data that go into a database for initialization and testing
- TODO - things that need work (lots of things)