This document discusses continuous deployment of Clojure services to Kubernetes using Docker and GitLab CI. It provides an overview of Docker, Kubernetes, deploying a sample Clojure service, and configuring GitLab CI for continuous integration and deployment. The sample Clojure service is built as a Docker image, tested using GitLab CI, and deployed to Kubernetes clusters for testing and production using configuration files and GitLab CI pipelines.
CI/CD Pipeline mit Gitlab CI und Kubernetesinovex GmbH
Docker Meetup Mannheim, 20.06.2017
Speaker: Johannes M. Scheuermann
Mehr Tech-Vorträge auf: https://www.inovex.de/de/content-pool/vortraege/
oder in unserem Blog: https://www.inovex.de/blog/
Openshift has the mechanism for building and deploying applications and Jenkins is a tool use for continuous integration/delivery/deployment. If we combine these together we can create a CI/CD pipeline that will allow us to promote builds of applications and make them available in our OSE instance.
Video - https://youtu.be/IreIK-jICgY
CI/CD Pipeline mit Gitlab CI und Kubernetesinovex GmbH
Docker Meetup Mannheim, 20.06.2017
Speaker: Johannes M. Scheuermann
Mehr Tech-Vorträge auf: https://www.inovex.de/de/content-pool/vortraege/
oder in unserem Blog: https://www.inovex.de/blog/
Openshift has the mechanism for building and deploying applications and Jenkins is a tool use for continuous integration/delivery/deployment. If we combine these together we can create a CI/CD pipeline that will allow us to promote builds of applications and make them available in our OSE instance.
Video - https://youtu.be/IreIK-jICgY
In celebration of the launch of the Knative Cookbook, we will run a fast-paced live code demonstration of the coolest Knative-based techniques that we can imagine that include Kafka and Kamel.
>>WATCH THE WEBINAR HERE: https://codefresh.io/docker-based-pipelines-with-codefresh/
Most people think that Docker adoption means deploying Docker images. In this webinar, we will see the alternative way of adopting Docker in a Continuous Integration Pipeline, by packaging all build tools inside Docker containers. This makes it very easy to use different tool versions on the same build and puts an end to version conflicts in build machines. We will use Codefresh as a CI/CD solution as it fully supports pipelines where each build step is running on its own container image.
Sign up for FREE Codefresh account (120 builds/month) at Codefresh.io/codefresh-signup
This talk outlines the features in containerd 1.1 smart client: I/O redirection from the client side, containerd namespaces to leverage a single runtime instance with a logical isolation from multiple clients (Kubernetes, Docker Engine, other systems), and containers as types in Golang when using containerd Go client library.
Additionally, it explains all the performance improvements brought by BuildKit, and the capabilities that it opens up because of it's modular architecture, enabling open source developers who create new build systems using BuildKit directly to create new front ends.
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkRed Hat Developers
In a time where container image building tools outnumber application frameworks, and deployment descriptors are lengthier than a small app, "deployment" is the stage where developer fun goes to die. In a less dramatic tone: The options and complexity of containerizing and deploying an application is, to say the least, a distraction for most developers. But it doesn't have to be. Quarkus provides extensions that help developers eliminate those distractions by making smart choices for them and by integrating with the rest of the Quarkus ecosystem. This demonstration will show that in Quarkusland, Kubernetes is not a killjoy but part of the fun, by providing a concise experience as you mix and match support for various platforms (vanilla Kubernetes & OpenShift) with image building solutions (Docker, Jib & S2i).
Cloud Native CI/CD with Jenkins X and Knative PipelinesC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2Pc3H50.
Christie Wilson and James Rawlings explain the CI/CD challenges in a cloud native landscape, and show how Jenkins X rises to them by leveraging open source cloud native technologies like Knative Pipelines. They demo a GitOps based Jenkins X workflow, showing how simple Jenkins X makes it for developers to stage and deploy changes on demand. Filmed at qconlondon.com.
Christie Wilson is a software engineer at Google, currently leading the knative build-pipeline project. Over the past ten years she has worked in the mobile, financial and video game industries. James Rawlings is a co-creator of the open source project Jenkins X and works for CloudBees, where he aims to help developers and teams move to the cloud.
The path to a serverless-native era with Kubernetessparkfabrik
In this talk we'll talk about how the Serverless paradigms are changing the way we develop applications and cloud infrastructure and how we can implement them in a
efficient and seamless way with Kubernetes.
We'll go through the latest Kubernetes Serverless technologies, talking about all the aspects
including pricing, scalability, observability and best practices.
A hands-on workshop that covers 18 best practices in 4 categories or in other words ✅️ Dos & Don'ts.
After a general introduction, we will have a look at the essential practices (aka must do), then move to the image practices, then we will go through the security practices, and finally, some general practices.
Please note, this workshop assumes that you have a basic knowledge of Docker.
Hands-on repo:
https://github.com/aabouzaid/docker-best-practices-workshop
Introduction to Kubernetes - Docker Global Mentor Week 2016Opsta
Kubernetes is an open-source system for automating
deployment, scaling, and management of containerized
applications. This presentation will show you overview of Kubernetes concept.
Docker Global Mentor Week 2016 #DockerInThai at Kaidee on November 18, 2016
For years people have been using VM-based CI platforms where they are managing build nodes that run their CI workflows.
A few years ago, Codefresh revolutionized the CI/CD world and became the first container-native CI/CD platform.
**WATCH THE WEBINAR AT https://Codefresh.io/events **
In this webinar, we will look at the differences between VM-based CI pipelines and Docker-based CI pipelines, in terms of maintenance, upgrades, pipeline creation, caching, and speed!
In celebration of the launch of the Knative Cookbook, we will run a fast-paced live code demonstration of the coolest Knative-based techniques that we can imagine that include Kafka and Kamel.
>>WATCH THE WEBINAR HERE: https://codefresh.io/docker-based-pipelines-with-codefresh/
Most people think that Docker adoption means deploying Docker images. In this webinar, we will see the alternative way of adopting Docker in a Continuous Integration Pipeline, by packaging all build tools inside Docker containers. This makes it very easy to use different tool versions on the same build and puts an end to version conflicts in build machines. We will use Codefresh as a CI/CD solution as it fully supports pipelines where each build step is running on its own container image.
Sign up for FREE Codefresh account (120 builds/month) at Codefresh.io/codefresh-signup
This talk outlines the features in containerd 1.1 smart client: I/O redirection from the client side, containerd namespaces to leverage a single runtime instance with a logical isolation from multiple clients (Kubernetes, Docker Engine, other systems), and containers as types in Golang when using containerd Go client library.
Additionally, it explains all the performance improvements brought by BuildKit, and the capabilities that it opens up because of it's modular architecture, enabling open source developers who create new build systems using BuildKit directly to create new front ends.
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkRed Hat Developers
In a time where container image building tools outnumber application frameworks, and deployment descriptors are lengthier than a small app, "deployment" is the stage where developer fun goes to die. In a less dramatic tone: The options and complexity of containerizing and deploying an application is, to say the least, a distraction for most developers. But it doesn't have to be. Quarkus provides extensions that help developers eliminate those distractions by making smart choices for them and by integrating with the rest of the Quarkus ecosystem. This demonstration will show that in Quarkusland, Kubernetes is not a killjoy but part of the fun, by providing a concise experience as you mix and match support for various platforms (vanilla Kubernetes & OpenShift) with image building solutions (Docker, Jib & S2i).
Cloud Native CI/CD with Jenkins X and Knative PipelinesC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2Pc3H50.
Christie Wilson and James Rawlings explain the CI/CD challenges in a cloud native landscape, and show how Jenkins X rises to them by leveraging open source cloud native technologies like Knative Pipelines. They demo a GitOps based Jenkins X workflow, showing how simple Jenkins X makes it for developers to stage and deploy changes on demand. Filmed at qconlondon.com.
Christie Wilson is a software engineer at Google, currently leading the knative build-pipeline project. Over the past ten years she has worked in the mobile, financial and video game industries. James Rawlings is a co-creator of the open source project Jenkins X and works for CloudBees, where he aims to help developers and teams move to the cloud.
The path to a serverless-native era with Kubernetessparkfabrik
In this talk we'll talk about how the Serverless paradigms are changing the way we develop applications and cloud infrastructure and how we can implement them in a
efficient and seamless way with Kubernetes.
We'll go through the latest Kubernetes Serverless technologies, talking about all the aspects
including pricing, scalability, observability and best practices.
A hands-on workshop that covers 18 best practices in 4 categories or in other words ✅️ Dos & Don'ts.
After a general introduction, we will have a look at the essential practices (aka must do), then move to the image practices, then we will go through the security practices, and finally, some general practices.
Please note, this workshop assumes that you have a basic knowledge of Docker.
Hands-on repo:
https://github.com/aabouzaid/docker-best-practices-workshop
Introduction to Kubernetes - Docker Global Mentor Week 2016Opsta
Kubernetes is an open-source system for automating
deployment, scaling, and management of containerized
applications. This presentation will show you overview of Kubernetes concept.
Docker Global Mentor Week 2016 #DockerInThai at Kaidee on November 18, 2016
For years people have been using VM-based CI platforms where they are managing build nodes that run their CI workflows.
A few years ago, Codefresh revolutionized the CI/CD world and became the first container-native CI/CD platform.
**WATCH THE WEBINAR AT https://Codefresh.io/events **
In this webinar, we will look at the differences between VM-based CI pipelines and Docker-based CI pipelines, in terms of maintenance, upgrades, pipeline creation, caching, and speed!
Get you Java application ready for Kubernetes !Anthony Dahanne
In this demos loaded talk we’ll explore the best practices to create a Docker image for a Java app (it’s 2019 and new comers such as Jib, CNCF buildpacks are interesting alternatives to Docker builds !) - and how to integrate best with the Kubernetes ecosystem : after explaining main Kubernetes objects and notions, we’ll discuss Helm charts and productivity tools such as Skaffold, Draft and Telepresence.
Slides used for Orchestructure May 2018 workshop.
Labs:
https://github.com/mrbobbytables/k8s-intro-tutorials
Event Information:
https://www.meetup.com/orchestructure/events/250189685/
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications. This training helps you understand key concepts within 3 hours.
Docker and Puppet for Continuous IntegrationGiacomo Vacca
Today developers want to change the code, build and deploy often, even several times per day.
New versions of software may need to be tested on different distributions, and with different configurations.
Achieving this with Virtual Machines it’s possible, but it’s very resource and time consuming. Docker provides an incredibly good solution for this, in particular if combined with Continuous Integration tools like Jenkins and Configuration Management tools like Puppet.
This presentation focuses on the opportunities to configure automatically Docker images, use Docker containers as disposable workers during your tests, and even running your Continuous Integration system inside Docker.
DCEU 18: Building Your Development PipelineDocker, Inc.
Oliver Pomeroy - Solution Engineer, Docker
Laura Frank Tacho - Director of Engineering, CloudBees
Enterprises often want to provide automation and standardisation on top of their container platform, using a pipeline to build and deploy their containerized applications. However this opens up new challenges… Do I have to build a new CI/CD Stack? Can I build my CI/CD pipeline with Kubernetes orchestration? What should my build agents look like? How do I integrate my pipeline into my enterprise container registry? In this session full of examples and “how-to”s, Olly and Laura will guide you through common situations and decisions related to your pipelines. We’ll cover building minimal images, scanning and signing images, and give examples on how to enforce compliance standards and best practices across your teams.
KubeCI - Cloud Native Continuous Delivery for KubernetesTobias Schneck
Getting CI/CD pipelines to work on Kubernetes is a tricky endeavor, especially if you are looking for a Cloud Native CI/CD solution.
KubeCI is an open source Continuous Delivery system built on Drone for Kubernetes. A simple YAML configuration file is used to the define and execute pipelines inside Kubernetes Pods.
We will talk about why CI/CD pipelines are painful today. We will do some live coding, and show you how KubeCI can make a CI/CD deployment on Kubernetes simple. The audience will get insights about why we build KubeCI and how we want to extend it in the future.
An Operator is an application that encodes the domain knowledge of the application and extends the Kubernetes API through custom resources. They enable users to create, configure, and manage their applications. Operators have been around for a while now, and that has allowed for patterns and best practices to be developed.
In this talk, Lili will explain what operators are in the context of Kubernetes and present the different tools out there to create and maintain operators over time. She will end by demoing the building of an operator from scratch, and also using the helper tools available out there.
A Comprehensive Introduction to Kubernetes. This slide deck serves as the lecture portion of a full-day Workshop covering the architecture, concepts and components of Kubernetes. For the interactive portion, please see the tutorials here:
https://github.com/mrbobbytables/k8s-intro-tutorials
Continuous Delivery the Hard Way with Kubernetes Weaveworks
Continuous Delivery (CD) with Kubernetes
- How to build a CI/CD pipeline when using Kubernetes
- Hands on: Build a CI/CD pipeline with Kubernetes & Weave Cloud
An overview on docker and container technology behind it. Lastly, we discuss few tools that might come handy when dealing with large number of containers management.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
4. Continuous Deployment
• What do we want?
• Increase responsiveness
• Decrease time to market
• Gain confidence by deploying often in small amounts
• How to achieve that?
• Automate everything
• Always deploy the master into production
• Use feature toggles when needed
5. Simple Git Workflow
• Works for in-house apps
• not for libs or shipping apps
• No versions, no tags, just SHA’s
• Latest commit on master is always
deployed to production
• Feature/fix branches are merged
when ready
master
feature/fix
branches
1ebb95d
be61dda
6e4010d
6. Docker
• Like VM’s but much more light-weight and shippable
• Runs on Linux, executes processes in an isolated environment
(resource limitation, filesystem, network)
• Container principle: Can contain everything, but looks the
same from the outside
• A container platform can run every container
• Developers have max. freedom what to do
• In contrast: PaaS like Heroku - has to support the language
7. Kubernetes
• Container runtime platform
• Originally designed by Google - now Open Source
• One of the most active projects on GitHub - 20,000
stars, 40,000 commits, 15,000 issues, 200 releases
• Alternatives: Apache Mesos, Docker Swarm (lacks
features)
9. Kubernetes - Pods
• A Pod is a deployable unit in
Kubernetes
• Pods can contain multiple
containers
• Containers inside a Pod share
on port space, can use
localhost and can
communicate via IPC and
shared memory
• Idea: one process per
container - many cooperating
processes in one Pod
apiVersion: v1
kind: Pod
metadata:
name: <pod-name>
labels:
<key>: <value>
spec:
containers:
- name: <container-name>
image: <container-image>
ports:
- containerPort: 80
env:
- name: <key>
value: <value>
10. Kubernetes - Deployments
• A Deployment ensures that
certain number of Pods are
always running
• It consists of a Pod template
and the number of replicas
• It supports hot-redeployments
by changing parts of the Pod
template
• Horizontal scaling is possible
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: <deployment-name>
spec:
replicas: 2
template:
metadata:
labels:
<key>: <value>
spec:
containers:
- name: <container-name>
image: <container-image>
ports:
- containerPort: 80
env:
- name: <key>
value: <value>
11. Kubernetes - Services
• Kubernetes uses an overlay
network to provide different address
spaces (we use flannel)
• Every Pod has an IP address - but it
changes every time one is created
• Services provide a stable IP
address for groups of Pods
• Service names are resolvable by an
internal DNS
• Service selectors are used to match
Pods according to there labels
apiVersion: v1
kind: Service
metadata:
name: clojure-berlin-2016
labels:
app: lens
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
protocol: TCP
selector:
service: clojure-
berlin-2016
12. Kubernetes - External Access
• Kubernetes networks are internal
only
• External access through load
balancers necessary
• Certain Platforms like Google
Compute Engine provide load
balancer integration with Kubernetes
• We have our own solution as a
combination of HAProxy and
Kubernetes NodePort
• Kubernetes Services with type
NodePort are exposed on every
worker under a certain port
frontend http
bind 0.0.0.0:80
mode http
option httplog
acl host_clj hdr(host)
clj.<domain>
use_backend clj if host_clj
backend clj
mode http
balance roundrobin
option httplog
server worker-1 <ip>:32599 check
server worker-2 <ip>:32599 check
13. Deployment Lifecycle
GitLab CI
Source Code
build
test
Kubernetes
Test
Cluster
Kubernetes
Prod
Cluster
automatic deployment
manual
deployment
git
push
14. Sample Clojure Service
• .gitlab-ci.yml
• Like .travis.yml contains instructions for GitLabCI
how to test, build and deploy
• Dockerfile
• Instructions for Docker how to build the image of
the app
• Artifact of the build is a docker image - not
uberjar
• kube-deployment.yml
• Kubernetes deployment instructions
• kube-svc.yml
• Kubernetes service description
https://github.com/alexanderkiel/clojure-berlin-2016
15. The Core Namespace
(ns clojure-berlin-2016.core
(:require [aleph.http :as http]
[clojure.core.async :refer [<!! chan]]))
(defn -main [& args]
(-> (fn [_]
{:status 200
:body "Clojure Berlin 2016"})
(http/start-server {:port 8080}))
(<!! (chan)))
• A simple web server returning "Clojure Berlin 2016"
16. The Leiningen Project File
(defproject clojure-berlin-2016 "<VERSION>"
:dependencies [[aleph "0.4.1"]
[org.clojure/clojure "1.8.0"]
[org.clojure/core.async "0.2.395"]]
:main clojure-berlin-2016.core)
• <VERSION> is replaced at build time by the Git SHA
• :main is for lein run to work
21. Docker file
FROM clojure:lein-2.7.1
COPY src /app/src
COPY project.clj /app/
WORKDIR /app
RUN lein with-profile production deps
EXPOSE 80
CMD ["lein", "with-profile", "production", "run"]
• Just copy the sources into the container
• Use Leiningen itself to run in production
24. Steps to Follow
• Create the Kubernetes Service
• kubectl create -f kube-svc.yml
• Edit HAProxy Config
• add rules and backend for the service
• Push to GitLab
• git push
29. Numbers
• Our team has 4 developers
• We run 2 Kubernetes clusters (test and prod) with
about 96 GB RAM and and 24 vCPU’s each
• We run about 60 pods in production
• We have other services like central log aggregation
running using Fluentd and Elasticsearch/Kibana
30. Thank You
• Sample Project on Github
https://github.com/alexanderkiel/clojure-berlin-2016
• Twitter
@alexander_kiel
• Mail
alexanderkiel@gmx.net