It’s likely learning Kubernetes isn’t your priority, that’s good because I’m not going to teach you Kubernetes in this blog post! My goal is to talk about Kubernetes from 1000 feet in the air. The Blimp view for dumbies, like me.
My goal is to explain what Kubernetes can accomplish, the basics, and links to dive deeper. I’m doing an interactive tutorial online w/o a setup/install with Kubernetes right now, and I believe that can be saved for another tutorial.
Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem.
But like most things, it’s not error resistant.
Good to know @christianposta!
Anyways… Google open-sourced the Kubernetes project in 2014. Check out github for hacks, free code, easy access to making life less error prone.
Yeah, and… Kubernetes builds upon a decade and a half of experience that Google has with running production workloads at scale. (docs)
Say Goodbye to your IT professional?
No, not necessarily. A lot of these systems and best practices are still unknown to the business units and it’s likely you won’t see any “non-technical” teams sprinting away with Kubernetes. Although, with the right amount of training, an analyst could be very independent to solve using micro services.
Wtf are micro services?
Dr. Peter Rodgers introduced the term “Micro-Web-Services” during a presentation at the Web Services Edge conference in 2005.
Microservices is a specialization of an implementation approach for service-oriented architectures (SOA) used to build flexible, independently deployable software systems. The microservices approach is a first realisation of SOA that followed the introduction of DevOps and is becoming more popular for building continuously deployed systems.
Microservices – also known as the microservice architecture – is an architectural style that structures an application as a collection of services that are (source)
- Highly maintainable and testable
- Loosely coupled
- Independently deployable
- Organized around business capabilities.
Wiki defines it as…
Microservices are a software development technique—a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. The benefit of decomposing an application into different smaller services is that it improves modularity. This makes the application easier to understand, develop, test, and become more resilient to architecture erosion. It parallelizes development by enabling small autonomous teams to develop, deploy and scale their respective services independently. It also allows the architecture of an individual service to emerge through continuous refactoring. Microservices-based architectures enable continuous delivery and deployment.
Sure we can’t axe IT today but if we could, I think most of the industry would have a considerable amount of “free time”… thus we find projects like – https://kubernetes.ioby Tyler Garrett
Kubernetes – modern web serivces
With modern web services, users expect applications to be available 24/7, and developers expect to deploy new versions of those applications several times a day.
Modern website deployments are now managed on similar container environments, optimized for the type of website. Like my website, musicblip.com, is on a containerized installation at siteground. (if u need a good host, DM me on twitter for a discount @ siteground, happy to help!)By Tyler Garrett
Containerization helps package software to serve these goals, enabling applications to be released and updated in an easy and fast way without downtime.
End goal here is “helps” your smart people with “easy” and “fast” ways to solve project goals or problems, with less setting up, optimizing, or overall playing the bullshit game that is IT checks and balances on legacy systems.By Tyler Garrett
Kubernetes helps you make sure those containerized applications run where and when you want, and helps them find the resources and tools they need to work.
Kubernetes is a production-ready, open source platform designed with Google’s accumulated experience in container orchestration, combined with best-of-breed ideas from the community.
At the end of the day, we have a bunch of data now living a breathing all over our microservices, and I rather enjoy what Cadenas was saying in 2006 about AI in theory w/ building micro services or new perspectives.
“We implement perspectives as new services, installed directly on the data source by the users.”By Cadenas, L.E., Hernandez, E., 2006, in IFIP International Federation for Information Processing, Volume 217, Artificial Intelligence in Theory and Practice, ed. M. Bramer, (Boston: Springer), pp. 189-198.
Each new service, now may contain a potential of failure, as our landscape evolves quickly… What’s next? How do we solve for the future if we have no clue what these tools do?
Solving distributed data management problems in a microservice architecture
Luckily, I found Chris discusses solving this new landscape of managing distributed data. Which starts to call into account ACID accompliance, which I must say, most people in analytics today have no idea what ACID compliance means, so fun fact… Throw that around next time you need some brownie points.
Here’s what Chris discusses & offers eventuate as a solution to the major challenges ahead.
“Microservices accelerate development and enable businesses to innovate faster and stay ahead of the competition. But one major challenge with the microservices architecture is the management of distributed data. Each microservice has its own private database. It is difficult to implement business transactions that maintain data consistency across multiple services as well as queries that retrieve data from multiple services. (source)”by Chris
Not done learning yet? More to go! And I will be adding on as I learn everything too.
But wtf is a web server?
A web server, as covered in this article, basically has two purposes.
#2. The other is to act as a reverse-proxy to web application backends. The three servers I just mentioned have a combined market share of 94.7 % (according to this statistic) and are named Apache 2 (or httpd) (written in C), nginx (say “engine ex”) (also written in C) and Microsoft IIS (written in C++).
The term web service is either
- (generic) a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web, or
- (specific) a web service implemented in the particular technology or brand, W3C Web Services.
In a web service, the Web technology such as HTTP—originally designed for human-to-machine communication—is utilized for machine-to-machine communication, more specifically for transferring machine-readable file formats such as XML and JSON.
In practice, a web service commonly provides an object-oriented web-based interface to a database server, utilized for example by another web server, or by a mobile app, that provides a user interface to the end user. Many organizations that provide data in formatted HTML pages will also provide that data on their server as XML or JSON, often through a web service to allow syndication, for example Wikipedia’s Export. Another application offered to the end user may be a mashup, where a web server consumes several web services at different machines, and compiles the content into one user interface. (source)