• My Build 2018 Experience

    Last week I got a chance to attend Microsoft Build conference geared towards developers. I hadn’t been to build for at least 3-4 years now, but it is still a top-notch developer event that everyone should attend if you have an opportunity, especially if you build or plan to build applications on Azure cloud platform. Build is famously known for many swag giveaways in the past which seems to be not the case anymore, but the quality of content and speakers are still top notch.
  • Dockerizing Hugo Sites

    Hugo is a great OSS project that can be used to create static sites that are based on markdown files stored in a git repository. My personal blog is created using hugo and hosted on AWS S3. I recently did some work to dockerize it and thought I’d write about it. First thing I needed to do was create a docker image with hugo installed so I can build my hugo site.
  • Automatically get latest Docker security vulnerabilities posted to slack channel

    It’s extremely important to always be aware of all the announcements related to security issues for the products you use and support within your company, If you use slack we can have all these announcements posted directly to a slack channel. In this post, I will go over how we can do just that for Docker. Approach You can get a list of known security vulnerabilities using www.cvedetails.com website. Known security vulnerabilities can be searched by the vendor, product, version etc.
  • Configuration As Code With Docker and Spring Boot

    What is Configuration as code? Configuration as code is a DevOps practice that promotes storing of application configuration as code within source code repository. Few key benefits that this brings is that Versioning of application configuration By storing the application configuration in source code repository such as Git allows us to see what configuration changes were made over a period of time and who made those changes By using branches you can isolate changes that are under development without affecting the production application
  • Updates To Foodtruck Bot

    I made few enhancements over the weekend to seattle food truck bot. If you haven’t read my previous post on seattle food truck bot I suggest you head over to this link Monday - Friday update a channel in slack with food trucks available for a specific number of locations T-Mobile has multiple locations (Factoria, Bothell etc.) where we get food trucks for lunch. By automatically updating trucks for these locations we no longer need someone asking the bot to show trucks at these locations daily, Mon-Friday
  • Golang Slack Bot

    Overview These days bot development is getting so popular especially with platforms like slack and teams that most companies are now using to collaborate with teams within the company as well as external contractors and folks in external communities. I’ve been wanting to take a look at bot development for some time but never really just had a good use case until this last week. If you know me I’m a big foodie and I love the food trucks in Seattle.
  • Using docker for dynamically provisioning jenkins build slaves and running build jobs

    Why? In Many enterprises leveraging Jenkins for running automated builds, it’s quite common to have a central team providing Jenkins and other CI/CD tools as shared service. One of the issues that you quickly run into is that each development group within enterprise may have different platforms, frameworks, tools, libraries etc and to support the needs of everyone you end up provisioning jenkins build slaves for each group installing everything a particular group needs to be able to build/run jenkins jobs on these Jenkins slave nodes.
  • Jenkins Build Slave Image For Building Hugo Projects

    Overview At T-Mobile we are starting to leverage Hugo which is an OSS static site generator tool for a few marketing type of sites. We are also huge Jenkins shop and run jenkins build slaves in docker and Mesos/Marathon. We use S3 bucket for hosting content generated, cloudfront for global content delivery and route 53 for DNS. I’ve created a docker jenkins build slave image for building hugo projects in Jenkins.
  • Using spring aop for automatic collection of metrics from your SpringBoot based Microservice

    Overview Application Telemetry is one of the key practices that is required to diagnose the health of your application or microservice. At T-Mobile like most of the organizations practicing DevOps we are also big on telemetry. In this post I will walk through how we collect what we call RED metrics from application code. RED stands for Request rate, Error rate, Duration (Latency). Additionaly we also collect metrics on resource consumption.
  • Cloudformation template for provisioning firehose with S3 delivery

    Overview Kinesis firehose is a managed service within AWS that can be used to capture streaming data and load it into Kinesis Analytics, S3, Amazon Redshift or Amazon ElasticSearch services. I’ve published a cloudformation template that automates provisioning of all required components for Kinesis Firehose with AWS S3 delivery on your AWS account. You can find more info about the cloudformation template here One thing I should point out is one of the thing template does is it provisions a KMS key which is used to encrypt/decrypt data ingested at REST.