Microservice architecture in combination with Go programming language and Kubernetes platform has been adopted for the development of today's highly scalable services. The thesis will present how to package Go microservices into containers and how to build the best possible container image using the Docker platform and Ko as an alternative. Several container images will be compared to determine the importance of optimization and to find the best one. Then, deployment of such container image to Kubernetes will be presented. Findings, problems and solutions will be explained on topics such as configuration, secrets, liveness probes, readiness probes, graceful shutdown, fault tolerance, resource management, scaling, simplifying deployment with Helm and deployment automation with Ansible.
|