Posts

Showing posts with the label kubernetes

Microservices based application design and deployment

Image
In this post, I'll discuss the high level overview of next generation applications design and deployment.  Microservices is the emerging trend to break down your business functionality in to smaller chunks and deploying/scaling/managing them independently for an enterprise application. However it is the sole & discrete decision of adoption of this software design for existing or new applications in an enterprise. Consider a small business scenario where we have a web based application called 'Guestbook', consists of following technical components- 1. Developed using Java/J2EE 2. Services (Microservices) developed using Spring Boot   3. MySQL Database. 4. ZUUL Proxy for API Gateway 5. Eureka for Service Registry Below would be the sample flow of application access as a micro services based software design- As shown above, end user connects to the WebUI. The application's all services/microservices are deployed independently which in...

Container Native Application Development Setup with Kubernetes

Image
Recently I have been involved in analysis and setup of container native application development setup using Kubernetes(k8s). Below are the steps I have done for the same- Requirements 1. A Developer with access to his/her GitHub account Developer develops an app and pushes the code to GitHub (a distributed version source code control utility) 2. Jenkins setup Jenkins setup is required for DevOps viz. creating CI/CD pipeline/ Web Hooks. For current environment, Jenkins server is running on Google Cloud platform. 3. Dockerhub account A valid dockerhub account is required for container image registery. 4. A Kubernetes(k8s) Cluster (GKE) A k8s cluster is required for running the containers /container orchestration, scaling and overall container lifecycle management. I have used Google Kubernetes Engine (GKE) @ Google Cloud. It contains 1 load balancer and 3 nodes. Conditions K8s cluster, Jenkins, GitHub should be on  the same network (if private...