Posts on Technology
Contents
- Creating Immutable yet Configurable Docker Images - 07 September 2018
- Creating Custom Ansible Modules for Windows - 29 August 2018
- Visualizing Prometheus Metrics for Spring Boot Apps with Grafana - 28 August 2018
- Monitoring Containerized Spring Boot Applications with Prometheus - 26 August 2018
- Instrumenting Spring Boot Applications for Prometheus Monitoring - 24 August 2018
- Integrating Jenkins Pipeline with Docker - 20 August 2018
- Disposable Sharepoint Farm Infrastructure - 20 February 2018
- Devops Vision Strategy - 25 September 2017
- Devops Automation And Infra Support - 15 September 2016
Creating Immutable yet Configurable Docker Images
Published: 07 September 2018
Categories: devops, containerization
One challenge when creating Dockerized apps is:
How do you create images that retain their immutability while remaining configurable across environments?
Creating Custom Ansible Modules for Windows
Published: 29 August 2018
Categories: devops, provisioning
Although Ansible has great support overall, it still comes up lacking when you try to do “cutting edge” work, especially around Windows.
In recent times, I have been working a lot with Windows Server. I felt the need to create my own custom modules to get certain things to work, and this was quite an interesting experience. So here’s my brain dump.
Visualizing Prometheus Metrics for Spring Boot Apps with Grafana
Published: 28 August 2018
Categories: devops, monitoring
Spring Boot Dashboard for Grafana: https://grafana.com/dashboards/6756
Import the Dashboard into Grafana:
Make some fake requests to Petclinic:
$ while true; do curl -X GET http://some.ip.address:9080/owners?lastName=; sleep 1; done
Watch the trace show up in Grafana!
Monitoring Containerized Spring Boot Applications with Prometheus
Published: 26 August 2018
Categories: devops, monitoring
This article discusses integrating a Spring-Boot 2.x Java app with Prometheus. The app in question needs to already be instrumented with the Prometheus libraries.
As discussed in a previous post,, Petclinic has been instrumented to provide Prometheus metrics at a /manage/prometheus
endpoint.
In this article we will run the instrumented Petclinic application as a Docker container. We will then run a Prometheus service (again as a Docker container) retrieve metrics from the Spring-Boot app to display in the Prometheus dashboard.
Read more after the break.
Instrumenting Spring Boot Applications for Prometheus Monitoring
Published: 24 August 2018
Categories: devops, monitoring
This post talks about instrumenting a sample Spring-Boot 2.0 application with Prometheus. The motivation to write this post came from my experiments toward creating an instrumented, Dockerized Spring-Boot app that would generate metrics to be consumed by Prometheus and Grafana. Read more after the break.
Integrating Jenkins Pipeline with Docker
Published: 20 August 2018
Categories: devops, software
Foo! Excerpt
Disposable Sharepoint Farm Infrastructure
Published: 20 February 2018
Categories:
Disposable SharePoint Farm Infrastructure
- Dates: Feb 2018 to Aug 2018
- Role: Architect, Team Lead
- Team Size: 5
Project Goals
Our 5-member team was deployed to our client’s site with the brief to design, implement and deliver a fully-automated SharePoint Server Farm on Azure.
Infrastructure-as-Code was a key deliverable, i.e. the following tasks were fully automated:
- Networks Provisioning
- Provisioning of all VMs, Disks, NICs, Security Groups and related resources in Azure
- Configuring SQL Server Databases and High Availability
- SharePoint Services and Web-Apps Configuration
- Configuration of firewall rules for Barracuda WAF and Azure Traffic Manager
- Infrastructure Validation against compliance requirements.
Context
- The client used Sharepoint Server for many of their critical business processes, and were embarking on an Azure migration.
- Their existing provisioning process was highly manual, involving 48+ hours of manual provisioning by a consultant.
- End-to-end automation would have the potential to save time, cost (consultant fees) and minimize risk due to human error.
Tools Used
Key Activities
Drove Recruiting
The team was hired and upskilled in anticipation of this project. As a senior team-member, I helped drive the recruiting, interviewing and upskilling activities. Given that Agility Roots was a new firm, I also created a bespoke interviewing process and programming assignment to help narrow down the most suitable candidates.
Upskilled the Team
Once the team was recruited and in place, I identified gaps in their skillsets and conducted weekend hacking sessions to upskill the team, as well as build camaraderie. This went a long way toward our collective success in delivering a complex project.
Key Impact
- Designed and implemented a fully automated process to deliver an HA SharePoint Farm on Azure.
- Delivered 10 environments with 70 servers and a high degree of reliability.
- The entire process from scratch took only 8 hours per environment.
Devops Vision Strategy
Published: 25 September 2017
Categories:
DevOps Vision and Strategy for a major Healthcare Enterprise
- Dates: Sep to Oct 2017
- Client: A US-based Fortune-500 company in the healthcare domain.
- Role: DevOps Architect, Team Lead
- Team Size: 3
Project Goals
The role of my team was to work with key stakeholders in the client’s ODC to:
- Assess current progress and roadblocks with DevOps automation and conduct a gap analysis.
- Create a coherent, overall DevOps Vision and Strategy.
- Create a DevOps Process Model for effective software delivery.
Tools Used
- Jenkins (Pipeline-as-Code)
- Docker + Compose + Swarm
- Ansible
- ServerSpec
Key Impact
I delivered an end-to-end DevOps Vision and implementation strategy for the client. Where feasible, I also drove the initial implementation of a solution to help evangelize the strategy.
Key aspects of the strategy:
- Pipeline-as-Code and the application of Continuous Delivery practices
- An effective, decoupled, container-first application architecture
- A tightly integrated Deployment Pipeline that enabled realization of DevOps principles of flow and feedback
- Infrastructure maintained through, and extended by, Code
- Continuous Testing strategies for source-code, container validation and configuration scripts.
Devops Automation And Infra Support
Published: 15 September 2016
Categories:
DevOps Automation Implementation and Infrastructure Support
- Dates: Sep 2017 to Aug 2018
- Client: One of the world’s largest travel platforms
- Role: DevOps Architect, Team Lead
- Team Size: 4
Project Goals
- Build and release automation for the entire enterprise platform comprising 60+ applications.
- Infrastructure and deployment automation for 10+ environments.
- Infrastructure support for development team of 150.
Tools Used
- Ansible
- Puppet
- Jenkins
- Docker
- Oracle WebLogic, Endeca, Coherence, Oracle DB, UltraESB, Tomcat
Key Activities
- Injected DevOps practices to complement existing processes to accelerate deployment processes.
- Coordinated release processes across teams for multiple releases till production.
- Key Stakeholder in the account for accelerating application delivery using DevOps automation and processes:
- Automated Environment Provisioning
- Automated Provisioners for DevOps ToolStack
- Migration to Jenkins Pipeline DSL to support CD principles
- Git Migration - Branching and Merging Strategies
- Transformation to CI/CD practices for application and automation code
- Containerized application development with Docker
- Conducted Knowledge sessions on DevOps tools/processes for the account.
Key Impact
- From 60 man-days per deployment, to 5.5 man-days
- Consistency in deployment effort shifted focus from firefighting to continuous improvement
- Reduced process dysfunction