<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Carlos M.</title>
    <description>The latest articles on Forem by Carlos M. (@carlosteaches).</description>
    <link>https://forem.com/carlosteaches</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F321497%2F223cfa96-bcad-4227-b831-7f201f875706.jpeg</url>
      <title>Forem: Carlos M.</title>
      <link>https://forem.com/carlosteaches</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/carlosteaches"/>
    <language>en</language>
    <item>
      <title>CI/CD Tools: How to Choose Yours Wisely</title>
      <dc:creator>Carlos M.</dc:creator>
      <pubDate>Tue, 25 Feb 2020 14:56:58 +0000</pubDate>
      <link>https://forem.com/scalyr/ci-cd-tools-how-to-choose-yours-wisely-2p9k</link>
      <guid>https://forem.com/scalyr/ci-cd-tools-how-to-choose-yours-wisely-2p9k</guid>
      <description>&lt;p&gt;Continous integration (CI) and continuous deployment (CD) tools allow teams to merge, build, test, and deploy code branches automatically. Implementing them along with conventions like "commit frequently" forces developers to test their code when it's combined with other people's work. Results include shorter development cycles and better visibility of code evolution among different teams.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--22Q5LR0A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/07/19175508/Continuous_Integration.png" class="article-body-image-wrapper"&gt;&lt;img class="wp-image-872 alignright" src="https://res.cloudinary.com/practicaldev/image/fetch/s--22Q5LR0A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/07/19175508/Continuous_Integration.png" alt="" width="279" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you commit to using CI/CD in your software development cycle, you're immediately faced with a galore of options: Travis, Jenkins, GitLab, CodeShip, TeamCity, and CircleCI, among others. Their names are catchy, but they hardly describe what the tools do. So here's a roadmap for choosing the right tool for your needs.&lt;/p&gt;

&lt;h2&gt;What Platforms and Integrations Should It Support?&lt;/h2&gt;

&lt;p&gt;Whether you're part of an enterprise or a startup, you'll first need to figure out all your platform requirements. Think about your operating systems and their versions, programming languages, access to third-party APIs, libraries, frameworks, and testing suites; collect all these data and check that each tool is able to support them all. You don't want painful troubleshooting sessions or loss of commercial provider support because of a version mismatch.&lt;/p&gt;

&lt;p&gt;There are some shortcuts that I can provide:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;
&lt;strong&gt;BuildBot &lt;/strong&gt;is a popular choice among Pythonistas. It's also written in Python, and it's very flexible. FOSS projects like Mozilla Firefox and MariaDB currently use &lt;strong&gt;BuildBot &lt;/strong&gt;for their multi-platform builds and testing.&lt;/li&gt;
    &lt;li&gt;People using JIRA or Bitbucket will find that &lt;strong&gt;Bamboo&lt;/strong&gt; and &lt;strong&gt;Bitbucket pipelines&lt;/strong&gt; fit their ecosystem. But beware of price increases as your number of environments and need for parallelization grow.&lt;/li&gt;
    &lt;li&gt;
&lt;strong&gt;Jenkins'&lt;/strong&gt; impressive list of plugins offers compatibility with every major developer tool in the market. Java shops will probably be comfortable deploying Jenkins because it's written in that language.&lt;/li&gt;
    &lt;li&gt;If you're building .NET projects to run on a Microsoft stack, you'll find two natural choices: &lt;strong&gt;Visual Studio Team Services (VSTS) &lt;/strong&gt;and &lt;strong&gt;TeamCity. &lt;/strong&gt;Both include Docker support.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Where Will It Run and Who Will Maintain It?&lt;/h2&gt;

&lt;p&gt;Some enterprises have regulations to meet, so they can't put their codebases in cloud services. Startups lack the manpower and time to run their own tools. Teams in both groups might be wary of security breaches caused by a wrong decision when using publicly available services. Whichever is your position, here's a set of tips to navigate the cloud vs. on-premises conundrum:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Cloud services ease the workload for our teams—but always at the expense of fees above certain usage.&lt;/li&gt;
    &lt;li&gt;Extra charges from CI/CD cloud services come in the form of higher concurrency, build events, build time, and/or user count.&lt;/li&gt;
    &lt;li&gt;Some cloud services have a zero-cost plan for small teams. You could test the waters using that in a greenfield project.&lt;/li&gt;
    &lt;li&gt;On-premises options like GitLab, Travis-CI, and TeamCity have hosted offerings that let you test before committing to run your own copy.&lt;/li&gt;
    &lt;li&gt;On-premises tools require resources ready to orchestrate your builds and tests. That means more complex tasks to run, troubleshoot, and maintain.&lt;/li&gt;
    &lt;li&gt;Teams should be aware of legal and business requirements when uploading code and data to cloud services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Who Will Use It and How Often?&lt;/h2&gt;

&lt;p&gt;It's only a matter of time before the results of using CI/CD become visible to management. At that point, your organization will be increasingly dependent on CI/CD. User adoption and build frequency will increase. Take a look at these items before deciding your team's headcount and licensing requirements:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Provide some managers read access to your CI/CD. Giving them visibility improves the chances of them supporting these efforts.&lt;/li&gt;
    &lt;li&gt;Choose a tool that integrates with your organization's favorite authorization method. Nobody wants one more password.&lt;/li&gt;
    &lt;li&gt;Get a list of desired environments and take note of how often your teams would hypothetically push code to them.&lt;/li&gt;
    &lt;li&gt;Recalculate your usage when you add a new team or user. Don't let your bills get out of control.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What Are Our Estimated Costs?&lt;/h2&gt;

&lt;p&gt;Depending on the nature of your company and team, you'll either prefer an operating expense or a capital expenditure. I'm an advocate of pay-as-you-go services, personally. They allow you to keep costs down when you're starting, and they remove complexity. But as soon as your SaaS yearly bills reach what you'd pay an engineer, you might want to get some of those toolsets under your control or migrate to other providers with lower costs. Here are some gotchas when estimating costs:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;
&lt;strong&gt;TeamCity&lt;/strong&gt; and &lt;strong&gt;Bamboo &lt;/strong&gt;require extra payment when you need more than one remote agent, so each additional environment costs more.&lt;/li&gt;
    &lt;li&gt;
&lt;strong&gt;VSTS &lt;/strong&gt;is free for teams of five people or less. After that, you pay per additional user each month.&lt;/li&gt;
    &lt;li&gt;
&lt;strong&gt;GitLab &lt;/strong&gt;only supports multiple active directory sources in its enterprise edition. &lt;strong&gt;Jenkins&lt;/strong&gt;, on the other hand, supports it through a plugin.&lt;/li&gt;
    &lt;li&gt;Some SaaSs charge per build time. If this is the case with your chosen option, configure your pipelines to use prebuilt images with resolved dependencies.&lt;/li&gt;
    &lt;li&gt;
&lt;strong&gt;Jenkins, GoCD, BuildBot, &lt;/strong&gt;and &lt;strong&gt;GitLab-CE &lt;/strong&gt;have OSI-compliant licenses while &lt;strong&gt;Bamboo&lt;/strong&gt;, &lt;strong&gt;TeamCity&lt;/strong&gt;, &lt;strong&gt;Travis-CI Enterprise, &lt;/strong&gt;and &lt;strong&gt;GitLab-E&lt;/strong&gt;&lt;strong&gt;E &lt;/strong&gt;are commercially available. Some of them charge based on the number of users, remote agents, and features.&lt;strong&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Availability of Documentation, Training, and Support&lt;/h2&gt;

&lt;p&gt;It might not be evident now, but you'll end up deploying to production with this new tool. So you'll want to set up the same kind of expectations you currently have for all your other tooling in production because, at some point, you will probably&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;need training for more than your vanguard CI/CD team.&lt;/li&gt;
    &lt;li&gt;troubleshoot problems that affect your availability to internal and external customers.&lt;/li&gt;
    &lt;li&gt;extend your implementation to more environments, additional third-party integrations, and new business needs.&lt;/li&gt;
    &lt;li&gt;require emergency support beyond what a user community may offer.&lt;/li&gt;
    &lt;li&gt;provide onboarding documentation to new team members.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Metrics and Vendor Lock-In&lt;/h2&gt;

&lt;p&gt;I decided to leave these two strategic factors as final arguments—not for their lack of importance, but because they're only important once you've successfully adopted a CI/CD tool. While it's great to implement a delivery pipeline, it's hard to see improvements over time if you're not measuring and comparing to a baseline.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vPgInf-2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/05/31002225/Odds-are-that-youll-probably-change-tools-when-your-requirements-evolve..png" class="article-body-image-wrapper"&gt;&lt;img class=" wp-image-2649 alignright" src="https://res.cloudinary.com/practicaldev/image/fetch/s--vPgInf-2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/05/31002225/Odds-are-that-youll-probably-change-tools-when-your-requirements-evolve..png" alt="" width="276" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's a set of questions that will help you know what's relevant to measure in your line of business:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;What's your business focus? Is it maintaining a reliable platform? Is it increasing your user base? Or is it adding software features ASAP?&lt;/li&gt;
    &lt;li&gt;Does your team deploy software to production and let it fail as part of debugging?&lt;/li&gt;
    &lt;li&gt;How many bad builds are slipping through and failing in production?&lt;/li&gt;
    &lt;li&gt;What is your mean time to recover from a failure in production?&lt;/li&gt;
    &lt;li&gt;How does your delivery pipeline design affect a push to production during an outage incident?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, regarding the vendor lock-in factor, the CI/CD ecosystem is blooming. Odds are that you'll probably change tools when your requirements evolve. Or perhaps your SaaS provider goes out of business. Don't forget to consider how much effort it would take your team to migrate your delivery pipeline to a different tool or provider in case a change is necessary. Here's some food for thought:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Can you export workflows and configurations?&lt;/li&gt;
    &lt;li&gt;Do exports come in formats that might be automatically transformed as inputs for other tools?&lt;/li&gt;
    &lt;li&gt;How tightly integrated is your CI/CD tool to specific computing resources?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Take the Next Step&lt;/h2&gt;

&lt;p&gt;If your current software development cycle is made of stages where people step on each others' toes while trying to survive the minefield created by libraries, APIs, and interservice dependencies, perhaps it's time to choose a CI/CD tool and start optimizing your software delivery pipeline.&lt;/p&gt;

&lt;p&gt;Have you experienced this process already? Share your tips with us in the comments section!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kubernetes: The Next VMware?</title>
      <dc:creator>Carlos M.</dc:creator>
      <pubDate>Tue, 11 Feb 2020 16:17:06 +0000</pubDate>
      <link>https://forem.com/scalyr/kubernetes-the-next-vmware-4g6p</link>
      <guid>https://forem.com/scalyr/kubernetes-the-next-vmware-4g6p</guid>
      <description>&lt;p&gt;It's been almost 10 years since VMware started selling ESX version 4.0. This set the path for &lt;a href="https://www.computerprofile.com/analytics-papers/vmware-far-largest-server-virtualisation-market/" rel="noopener noreferrer"&gt;VMware to dominate more than 75%&lt;/a&gt; of the virtualization market in 2017. Gartner considers this market "matured" since most of its revenue comes from maintenance instead of new licensing. Many companies have consolidated their workloads with virtualization, but there are new problems to solve.&lt;/p&gt;

&lt;p&gt;Delivering, testing, deploying, and scaling applications are among these challenges. Teams that implement microservices also need to automate as much as possible to make them manageable. &lt;a href="https://www.scalyr.com/blog/scalyr-platform-kubernetes-monitoring-performance-and-usability/"&gt;Kubernetes&lt;/a&gt;, Marathon, Swarm, and Nomad compose a new breed of tools that respond to these needs through &lt;a href="https://en.wikipedia.org/wiki/Orchestration_(computing)" rel="noopener noreferrer"&gt;orchestration&lt;/a&gt;. If you host on-premises or in the cloud, consider them to help your business more quickly deliver code to production.&lt;/p&gt;

&lt;p&gt;Companies evolving towards data-driven decision-making often implement machine learning and business intelligence tools, looking for an edge in their markets. As information technology professionals, it's our responsibility to make sure our businesses select tools that&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;perform in a reliable way;&lt;/li&gt;
    &lt;li&gt;allow quick deployment of new features;&lt;/li&gt;
    &lt;li&gt;scale properly in response to user demand; and&lt;/li&gt;
    &lt;li&gt;deploy new software in a safe and reproducible way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this article, I explain why I think Kubernetes is a market leader in the orchestration space and how it might steal &lt;a href="https://www.scalyr.com/blog/containers-and-kubernetes-vs-vms-vs-config-management/"&gt;VMware's&lt;/a&gt; thunder in the not-so-distant future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mD8NEuIF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/07/19175534/Containers.png" class="article-body-image-wrapper"&gt;&lt;img class="aligncenter  wp-image-910" src="https://res.cloudinary.com/practicaldev/image/fetch/s--mD8NEuIF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/07/19175534/Containers.png" alt="" width="500" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Kubernetes Is Open-Source&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://portworx.com/2017-container-adoption-survey/" rel="noopener noreferrer"&gt;The Kubernetes adoption rate&lt;/a&gt; is considerably higher than that of other tools, partly because it's distributed by the &lt;a href="https://www.cncf.io/"&gt;CNCF&lt;/a&gt; under Apache License 2.0. Choosing an open-source tool comes with the following benefits:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;You will have to train your staff in implementation and maintenance, but you will incur zero expenses in commercial licenses. OpEx-oriented managers love this.&lt;/li&gt;
    &lt;li&gt;Developer contributions accelerate its evolution. Open-source tools release new features in a three-to-four-month cycle, which is faster than commercial software.&lt;/li&gt;
    &lt;li&gt;Documentation, tutorials, and how-tos are abundant all over the internet. This creates a healthy and diverse ecosystem of knowledge built collectively.&lt;/li&gt;
    &lt;li&gt;
&lt;a href="https://v1-13.docs.kubernetes.io/docs/setup/pick-right-solution/" rel="noopener noreferrer"&gt;Providers and software vendors offer their own implementations freely&lt;/a&gt;. This enables organizations to implement and assume a level of complexity aligned with their IT staff.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Containers Are More Efficient Than Consolidation&lt;/h2&gt;

&lt;p&gt;When we consolidate workloads in virtual machines, we're still emulating sets of devices that we mostly don't use. Duplication of operating system files is also a prevalent inefficiency. Using containerizing services (e.g., Docker) reduces glut and dedicates more CPU cycles to your business applications.&lt;/p&gt;

&lt;p&gt;Dockerizing applications have been shown to be effective in this race to optimize hardware usage. Kubernetes provides a way to manage Docker instances at scale instead of putting them inside virtual machines. If your workloads are Linux-exclusive, you also have the option to run Kubernetes on bare-metal servers. It's not the most popular implementation, but it's a way to maximize hardware efficiency.&lt;/p&gt;

&lt;h2&gt;Containers Allow Teams to Focus on Delivery, Not Management&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8bqEt4Kl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/07/31172202/Priorities_have_changed_when_it_comes_to_the_application_lifecycle1.png" class="article-body-image-wrapper"&gt;&lt;img class=" wp-image-2719 alignleft" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8bqEt4Kl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://library.scalyr.com/2018/07/31172202/Priorities_have_changed_when_it_comes_to_the_application_lifecycle1.png" alt="" width="238" height="188"&gt;&lt;/a&gt;Priorities have changed when it comes to the application lifecycle. Configuration management is a takeaway from the era of consolidation. Managing lots of virtual machines used to require expending consistent effort. But spending energy on configuration management is unnecessary in the era of containers. A Docker instance's lifetime is so short that some instances run for just a few hours.&lt;/p&gt;

&lt;p&gt;That's why you should add configuration as part of your continuous deployment. Test it automatically in your pipeline and send your configured artifacts to production after passing all your compliance tests. This helps your organization focus their efforts on delivering more stable software, with more features, and to automatically catch errors earlier in your development process.&lt;/p&gt;

&lt;h2&gt;Kubernetes Pods Let Teams Build With the Same Lego Pieces&lt;/h2&gt;

&lt;p&gt;Kubernetes applications run in the form of Pods. A Pod may contain one or more containers. Pods help you to group containers that hold a relationship between them. You use a Pod template to specify storage, binaries, and network resources used by its containers. And to define Pod templates, you use the YAML text file format.&lt;/p&gt;

&lt;p&gt;Share these YAML definitions with your developers so they can run Pods with &lt;a href="https://github.com/kubernetes/minikube" rel="noopener noreferrer"&gt;minikube&lt;/a&gt; in their desktops. You can also use them in your CI/CD pipeline. That's how Pods enable you to provide consistency across your development, testing, integration, and production environments.&lt;/p&gt;

&lt;p&gt;Standardizing how your teams create and test software will help you minimize the changes you need to implement at the end of your software development cycle. Operators will also have more confidence when deploying these applications to their production environments. For VMware users, this should sound similar to vApps packaging.&lt;/p&gt;

&lt;h2&gt;Helm Lets You Save Time by Reusing Community-Packaged Applications&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/kubernetes/helm" rel="noopener noreferrer"&gt;Helm packages in Kubernetes&lt;/a&gt; may be the parallel of RPMs in RedHat or .deb packages in Debian/Ubuntu. A YAML file called "Chart" contains a definition and templates to describe the necessary binaries. A server (Tiller) and a client (Helm) interact to deploy releases of your charts to a Kubernetes cluster. Charts require semantic versioning. Couple this with version control and you get rollback capabilities.&lt;/p&gt;

&lt;p&gt;Most teams usually have similar needs: "Deploy this application, keep this database up and running, cache content with this app, and load-balance this set of connections." Free open-source software (FOSS) is usually a part of this team's process. Helm packages exist so you avoid rework when implementing FOSS as Kubernetes applications.&lt;/p&gt;

&lt;p&gt;You're now probably thinking, "How do I make Pods work with Helm packages?" There's a whole set of &lt;a href="https://docs.helm.sh/chart_best_practices/#the-chart-best-practices-guide" rel="noopener noreferrer"&gt;best practices&lt;/a&gt; to consider when you start modeling your infrastructure with Helm packages. Make sure to review them before making architecture deployment decisions.&lt;/p&gt;

&lt;h2&gt;Kubernetes Deployments—Safe Software Delivery Included&lt;/h2&gt;

&lt;p&gt;Kubernetes Deployment manifests allow you to describe how Pods are kept running under a set of rules. You define these rules in YAML files, which allow you to describe an environment with these basic abstractions:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Containers describe what applications run in your deployment.&lt;/li&gt;
    &lt;li&gt;Environment variables set values that are required to run your code.&lt;/li&gt;
    &lt;li&gt;Specs allow you to define how many replicas of each container should run at a certain time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the other hand, Kubernetes services are meant to define ports available to external entities. That's how you expose your application to the rest of the world.&lt;/p&gt;

&lt;p&gt;Now you can build an environment by providing your containers with variables, binaries, computing power, and network access. Everything is defined in plain text files, which should be stored in a central repository using version control. This is the Kubernetes formula. By using it, you can &lt;a href="https://12factor.net/dev-prod-parity" rel="noopener noreferrer"&gt;provide consistent environments&lt;/a&gt; to all of your teams, and your software may be put into production under deployment methods like &lt;a href="https://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html" rel="noopener noreferrer"&gt;blue-green&lt;/a&gt;, without extra necessary work.&lt;/p&gt;

&lt;h2&gt;Kubernetes Orchestration Enables You to Implement Microservices&lt;/h2&gt;

&lt;p&gt;Teams migrating software from monolith architectures to microservices should pay special attention to this point. Stateless and stateful applications work under different infrastructure assumptions. Make sure your developers are aware that some containers will fail and some Pods will die. If your organization is in the process of transforming to DevOps, it's vital for developers to have full visibility into your production environment.&lt;/p&gt;

&lt;p&gt;When designing software to run on Kubernetes look at these relevant principles, which I extracted from "The Twelve Factors" from &lt;a href="https://12factor.net/" rel="noopener noreferrer"&gt;The Twelve-Factor App&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Decouple backing services as &lt;a href="https://12factor.net/backing-services" rel="noopener noreferrer"&gt;detachable resources&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Improve resiliency by implementing &lt;a href="https://12factor.net/disposability" rel="noopener noreferrer"&gt;disposable infrastructure&lt;/a&gt; and running &lt;a href="https://12factor.net/processes" rel="noopener noreferrer"&gt;stateless processes&lt;/a&gt;
&lt;/li&gt;
    &lt;li&gt;Apply the &lt;a href="https://12factor.net/concurrency" rel="noopener noreferrer"&gt;process model&lt;/a&gt; to help you scale&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you get on the microservice bandwagon, you need to run it on a stable infrastructure, with a &lt;a href="https://kubernetes.io/community/" rel="noopener noreferrer"&gt;community&lt;/a&gt; where you can contribute or get support. Kubernetes is proving to be a FOSS platform that may grow enough to be as dependable and powerful as orchestration tools from commercial vendors like VMWare.&lt;/p&gt;

&lt;p&gt;"Code, build, and deploy often" is the new gospel of IT. Kubernetes has built-in features to help teams make all this happen in a safe way. While I recognize that it will be some time until it reaches 75% industry adoption, &lt;a href="https://containerjournal.com/2016/04/14/kubernetes-beats-swarm-container-management-openstack-clouds/" rel="noopener noreferrer"&gt;Kubernetes is already a leader&lt;/a&gt; in the field of container orchestration. It's a trending technology that will consolidate as a de facto industry standard, just like VMWare did in its time with virtualization.&lt;/p&gt;

</description>
      <category>kubernetes</category>
    </item>
  </channel>
</rss>
