About Docker Architect
Anuj accidentally stumbled onto a project which required real world containerization of a large ASP.NET app. The app serviced over a million customers and had over 12 separate components – including a messaging layer, 3 separate backend databases, a memory store (REDIS) and of course, front end views including JS angular libraries. This was his first role as a Docker Architect.
In the process of containerizing the different tiers of the large app, as well as a few related applications, Anuj was exposed to just about every challenge that is part of containerization. This included:
- Certificates and SSL / TLS packaging inside a container
- Providing a HA Proxy layer as an endpoint
- Node to Node Networking as well as external access to Containers on the node.
- Swarm Clusters of Dockerized Apps
- Event Logging and Piping of Events
- Monitoring using Prometheus and native docker logs monitoring
- Automating the entire push and pull from Docker Registry
- Automating the configuration of the underlying host – using Powershell (Windows) and Bash (Linux)
- Multi Stage Builds of app source and docker images
- Docker Compose based orchestration
- Live updates of dockerized apps without downtime
Since then, Anuj has worn the hat of a Kubernetes Architect on Google Cloud (GKE), Containerization Architect on Linux / Windows, Kubernetes Architect on AKS and EKS – with challenges of hosting 3 tier web apps on Kubernetes to writing custom controllers for desired states within a cluster.
Set up an initial conversation with Anuj Varma today. Tech Strategy cannot be an afterthought (™)
Docker Architect – Experience and Certifications
Anuj has helped build Cloud Centers of Excellence for The State of Texas, Shell, PepsiCo and other Fortune 100 Companies.
He speaks C#, java, powershell, python, node.js and several CI/CD languages, including terraform. He is also well versed with SQL and many variants (including BigQuery Standard SQL) .
Anuj currently holds Docker, Google Cloud Professional Architect, AWS Associate Architect among other certifications.
Docker Consultation
Setup a time for your initial docker consultation today. Strategy cannot be an afterthought (™)
CI / CD Pipelines and Docker
What does a CI CD pipeline look like in a containerized ( Docker ) world?
A CI CD pipeline with continuous integration looks like this:
- When developers push code to the shared source repository, it should trigger a build that produces a release candidate.
- The release candidates should be tagged Docker images that are stored in a local registry.
- The CI workflow deploys the solution from the built images as containers and runs an end-to-end
test pack. - If the tests pass, the image versions are made publicly available on Docker Hub, and the pipeline can start a rolling upgrade in a public environment running on a remote Docker Swarm. (In a full CI/CD environment, you can automate the deployment to production in your pipeline).
Every Stage of the Docker CI/CD pipeline is Containerized
The stages of the pipeline will all be powered by software running in Docker containers:
- Source control: Gogs, a simple open source Git server
- Build server: Jenkins, a Java-based automation tool that uses plugins to support many workflows
- Build agent: The .NET (or java) SDK packaged into a Docker image to compile code in a container
- Test agent: NUnit (or JUnit) packaged into a Docker image to run end-to-end tests against deployed code
- Gogs and Jenkins can run in long-running containers on a Docker Swarm or on an individual Docker Engine.
The build and test agents are task containers. These will be run by Jenkins to perform the pipeline steps, and will subsequently exit. The release candidate will be deployed as a set of containers.
The CI/CD workflow using Docker Images
The workflow for this pipeline starts when a developer pushes code to the Git server,
which is running Gogs in a Docker container.
Jenkins is configured to poll the Gogs repository, and it will start a build if there are any changes. All the custom components in the solution use multi-stage Dockerfiles, which are stored in the Git repository for the
project.
Jenkins runs docker image build commands for each Dockerfile, building the image on the same Docker host where Jenkins itself is running in a container.
When the builds complete, Jenkins deploys the solution locally as containers on the same Docker host. Then, it runs end-to-end tests, which are packaged in a Docker image and run as a container in the same Docker network as the application being tested.
If all the tests pass, then the final pipeline step pushes these images as release candidates to the local
registry, and the registry is also running in a Docker container.
Other Services, AWS Training, Security Audits
Having built CCoEs (Cloud Centers of Excellence) for various Fortune 100 companues, Anuj offers a hand-on, AWS security audit (as well as an Azure Security Audit). In addition, he offers a unique, group training for internal I.T teams, aimed at bringing their AWS , GCP or Azure skills up to speed.
Set up an initial conversation with Anuj Varma today. Tech Strategy cannot be an afterthought (™)