DevOps Articles
AWS Serverless Application Model
AWS Serverless Application Model (AWS SAM) is an abstraction of AWS CloudFormation for templating serverless AWS applications. Using a templating tool to define serverless infrastructure can be extremely helpful as applications grow in size. Codifying infrastructure allows for more visibility and replicability of services. I am going to highlight to some of the benefits of […]
AWS CloudWatch Metrics
AWS CloudWatch metrics are an extremely beneficial tool for monitoring both application code as well as AWS infrastructure. AWS offers many metrics for all of their services, as well as the ability to both push custom metrics and to parse CloudWatch logs to build custom metric filters. These metrics can be used to build dashboards, […]
AWS CodePipeline Continuous Deployment
AWS CodePipeline offers a continuous deployment pipeline which integrates well with serverless architectures. It offers infrastructure creation via AWS CloudFormation, code integration with GitHub (or other) code repositories, building and testing with AWS CodeBuild, and deployment with AWS CloudFormation (or AWS CodeDeploy). CodePipeline allows for various stages in the pipeline which correlate to steps such […]
Process Monitoring with SupervisorD
The ability to monitor services on a web server is crucial for helping to ensure high availability. Another common process is to have daemon scripts which are designed to continually run for things such as a monitoring job queue. Being able to help prevent failure for such processes is extremely important. SupervisorD SupervisorD is a […]
Docker Container Stacks
Docker is a great tool for defining application environments (containers) and deploying the various containers as a single project. Custom Docker images can be created by writing a DockerFile, which contains all the container boot up instructions. Multiple Docker images can be managed with Docker Compose allowing for comlplex container stacks to easily be managed […]
Docker LAMP Stack
Docker is a tool used for shipping, or deploying, web applications along with their environment. Using Docker allows for easy sharing and recreating of application environments. This is extremely useful for developers as the stack and application can be built as a compilation of containers and easily deployed or modified. In this tutorial I will […]
RabbitMQ Cluster
RabbitMQ is a robust message broker for handling distributed message queues. In high availability applications, having a single server may not be sufficient enough for handling availability needs of the application’s data. RabbitMQ offers various clustering options and configurations to ensure messages will be persisted through failures and available when needed. Setup Although a RabbitMQ […]
AWS OpWorks
Amazon’s OpWorks allows for easy EC2 provisioning with Chef. Chef allows instances to configure all services, users, setting, dir/files, etc. as the instance is spun up. This allows for rapid infrastructure expansion and a consistent application stack. Before beginning, be sure there is a key pair associated with the account, which will allow access to […]
Vagrant Puppet VM Clusters
As outlined in previous posts Vagrant is a powerful tool for rapidly setting up development environments. However, after setting up numerous different environments for testing and developing in, some of the server set up tasks become repetitive. Puppet is a software solution for managing numerous servers from a single source. Puppet provisioning is a common […]
MySQL Master-Slave Replication
MySQL replication is the act of actively cloning all changes made on one server (master) to another server(s) (slaves). This is commonly done to create backups of data as well as to add multiple servers in which applications can query against. This becomes advantageous in high read environments where there is concern for bogging down […]