68% Of Organizations Embracing Kubernetes, Don’t Fall Behind
Did you know that 68% of organizations have increased container adoption for their application development and deployment? Learn why you shouldn’t fall behind this trend.
Last week we teamed up with our training partner ExitCertified to present our most successful webinar ever, “Running with the Application Essentials,” which attracted nearly 3,000 registrants! Here we’ve taken the time to answer all the questions we received from the audience, but we’d love for you to view the whole webinar!
Compared to the term “microservices”, the terminology commonly used as a point of comparison is “monolithic application.”
Great question. The short answer is to start looking at the API composition pattern. You will need an API composer than can handle sending queries to the backend services and then performing an in-memory join of the results (for example).
I hinted at it. But yes blue-green deployments, canary testing, A/B testing, and so forth are great to include in the software lifecycle and can make up for any deficiencies in the rounds of pre-production testing of code changes in cloud-native applications, while at the same time mitigating against downtime with each code release.
In a manner of speaking, yes. Conceptually, that is one way of thinking about functional decomposition.
Testing code changes of an application decomposed into microservices is a complex topic that requires specific attention to the strategy for testing. While unit and integration testing are quite a common approach for testing code fixes or minor enhancements for microservices, other testing approaches include a controlled rollout into production (for example, canary testing, A/B testing, and so forth) for code changes where pre-production testing would be considered too costly in terms of time to develop and deliver. The more complex the application, the increased difficulty of testing. A controlled rollout of a code change should allow for a quick rollback if an unintended error is introduced.
That really depends on time to deliver final product and value gained by prototyping monolithic only to deliver in microservices. Both architectures have their benefits and drawbacks. If the the application is small enough to be developed and maintained in a monolithic architecture pattern, then the recommendation is to proceed accordingly. However, when scoping the requirements of the application suggests a level of complexity that will require multiple teams of developers and requires rapid release cycles (continuous delivery / deployment), then microservices seems like the right choice.
Testing in a distributed system, as I have described, is quite complex comparatively. As in a monolith, testing is straightforward: either the application features are all available or the application is not available at all. In an application developed in a microservice pattern, software testing methods need to be carefully considered in the design phase of the application. For example, unit and integration testing code changes are specific to the target service, not all services comprising the application. Depending upon the application and business requirements, other types of pre-produciton and production testing may also be considered, such as blue-green deployments, canary testing, and so on.
Yes my main point is to provide an introduction to the Kubernetes architecture, and highlight which components (such as kubelet and kube-proxy) provide resiliency with respect to running applications within the cluster. In the complete Mirantis training course, CN 120: Kubernetes Application Essentials, we provide a thorough presentation on the main components that make up the architecture of the Kubernetes platform.
Good question! To add to the point of Persistent Volumes and PVCs, the Kubernetes object to consider is the StatefulSet object with the corresponding headless Service object. In your specific example of a database, additional configuration is required to ensure High Availability (HA) across multiple pods within the StatefulSet. The Kubernetes documentation provides a tutorial on configuring HA for MySQL as found here. While not the only approach, the tutorial should provide you with a good start in such a case. To further add as a point of consideration, the main drivers of using Kubernetes is a cloud-native technology stack specifically meaning datastores that are cloud-native. You may want to consider other cloud-native datastores as a comparison, such as CockroachDB.
Pods do not offer any kind of native encryption of the data they handle. With some exceptions for Kubernetes components, encrypting application network traffic and data at rest within the cluster is not handled natively. Additional addons and environment configuration are necessary to achieve encryption in both cases.
Mirantis Cloud Native Platform runs on customers’ public or private clouds or on bare metal.
A trial version is available. If you are interested in downloading and practicing on the Mirantis Kubernetes Engine (MKE) you can do so easily with Mirantis Launchpad. See more information directly on our website.
In terms of the Mirantis learning track, we recommend the Container Essentials -> Kubernetes Application Essentials -> Kubernetes Native Application Development. Although an option, the Operations course is geared towards Kubernetes operations management.
Yes it is! To get started, have a look here. Additionally if you are ready to register, you can take a look at all of the available sessions here.
A site that has a great list of articles organized by Kubernetes Security topics can be found here
Kubernetes provides two primary modes of finding a service within a cluster: environment variables and DNS. If a service exists at time of pod creation, then that service will be made available to the containers within the pod as environment variables. The DNS option allows for applications to contact services by DNS name, assuming the cluster is configured with a DNS service (highly recommended).
Thanks for joining us, and again, check out the full webinar!
Save up to $250-$2500 Use Promo Code: SurfBoard
View Details Register by September 6, 2019