Transcript
First, I would like to introduce myself. My name is Yuki Maeno. I work for TalentX, a company that specializes in SRE and cloud marketing. Of course, I use HashiCorp's Terraform. My favorite HashiCorp product is HCL, which I will talk about today. Let me briefly introduce my company. My company, TalentX, is a start-up company that explores the history of HR by innovating the infrastructure of the future. TalentX releases three products. In addition, we are developing a MySeries platform to enhance the capability of talent acquisition. I hope everyone will remember this. Now, let's get started. What do you think is the greatest invention of HashiCorp? There are a lot of announcements about Terraform today, so some of you may have forgotten. I would like to talk about HCL. As you may know, HCL stands for HashiCorp Configuration Language. HCL is a tool set for creating a structured setting language provided by HashiCorp. It is a language that is friendly to both humans and machines. The latest version is version 2.22. As you can see, it was released on August 26th, and it was released quite frequently. This is an open source, and of course, it is used as a configuration language for HashiCorp products. To give you a concrete example, the Terraform tf file you usually see is also based on HCL. In addition, if it is Bolt, you can configure clusters or other console services. You can configure various HashiCorp products using the HCL language. When I think about the charm of HCL, I think there are two things. The first is that it is friendly to people. First of all, the structure is very clear depending on the key and value of the block. What kind of setting items are there for each resource? What kind of value is set for each key and value? Even for those who have never seen HCL, just by looking at it, you can see what kind of items are set here. Also, there is no restriction on indent or opening. This is similar to YAML files. Also, you can compare it with JSON and tweet comments. I think it's very friendly to people and engineers. On the other hand, HCL is also friendly to machines. In other words, you can convert it to JSON, which is a common language between different software. For example, in Terraform, JSON is also used in state files. If you look at the role of HCL in Terraform, there is HCL as a defined file that is friendly to people. And there is a state file in JSON, which is a machine-friendly common language that Terraform handles. There is a cloud after that. In this way, the charm of HCL is that you can create a structured setting language that connects people and machines. I think this is the charm of HCL. Next, as you can see from today's title, I would like to talk about HCL for business people who provide cloud vendors, especially SaaS products. My personal opinion is that all SaaS products should be compatible with HCL. Please do it. What I mean by that is, recently, in TalentX, which I belong to, I considered the issue of schema management of the database. There are two issues. For example, there is a difference in the schema between environments. The state of the DB schema is different for each environment, and you have to see the DDL that is lacking and flow it in the appropriate order. Or it's about understanding the specifications of the schema. The schema definition of the database is written in various documents, and it takes time to figure out what kind of schema is currently defined, and whether there is an influence survey when a new column is added. I was dealing with these issues. So, the tool I recently learned about is called Atlus. This is not a HashiCorp product, but I found a tool to manage the schema of a database called Atlus with declarative code. It defines the desired DB schema state, and automatically generates the DDL that applies the difference compared to the current schema. It supports the main oral mapper, and there is an OSS and a winning SaaS version. The biggest point of this product is that HCL can be used in the schema definition language. Let's take a look at this in the actual flow. First of all, the role of Atlus is to define a declarative file that is friendly to people in HCL. The code on the far left is actually a file called schema.hcl, which is a file called schema.hcl that I used with Atlus. There is a user table, and there is an ID as a column, and the type is int, and the column has a name, and the type is varchar. Just by looking at it, you can see what kind of definition this DB has, and it is a declarative file that is friendly to people. Atlus creates a machine-friendly DDL based on this declarative file. If you rewrite the declarative file on the left, you can change the DDL according to it and apply the result to the database. Looking at this flow, I think it is very similar to the concept of HCL, which I mentioned earlier in the slide. A declarative file that is friendly to people in HCL and a JSON type that is machine-friendly, I think it is very similar to the concept of HCL. Today, rather than introducing Atlus, I would like to focus on what are the benefits of start-up products and what are the benefits of HCL. I think there are two benefits. The first is that product understanding becomes very easy. By clearly defining the use of a product in a structured language, users can easily understand what this product can do, what kind of resources to create, and what kind of setting items to do. The cost of learning is reduced. The other is that by responding to HCL, I think the cost of introduction will also decrease. For example, if the source to be introduced to a new organization responds to HCL, I think that the rules for managing and operating HCL of conventional organizations can be applied as they are. For example, VCS, Git, and code management. Reviews and deploy flows create a dedicated CICD pipeline and check the code after two people have reviewed it, and then return it to the original environment. In this way, you can put all the start-up products managed by the organization on the same HCL management flow. I think this will be a great benefit as the number of source products is increasing. In other words, there are many source products in the world, but if the functions are the same, as an engineer, I would like to choose a source that responds to HCL. HCL-responsible products are easy to understand the product, and can reduce the cost of introduction, so I personally think that the introduction of a new source will be smooth. This is the second message. I think that the hurdle of introduction will decrease if the source product responds to HCL. I think this is one of the charms of HCL. It's a little early, but let me summarize. Today's topic is HCL is the best product that connects people, machines, and services. Of course, it is not only human-friendly and machine-friendly, but also provides source products, and I think it is the best product that can connect these three. HCL, which I usually write casually, I would be very happy if the number of HCL fans increased due to this announcement today. Finally, I will advertise a little. At TalentX, which I belong to, we are recruiting engineer members to work with us. I will upload the slide later, but there is a new member. As a TalentX member, I want to increase the number of TalentX fans, so let's join together and do our best. It's a little early, but I'll finish my presentation. Thank you very much.