Posts

Hello Java Software Architects, Designers and Developers, it's your time now!!!!!

Hello everyone, i had come across some requirements to be implemented as a Java application by one of the known person.  Immediately i thought that i could post it in my blog to let you know about it and your perspective about the design and solution. It would be great if you could provide your thoughts and solutions for the same. It provides great interactive session which automatically lead to emerge great solutions. I hope all Solution architects, Designers and Developers will pay heed to my post and provide efficient solutions. Below are the requirements. Requirements Implement a network-accessible in-memory key-value storage (server).  "In-memory" means that all data (key-value pairs) should be stored in memory and disappeared when the storage is restarted. - You can not use ready-made solutions (Redis, Memcached and so on) The storage must allow: -- to set the value of the key, -- to read the value of the key, -- to delete the key, -- and also to get a list of a

Docker Part IV - Running Multi-Container Application using Docker Compose

Image
Hello, I am Malathi Boggavarapu and welcome back to my blog. I hope you had great learning sessions from my previous posts about Docker and how Docker works with several examples and pictures for easy illustration. Now let's take a look at how we build and run a Multi-container application using Docker Compose. In the last section of this course, i provided a real world usecase and explained how we deploy application to Wildfly server and start database server just by using single docker-compose file. Running Multi-Container Application using Docker Compose  So far we have talked about a Single Container application. But in typical application you will have Webserver, Database server and Messaging server and each of those should be scaled up and down. That's where Docker compose comes in. Docker Compose is the ability to define and run multi-container applications. The configuration of each container is defined in one or more files. The default file n

Docker Part III - Learning Docker in more practical way

Image
Hi, I am Malathi Boggavarapu and welcome to my blog. Please do read my earlier posts on Docker to get an idea about it and in this session we do more practical work on Docker. We install the Docker, Build an image and Run it. We also look about Docker Machine and about Docker Maven Plugin which is used to "Dockerize" a web application. So let's start with Docker for Mac and Windows Earlier Mac and Windows are two platforms where Docker was not supported natively because Docker is essentially a Linux technology. It is based on Linux containers, C groups and namespaces as we are saying earlier. But NOW we have it supported for Mac and Windows. So now we are going to see what is Docker for Mac and Windows. Native application and UI It is a native application with a native UI. So you literally go to docker.com/getdocker . It's a public BETA.   You can download the application by giving the docker hub id. Auto update capability It has a capab

Docker Part II - How to build Docker Files and Images

Image
Hi, I am Malathi Boggavarapu and welcome to my blog. This is the continuation course of Docker. Before going through this course, please take a look at my previous post ' What is a Docker ' which introduce you to the building blocks of Docker. This course will teach you about most important concepts such as Dockerfile and Images with examples, pictures and real world usecases. So let's get started to learn about what a Dockerfile and Docker Image is. Dockerfile is a text file where we put bunch of instructions or commands so that Docker can use it to create an image. See the below picture for instructions or commands that are available. By using the complete set of commands which were shown in above picture, we build a Dockerfile. So let's look at FROM in the above picture. Using FROM command we can refer to the base image that is going to be used while building an image. Example it can be used to ask ' i need the user space for Ubuntu o

Docker Part I - What is a Docker?

Image
Hi, I am Malathi Boggavarapu and i am going to introduce basically what the Docker is about with examples and pictures. So let's get started now. What is a Docker? Docker is an open source project and a company.  It started about 3 years ago in a France company called dotCloud where they wanted to build a better Paas (Platform as a Service) for developers. Over a period of time they recognized that it is going to be more on the lines of creating containers. It started as open source project in a company but over a period of time they figured out containers is the way to go and eventually evolved the name to Docker. Java gives you WORA - Write one, Run anywhere. Docker gives PODA. Why WORA is possible is that we take java soruce code, compile to class file format or Jar fiel or war file and that format is understood by the JVM. As JVM is running on variety of different operating systems which understands the class file format and does what you want to do. On

Git Fundamentals

Image
Hi, I am Malathi Boggavarapu working at Volvo Group and i live in Gothenburg, Sweden. I have been working on Java since several years and had vast experience and knowledge across various technologies. This post gives you the introduction to the GIT version control system. A brief history of version control First generation The very first version control system were developed in early 70's and operated on a single file and had no networking support.These were the systems such as SCCS and RCS. They are operated on a single file so that you will have a file such as foo.c and have multiple versions of that file. But there was no correspondence between different files within the repository. There was no notion that version 1.1 of foo.c work with version 1.1 of bar.c. It could be arbitrary. So we only had single files. This lead to the innovation of having a multi file system or the second generation. Second Generation This is typified by centralized version co