Skip to main content

Posts

Showing posts with the label infrastructure

What is Graphite?

What Graphite is and is not Graphite does two things: Store numeric time-series data Render graphs of this data on demand What Graphite does not do is collect data for you, however there are some  tools  out there that know how to send data to graphite. Even though it often requires a little code,  sending data  to Graphite is very simple. About the project Graphite is an enterprise-scale monitoring tool that runs well on cheap hardware. It was originally designed and written by  Chris Davis  at  Orbitz  in 2006 as side project that ultimately grew to be a foundational monitoring tool. In 2008, Orbitz allowed Graphite to be released under the open source Apache 2.0 license. Since then Chris has continued to work on Graphite and has deployed it at other companies including  Sears , where it serves as a pillar of the e-commerce monitoring system. Today many large  companies  use it. The architecture in a nutshell Grap...

What is Graphite?

What Graphite is and is not Graphite does two things: Store numeric time-series data Render graphs of this data on demand What Graphite does not do is collect data for you, however there are some  tools  out there that know how to send data to graphite. Even though it often requires a little code,  sending data  to Graphite is very simple. About the project Graphite is an enterprise-scale monitoring tool that runs well on cheap hardware. It was originally designed and written by  Chris Davis  at  Orbitz  in 2006 as side project that ultimately grew to be a foundational monitoring tool. In 2008, Orbitz allowed Graphite to be released under the open source Apache 2.0 license. Since then Chris has continued to work on Graphite and has deployed it at other companies including  Sears , where it serves as a pillar of the e-commerce monitoring system. Today many large  companies  use it. The architecture in a nutshell Graphite consists of 3 software components: carbon  - a  Twisted  dae...

Configuring Graphite on Centos 7

Clone the source code: git clone https://github.com/graphite-project/graphite-web.git cd graphite-web git checkout 0.9.x cd .. git clone https://github.com/graphite-project/carbon.git cd carbon git checkout 0.9.x cd .. git clone https://github.com/graphite-project/whisper.git cd whisper git checkout 0.9.x cd .. Configure whisper: pushd whisper sudo python setup.py install popd Configure carbon: pushd carbon sudo python setup.py install popd pushd /opt/graphite/conf/ sudo cp carbon.conf.example carbon.conf sudo cp storage-schemas.conf.example storage-schemas.conf popd storage-schemas.conf has information about schema definitions for Whisper files. We can define the data retention time under this file. By default it retains everything for one day. Once graphite is configured changing this file wont change whisper’s internal metrics. You can use whisper-resize.py for that. Configure Graphite pushd graphite-web python check-dependencies.py Install the unmet dependencies: sudo ...

Configuring Graphite on Centos 7

Clone the source code: git clone https://github.com/graphite-project/graphite-web.git cd graphite-web git checkout 0.9.x cd .. git clone https://github.com/graphite-project/carbon.git cd carbon git checkout 0.9.x cd .. git clone https://github.com/graphite-project/whisper.git cd whisper git checkout 0.9.x cd .. Configure whisper: pushd whisper sudo python setup.py install popd Configure carbon: pushd carbon sudo python setup.py install popd pushd /opt/graphite/conf/ sudo cp carbon.conf.example carbon.conf sudo cp storage-schemas.conf.example storage-schemas.conf popd storage-schemas.conf has information about schema definitions for Whisper files. We can define the data retention time under this file. By default it retains everything for one day. Once graphite is configured changing this file wont change whisper’s internal metrics. You can use whisper-resize.py for that. Configure Graphite pushd graphite-web python check-dependencies.py Install the unmet dependencies: sudo apt-get insta...

Higher order infrastructure

Developer need not to worry about the underlying infrastructure, all he/she has to look into is the services running on them and the stack they write. You do not have to worry about where your code is running. Which leads to faster rollouts, faster releases, faster deployments. Even rollbacks have become piece of cake with having docker on your infrastructure. If there is any change in your service all you have to do is change the YAML (yet another markup language) file and you will have a completely new service in minutes.  Docker was build for scalabilty and high availability. It is very easy to load balance your services in docker, scale up and scale down as per your requirements.  The most basic application that is demoed by docker, is the following cat and dog polling polygot application. Each part of this application will be written and maintained by a different team. Add it will just get collaborated by docker. The above are the compone...

Higher order infrastructure

Developer need not to worry about the underlying infrastructure, all he/she has to look into is the services running on them and the stack they write. You do not have to worry about where your code is running. Which leads to faster rollouts, faster releases, faster deployments. Even rollbacks have become piece of cake with having docker on your infrastructure. If there is any change in your service all you have to do is change the YAML (yet another markup language) file and you will have a completely new service in minutes.  Docker was build for scalabilty and high availability. It is very easy to load balance your services in docker, scale up and scale down as per your requirements. The most basic application that is demoed by docker, is the following cat and dog polling polygot application. Each part of this application will be written and maintained by a different team. Add it will just get collaborated by docker. The above are the components required to get the docker application u...

Terraform

Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions. Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied. The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc. The key features of Terraform are: Infrastructure as Code : Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and...